From 9c18324b8c3209946429ac60306ddc3c9cdaf1e9 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期五, 13 六月 2025 17:21:58 +0800
Subject: [PATCH] 代码迁移 从义务分支迁移本项目

---
 hangzhoumesParent/moduleService/GlassStorageModule/target/classes/application-yw.yml                                                                     |   33 
 UI-Project/src/views/GlassStorage/rawfilmstorage.vue                                                                                                     | 1120 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java                           |  232 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java                                                               |   27 
 hangzhoumesParent/moduleService/CacheGlassModule/target/classes/application-yw.yml                                                                       |   42 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java                                                               |   18 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/WebSocketConfig.java                                                            |   21 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java                                                     |   67 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageDeviceTaskMapper.xml                                                |   33 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceTaskHistoryController.java                     |   49 
 hangzhoumesParent/gateway/pom.xml                                                                                                                        |   40 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/OrderMapper.java                                                                 |   16 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/UnLoadGlassApplication.java                                                      |   30 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/service/impl/WorkAssignmentServiceImpl.java                                   |   37 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/mapper/xml/RawGlassStorageTaskMapper.xml                                         |    5 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/PageUtil.java                                                                           |   27 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/s7/job/s7Job.java                                                                 |   28 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUserRole.java                                                           |   38 
 UI-Project/src/views/mm/purchaseOrder/Storage.vue                                                                                                        |  603 
 logs/cacheGlass/web_debug.log                                                                                                                            |    0 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java                                                                  |   55 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/mapper/SysDictTypeMapper.java                                                         |   16 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/mapper/xml/EngineeringMapper.xml                                       |    5 
 UI-Project/src/hook/index.js                                                                                                                             |    0 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/request/OrderRequest.java                                                        |   42 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeHeatDetailMapper.java                                                       |   19 
 UI-Project/src/assets/cp.png                                                                                                                             |    0 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowDetails.java                                        |   54 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/HollowBigStorageAndDetailsDTO.java                             |   18 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeHeatLayoutServiceImpl.java                                            |   39 
 hangzhoumesParent/common/servicebase/target/classes/mapper/FlowCardMapper.xml                                                                            |  187 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-cz.yml                                                                  |   30 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtLogoutSuccessHandler.java                                                |   40 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassTaskMapper.java                                    |   19 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java                                                |  149 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/S7control.java                                                                          |  465 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeDetailService.java                                                         |   17 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/mapper/WorkAssignmentMapper.java                                              |   18 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java                                                  |  139 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-dev.yml                                                                   |   43 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/entity/OptimizeUpPattenUsage.java                                    |   50 
 UI-Project/src/assets/xmjc.png                                                                                                                           |    0 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/entity/request/BigStorageCageHistoryRequest.java       |   60 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/Reportingdamage.java                                                        |   42 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/entity/LoadGlassDeviceTask.java                                                       |   62 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowBigStorageCageMapper.java                                    |   15 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/Result.java                                                                             |   56 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/Orderdetail.java                                                                 |   83 
 hangzhoumesParent/common/servicebase/src/main/resources/mapper/OptimizeProjectMapper.xml                                                                 |   24 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java            |  132 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/OrdersMapper.java                                                                |   19 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/entity/CacheGlassInfo.java                                                    |   46 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java                               |   28 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowBigStorageCageService.java                                  |   31 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java                                                             |   60 
 hangzhoumesParent/moduleService/GlassStorageModule/target/classes/application.yml                                                                        |   16 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/mapper/UpPattenUsageMapper.java                                                 |   23 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageMapper.java                                   |   32 
 UI-Project/src/views/Identify/identifwutwo.vue                                                                                                           |  235 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/BasicDataProduceController.java                                                 |   39 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageDeviceTaskHistoryMapper.xml                                         |   41 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/FastJsonRedisSerializer.java                                                  |   55 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/OptimizeEngineering.java                                                   |   78 
 UI-Project/src/views/Returns/upreturnhistory2.vue                                                                                                        |  312 
 UI-Project/src/lang/index.js                                                                                                                             |   20 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application-yw.yml                                                                  |   40 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml                                        |  260 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/vo/SysRoleVO.java                                                              |   44 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/opccallback/BigStorageStartCallback.java                              |  823 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/entity/request/RawGlassRequest.java                                           |   46 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/HollowGlassDetailsDTO.java                                     |   50 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowFormulaDetailsServiceImpl.java                         |   24 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-dev.yml                                                                 |   30 
 hangzhoumesParent/moduleService/LoadGlassModule/target/classes/mapper/UpWorkstationMapper.xml                                                            |   22 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application.yml                                                                     |   33 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/controller/HollowGlassQueueInfoController.java                       |   47 
 UI-Project/src/assets/11.png                                                                                                                             |    0 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleMenuService.java                                                       |   16 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageServiceImpl.java                         |  100 
 UI-Project/src/utils/request.js                                                                                                                          |   42 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowFormulaDetailsController.java                            |   73 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageTaskVO.java                                               |   17 
 UI-Project/src/assets/d3.png                                                                                                                             |    0 
 UI-Project/src/assets/woshihuancun.png                                                                                                                   |    0 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/RedisConfig.java                                                             |   59 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java                                                         |   18 
 hangzhoumesParent/common/springsecurity/target/classes/application-dev.yml                                                                               |   15 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/TaskCacheMapper.xml                                                           |   25 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java                                         |   82 
 UI-Project/src/assets/zhongkong.png                                                                                                                      |    0 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-dev.yml                                                                  |   42 
 hangzhoumesParent/JsonFile/PlcdownGlass.json                                                                                                             |  149 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/CacheGlassModuleApplication.java                                                  |   32 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowBigStorageCageDetailsController.java                     |   58 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageFeedTaskServiceImpl.java        |   60 
 hangzhoumesParent/common/springsecurity/src/main/resources/application-dev.yml                                                                           |   15 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/vo/HollowAllFlowCardVO.java                                        |   32 
 UI-Project/src/views/LoginView.vue                                                                                                                       |  224 
 hangzhoumesParent/common/servicebase/target/classes/application.yml                                                                                      |    8 
 UI-Project/src/lang/companyInfo.js                                                                                                                       |   85 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowGlassAndFrameDetails.java                           |   72 
 hangzhoumesParent/common/servicebase/target/classes/mapper/RawGlassStorageStationMapper.xml                                                              |   33 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterInfo.java                                                                  |  126 
 JsonFile/PlcCacheGlass.json                                                                                                                              |   64 
 replay_pid4772.log                                                                                                                                       | 6194 +
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-prod.yml                                                                 |   42 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/s7/entity/S7Data.java                                                              |   44 
 UI-Project/src/assets/xmjclzh.png                                                                                                                        |    0 
 UI-Project/src/utils/unloadrequest.js                                                                                                                    |   48 
 hangzhoumesParent/common/servicebase/target/classes/mapper/RawGlassStorageDetailsMapper.xml                                                              |   80 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowGlassOutRelationInfoService.java                            |   46 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/dto/ReportWorkDTO.java                                                              |   67 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java                         |   19 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java                         |  226 
 UI-Project/src/assets/d1a.png                                                                                                                            |    0 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/entity/request/TaskHistoryRequest.java                                    |   36 
 hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application-alg.yml                                                                       |   43 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Swagger2Config.java                                                             |   99 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/mapper/SysDictDataMapper.java                                                         |   16 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcEdgTask.java                                                               |   77 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/Order.java                                                                       |  232 
 hangzhoumesParent/readMe.md                                                                                                                              |   18 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowGlassRelationInfoMapper.java                                 |   39 
 JsonFile/PlcLoadGlass.json                                                                                                                               |   78 
 hangzhoumesParent/common/springsecurity/src/main/resources/mapper/SysMenuMapper.xml                                                                      |   15 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/mapper/xml/EngineeringMapper.xml                                                  |    5 
 hangzhoumesParent/common/servicebase/target/classes/mapper/TemperingGlassInfoMapper.xml                                                                  |   16 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/entity/WorkAssignment.java                                                    |   44 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowGlassOutRelationInfoMapper.java                              |   23 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/UpdateBigStorageCageDTO.java                        |   16 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/utils/Blank.java                                                                 |   29 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java                                                           |  873 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java                        |   92 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.xlsx                                                          |    0 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java                   |  439 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/OrderdetailMapper.java                                                           |   15 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java                         |  125 
 UI-Project/src/assets/sz.png                                                                                                                             |    0 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCage.java                                          |   62 
 UI-Project/src/views/Caching/cachingbeforehistory.vue                                                                                                    |  412 
 UI-Project/src/views/hollow/hellowquiptwohistory.vue                                                                                                     |  508 
 UI-Project/src/views/User/rolelist.vue                                                                                                                   |  362 
 UI-Project/src/views/Identify/ident.vue                                                                                                                  |   36 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/request/DownWorkRequest.java                              |   28 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/OrderDTO.java                                                  |  185 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java                                    |   55 
 hangzhoumesParent/JsonFile/PlcTemperingGlass.json                                                                                                        |  132 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java                                |   65 
 UI-Project/src/assets/lpa.png                                                                                                                            |    0 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/changelogBase.xml                                                      |   10 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageRelationDTO.java                          |   24 
 README.md                                                                                                                                                |   40 
 UI-Project/src/views/Visualization/screentwo.vue                                                                                                         |  140 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/HollowBigStorageCageBaseInfo.java                                                 |   74 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/logback-spring.xml                                                               |  169 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-cz.yml                                                                    |   30 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageAndDetailsDTO.java                        |   18 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java                                         |  836 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowFrameDetails.java                                   |   38 
 UI-Project/src/utils/WebSocketService.js                                                                                                                 |   34 
 hangzhoumesParent/moduleService/GlassStorageModule/pom.xml                                                                                               |   40 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/entity/HollowGlassQueueInfo.java                                     |   86 
 hangzhoumesParent/common/servicebase/src/main/resources/mapper/BigStorageCageTaskMapper.xml                                                              |   46 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/FlowCardGlassInfoDTO.java                                      |   61 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskHistoryService.java                           |   21 
 UI-Project/src/views/StockBasicData/stockBasicyiwu.vue                                                                                                   |  306 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/BasicDataProduceServiceImpl.java                                              |   30 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/service/impl/OrdersServiceImpl.java                                                     |   50 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/HollowBigStorageDTO.java                                       |   31 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java                 |  383 
 UI-Project/src/assets/ypcc.png                                                                                                                           |    0 
 UI-Project/public/favicon.ico                                                                                                                            |    0 
 UI-Project/src/views/largescreendisplay/statistics.vue                                                                                                   |  226 
 hangzhoumesParent/common/servicebase/src/main/resources/mapper/OrderMapper.xml                                                                           |   33 
 UI-Project/src/utils/constants.js                                                                                                                        |    7 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java                                                                |  237 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/mapper/TemperingRecordMapper.java                             |   16 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserRoleServiceImpl.java                                          |   20 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application-dev.yml                                                                 |   40 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/loadglassdevicetaskhistory/controller/LoadGlassDeviceTaskHistoryController.java    |   40 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassPushMessage.java                                                    |   85 
 JsonFile/PlcdownGlass.json                                                                                                                               |  149 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/FlowCardController.java                                                         |   50 
 hangzhoumesParent/common/servicebase/target/classes/mapper/LargenScreenMapper.xml                                                                        |  141 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationTaskController.java                    |   19 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java                                             |  948 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java                                |  210 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/logback-spring.xml                                                                  |  169 
 UI-Project/package-lock.json                                                                                                                             | 5351 +
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeDetail.java                                                                 |  123 
 UI-Project/src/assets/lpa9.png                                                                                                                           |    0 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-alg.yml                                                                   |   43 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassstation/mapper/RawGlassStorageStationMapper.java                                      |   20 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/logback-spring.xml                                                           |  169 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/exception/GlobalExceptionHandler.java                                                  |   32 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/entity/request/HollowBigStorageCageHistoryRequest.java                |   59 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml                                                                  |   26 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/request/HollowTaskRequest.java                                     |   28 
 hangzhoumesParent/gateway/src/main/java/com/mes/config/MyCorsConfig.java                                                                                 |   34 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-prod.yml                                                                |   30 
 hangzhoumesParent/moduleService/GlassStorageModule/src/test/java/mes/GlassStorageModuleApplicationTest.java                                              |   52 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/DatabaseDesignDocUtil.java                                                              |   97 
 hangzhoumesParent/common/servicebase/src/main/resources/mapper/LoadGlassDeviceTaskMapper.xml                                                             |   35 
 .idea/misc.xml                                                                                                                                           |   13 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java                                                       |  110 
 UI-Project/src/utils/deepClone.js                                                                                                                        |   16 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java                                     |   76 
 UI-Project/src/assets/ypccche.png                                                                                                                        |    0 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/mesChangelogInit.sql                                                   | 1662 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/controller/HollowBigStorageCageHistoryTaskController.java             |   46 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java                      |  400 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/service/impl/LargenScreenServiceImpl.java                                        |   54 
 UI-Project/src/stores/userInfo.js                                                                                                                        |   19 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java                    |  336 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java                        |  153 
 UI-Project/src/views/mm/purchaseOrder/Details.vue                                                                                                        |  453 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-alg.yml                                                                |   38 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java                                                             |   24 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/vo/HollowGlassFormulaVO.java                                       |   28 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-yw.yml                                                                 |   33 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-yw.yml                                                                    |   43 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application-cz.yml                                                                  |   30 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageGlassInfoService.java                        |   35 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LackDetailsDTO.java                                            |   53 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java                        |  155 
 UI-Project/src/views/mm/purchaseOrder/PurchaseOrder.vue                                                                                                  |   39 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java                     |   23 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/OptimizeRequest.java                                                        |   20 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/mapper/RawGlassStorageDetailsMapper.java                                      |   30 
 UI-Project/src/assets/emi.png                                                                                                                            |    0 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java                                    |   52 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowFormulaDetailsService.java                                  |   17 
 hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml                                                              |   16 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/logback-spring.xml                                                                   |  169 
 UI-Project/src/views/Visualization/screen.vue                                                                                                            |   44 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWork.java                                                                  |  179 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/OrderDetail.java                                                            |   58 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/Engineering.java                                                           |  111 
 UI-Project/src/views/User/userpageNo.vue                                                                                                                 |  294 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java                                                  |   94 
 UI-Project/src/views/hollow/hollowaluminumthree.vue                                                                                                      |  203 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml                                                              |   33 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/FlowCardRequest.java                                                        |   28 
 hangzhoumesParent/JsonFile/PlcLoadGlass.json                                                                                                             |   78 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowGlassRelationInfo.java                                       |   95 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowBigStorageCageController.java                            |   43 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-prod.yml                                                                  |   40 
 UI-Project/src/views/GlassStorage/MaterialRackManagement.vue                                                                                             |  687 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/json/PlcTemperingGlass.json                                                      |  132 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java                                                 |   93 
 hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/ApplicationTest.java                                                               |   34 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkstation.java                                              |   76 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/controller/BigStorageCageHistoryTaskController.java    |   43 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserRoleMapper.xml                                                  |    5 
 UI-Project/src/assets/2.png                                                                                                                              |    0 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassRelationInfoMapper.xml                                            |  160 
 UI-Project/public/vuefavicon.ico                                                                                                                         |    0 
 hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java                                                |  171 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassOutRelationInfoMapper.xml                                         |   42 
 UI-Project/src/views/Caching/caching.vue                                                                                                                 |   44 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java                                          |  181 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/entity/TemperingRecord.java                                   |   77 
 UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue                                                                                                |  211 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageController.java                            |   21 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/controller/WorkAssignmentController.java                                      |   45 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/s7/entity/S7Data.java                                                     |  102 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageDetailsMapper.java                             |   21 
 hangzhoumesParent/gateway/target/classes/application.yml                                                                                                 |   70 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/WebUtils.java                                                                 |   30 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeLayout.java                                                                 |  106 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml                                                                     |   36 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java                              |   86 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/BasicDataProduceService.java                                                       |   20 
 JsonFile/PlcTemperingGlass.json                                                                                                                          |  132 
 .idea/.gitignore                                                                                                                                         |    8 
 UI-Project/src/assets/dlpla.png                                                                                                                          |    0 
 UI-Project/src/views/Slicecage/slicecagehistory.vue                                                                                                      |  535 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/DamageDetails.java                                                                  |  115 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeHeatLayoutMapper.java                                                       |   19 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/entity/DateRequest.java                                                          |   19 
 UI-Project/src/views/PurchaseReturn/purchaseStorage.vue                                                                                                  |  306 
 UI-Project/src/views/mm/purchaseOrder/Payment.vue                                                                                                        |  354 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/entity/request/LoadGlassDeviceTaskHistoryRequest.java                                 |   66 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/ReportingWorkService.java                                                          |   33 
 logs/cacheGlass/web_error.log                                                                                                                            | 13760 +++
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtAccessDeniedHandler.java                                                 |   35 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowBigStorageCageDetailsService.java                           |   70 
 UI-Project/src/assets/C1.png                                                                                                                             |    0 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowGlassOutRelationInfoController.java                      |  114 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java                            |   37 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowGlassDetails.java                                   |   38 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeHeatLayoutService.java                                                     |   24 
 .idea/vcs.xml                                                                                                                                            |    6 
 UI-Project/src/assets/background.jpg                                                                                                                     |    0 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/InitUtil.java                                                                           |  107 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/TaskCacheMapper.java                                             |   22 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeProjectController.java                                                  |   56 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/config/S7Config.java                                                      |   21 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/mesRedisChange.sql                                                     |   63 
 UI-Project/src/assets/ypcaac.png                                                                                                                         |    0 
 UI-Project/src/views/User/userlist.vue                                                                                                                   |  339 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/ResponseUtil.java                                                                       |   28 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/service/TemperingRecordService.java                           |   16 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/EdgSlotRemainVO.java                                     |   18 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java                                                               |   60 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageGlassRelationInfoService.java                |   18 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageHistoryTaskMapper.xml                                   |   48 
 hangzhoumesParent/moduleService/CacheGlassModule/target/classes/mapper/EdgStorageCageDetailsMapper.xml                                                   |  140 
 UI-Project/src/assets/3.png                                                                                                                              |    0 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/entity/SysMenu.java                                                                   |   87 
 UI-Project/src/views/HomeView.vue                                                                                                                        |   25 
 JsonFile/PlcCacheVerticalGlass.json                                                                                                                      |  377 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageGlassInfo.java                                |   77 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/S7object.java                                                              |   61 
 UI-Project/vite.config.js                                                                                                                                |   61 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/ConstSysConfig.java                                                             |   87 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassTaskController.java                            |   37 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/entity/SysConfig.java                                                               |   61 
 hangzhoumesParent/moduleService/CacheGlassModule/target/classes/application-dev.yml                                                                      |   42 
 UI-Project/src/views/Returns/return.vue                                                                                                                  |   38 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/vo/UpPattenUsageVO.java                                                  |   14 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java                                  |   61 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/ExcelToJsonConverter.java                                                  |  107 
 hangzhoumesParent/JsonFile/PlcCacheVerticalGlass.json                                                                                                    |  392 
 UI-Project/vue.config.js                                                                                                                                 |   17 
 UI-Project/src/assets/bigcar01.png                                                                                                                       |    0 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/FlowCardServiceImpl.java                                                      |   43 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/LoadGlassModuleApplication.java                                                    |   26 
 hangzhoumesParent/common/servicebase/target/classes/mapper/GlassInfoMapper.xml                                                                           |   31 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/ReportWorkRequest.java                                                      |   38 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java                                                       |  220 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/dto/DownGlassInfoDTO.java                                 |   37 
 UI-Project/src/lang/py.js                                                                                                                                |  886 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeDetailServiceImpl.java                                                |   23 
 hangzhoumesParent/common/springsecurity/target/classes/application-prod.yml                                                                              |   15 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/AwaitingRepair.java                                                         |  161 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageGlassInfoServiceImpl.java               |  218 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java                                                       |   90 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeLayoutMapper.java                                                           |   18 
 hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application-dev.yml                                                                       |   43 
 UI-Project/src/assets/logo.svg                                                                                                                           |    1 
 .idea/compiler.xml                                                                                                                                       |   39 
 hangzhoumesParent/common/servicebase/src/main/resources/mapper/RawGlassStorageDetailsMapper.xml                                                          |   80 
 hangzhoumesParent/moduleService/pom.xml                                                                                                                  |   86 
 logs/cacheGlass/web_info.log                                                                                                                             |   64 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/tools/service/BigStorageBaseService.java                                  |   17 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/entity/request/GeneralRequest.java                                                            |   17 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowGlassOutRelationInfo.java                                    |   68 
 .idea/MarsCodeWorkspaceAppSettings.xml                                                                                                                   |    7 
 UI-Project/index.html                                                                                                                                    |   13 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/DamagePrint.java                                                                |   69 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/mapper/BigStorageCageHistoryTaskMapper.java            |   19 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/LoginSuccessHandler.java                                                    |   38 
 UI-Project/src/assets/lpla.jpg                                                                                                                           |    0 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/opccallback/CacheGlassStartCallback.java                                      |  451 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java                                    |   93 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/service/OrdersService.java                                                              |   26 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeProjectServiceImpl.java                                               |   90 
 UI-Project/src/views/GlassStorage/rawhistory.vue                                                                                                         |  400 
 UI-Project/src/lang/zh.js                                                                                                                                |  929 
 UI-Project/src/views/ReportWork/reportWork.vue                                                                                                           |  353 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java                                 |   85 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/request/HollowHistoryTaskRequest.java                              |   48 
 hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application-yw.yml                                                                        |   43 
 UI-Project/src/views/Slicecage/slicecage.vue                                                                                                             | 1760 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/vo/BigStorageQueryVO.java                               |   21 
 UI-Project/src/main.js                                                                                                                                   |   34 
 UI-Project/src/views/Visualization/screenone.vue                                                                                                         |  366 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java                                                                      |  325 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/s7/entity/S7Data.java                                                           |   89 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageOutTaskMapper.java                    |   22 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/mapper/SysConfigMapper.java                                                         |   15 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/controller/TemperingRecordController.java                     |   20 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java                   |   22 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleService.java                                                           |   51 
 hangzhoumesParent/mesHub/src/main/resources/application-dev.yml                                                                                          |   22 
 hangzhoumesParent/moduleService/GlassStorageModule/target/classes/application-prod.yml                                                                   |   40 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/service/impl/HollowGlassQueueInfoServiceImpl.java                    |  112 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-yw.yml                                                               |   47 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java                                      |   42 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java                                                         |   23 
 hangzhoumesParent/common/servicebase/src/main/resources/mapper/GlassInfoMapper.xml                                                                       |   31 
 hangzhoumesParent/common/servicebase/target/classes/mapper/OptimizeProjectMapper.xml                                                                     |   24 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassstation/entity/RawGlassStorageStation.java                                            |   40 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java                        |   60 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcScreenTask.java                                                        |   86 
 hangzhoumesParent/mesHub/pom.xml                                                                                                                         |   47 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java                  |  372 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/templates/hollowGlass.ftl                                                           |   12 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/BasicDataProduceMapper.java                                                         |   18 
 UI-Project/src/assets/img.png                                                                                                                            |    0 
 hangzhoumesParent/mesHub/src/main/resources/application.yml                                                                                              |   30 
 UI-Project/src/assets/shangpianji.png                                                                                                                    |    0 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java                                                        |  165 
 UI-Project/src/assets/1.png                                                                                                                              |    0 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeLayoutService.java                                                         |   16 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationMapper.java                                |   26 
 hangzhoumesParent/moduleService/hollowGlassModule/pom.xml                                                                                                |   19 
 hangzhoumesParent/moduleService/TemperingGlassModule/pom.xml                                                                                             |   33 
 logs/loadGlass/web_warn.log                                                                                                                              |  620 
 hangzhoumesParent/common/springsecurity/target/classes/application-loc.yml                                                                               |   15 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/mapper/EdgStorageDeviceTaskMapper.java                                    |   16 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/mapper/HollowGlassQueueInfoMapper.java                               |   15 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserMapper.xml                                                      |    5 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/mapper/LoadGlassDeviceTaskMapper.java                                                 |   19 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/service/impl/LoadGlassDeviceTaskHistoryServiceImpl.java                               |   44 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java                         |  155 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageGlassRelationInfo.java                        |   53 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-yw.yml                                                                  |   25 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserRoleService.java                                                   |   17 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/Configuration.java                                                         |   46 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/common/S7object.java                                                      |   76 
 UI-Project/src/views/hollow/hellowquipthreehistory.vue                                                                                                   |  506 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/BigStorageSequenceDTO.java                                     |   17 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/service/impl/SysDictTypeServiceImpl.java                                              |   20 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/BasicDataProduce.java                                                               |   55 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-prod.yml                                                               |   40 
 hangzhoumesParent/common/servicebase/src/main/resources/mapper/RawGlassStorageStationMapper.xml                                                          |   33 
 hangzhoumesParent/moduleService/GlassStorageModule/target/classes/application-alg.yml                                                                    |   38 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java                           |   59 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/AppRunnerConfig.java                                                              |   22 
 UI-Project/src/assets/screen.png                                                                                                                         |    0 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java                            |   45 
 UI-Project/src/utils/api.js                                                                                                                              |  205 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/Damage.java                                                                     |  129 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageGlassInfoController.java                  |   18 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/FlowCardMapper.java                                                                 |   31 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/config/S7Config.java                                                            |   21 
 hangzhoumesParent/common/servicebase/target/classes/banner.txt                                                                                           |   32 
 UI-Project/.gitignore                                                                                                                                    |   28 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java                                                     |   17 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java                                           |   47 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMenuMapper.java                                                         |   17 
 UI-Project/src/views/StockBasicData/Select.vue                                                                                                           |   38 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java                                         |   88 
 UI-Project/src/assets/cangchu1.png                                                                                                                       |    0 
 hangzhoumesParent/gateway/src/main/java/com/mes/GateWayApplication.java                                                                                  |   20 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/vo/BigStorageDetailsQueryVO.java                        |   40 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-dev.yml                                                                |   38 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/GlassInfoLackDTO.java                               |   18 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/TemperingLayoutDTO.java                             |   30 
 logs/loadGlass/web_debug.log                                                                                                                             |    0 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-prod.yml                                                         |   40 
 UI-Project/src/views/Identify/identifwu.vue                                                                                                              |  238 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskHistoryServiceImpl.java                  |   53 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/Orders.java                                                                      |   63 
 UI-Project/src/views/Caching/cachingbefore.vue                                                                                                           |  548 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/ReportingWorkServiceImpl.java                                                 |   55 
 pom.xml                                                                                                                                                  |   12 
 UI-Project/src/assets/user.png                                                                                                                           |    0 
 UI-Project/src/views/hollow/hollowslicecage.vue                                                                                                          | 1145 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskService.java                                  |   26 
 hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application.yml                                                                           |   13 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/OpcNGTemperingTask.java                                                   |  178 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/DamageDetailsService.java                                                          |   16 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/JsonFile/PlcCacheVerticalGlass.json                                          |  391 
 UI-Project/config.js                                                                                                                                     |   13 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowBigStorageCageDetailsMapper.java                             |   42 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/impl/BigStorageCageHistoryTaskServiceImpl.java |   58 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/request/CacheWornRequest.java                                 |   28 
 hangzhoumesParent/common/servicebase/target/classes/mapper/LoadGlassDeviceTaskMapper.xml                                                                 |   35 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeLayoutController.java                                                   |   20 
 hangzhoumesParent/common/springsecurity/pom.xml                                                                                                          |   40 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/LoadGlassInfo.java                                                           |  171 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java                                              |  269 
 UI-Project/src/views/PurchaseReturn/purchaseReturn.vue                                                                                                   | 1167 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/TemperingGlassCountDTO.java                         |   46 
 hangzhoumesParent/moduleService/CacheGlassModule/target/classes/JsonFile/PlcCacheGlass.json                                                              |   64 
 hangzhoumesParent/gateway/src/main/resources/application.yml                                                                                             |   70 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageDetailsController.java                    |   47 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageOutTaskService.java                  |   25 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java                                          |   93 
 UI-Project/src/assets/cangchu2.png                                                                                                                       |    0 
 hangzhoumesParent/common/servicebase/src/main/resources/mapper/FlowCardMapper.xml                                                                        |  187 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml                                                      |  188 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/ReportingWorkMapper.java                                                            |   16 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java                                                                      |  124 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowGlassRelationInfoController.java                         |   56 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java                                                          |  264 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java                                   |  114 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/service/impl/SysConfigServiceImpl.java                                              |   77 
 UI-Project/src/views/RegisterView.vue                                                                                                                    |  219 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/logback-spring.xml                                                                  |  169 
 hangzhoumesParent/common/servicebase/target/classes/mapper/BigStorageCageTaskMapper.xml                                                                  |   46 
 hangzhoumesParent/moduleService/LoadGlassModule/target/classes/logback-spring.xml                                                                        |  169 
 UI-Project/src/assets/dlpl9.png                                                                                                                          |    0 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/controller/SysMenuController.java                                                     |   92 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java                |  201 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/EdgStorageCageVO.java                                    |   18 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageSummaryDTO.java                           |   47 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java           |   36 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java                                                             |   20 
 UI-Project/src/assets/ganghuaqian.png                                                                                                                    |    0 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java                                                             |   16 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-cz.yml                                                                   |   32 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageGlassRelationInfoController.java          |   18 
 hangzhoumesParent/moduleService/CacheGlassModule/target/classes/mapper/EdgStorageDeviceTaskMapper.xml                                                    |   33 
 UI-Project/src/assets/xiaoche.png                                                                                                                        |    0 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/entity/RawGlassStorageTask.java                                                  |   65 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceController.java                                |   45 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java                           |   45 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCage.java                                          |   55 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/AppRunnerConfig.java                                                      |   28 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtAuthenticationEntryPoint.java                                            |   33 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageController.java                       |   49 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java                          |  106 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7object.java                                                             |   61 
 UI-Project/src/assets/northGlass.ico                                                                                                                     |    0 
 UI-Project/src/views/hollow/hollowequipmenttwo.vue                                                                                                       | 1026 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/service/impl/HollowBigStorageCageHistoryTaskServiceImpl.java          |   57 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/DateUtil.java                                                                           |   24 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/controller/RawGlassStorageStationController.java                |   34 
 UI-Project/src/views/StockBasicData/stockBasicData.vue                                                                                                   |  260 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml                                       |  277 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/dto/OrderDTO.java                                                                |   68 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMenuMapper.xml                                                      |    5 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java                                  |  186 
 UI-Project/src/assets/lpl.jpg                                                                                                                            |    0 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/common/S7object.java                                                          |   60 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java                                  |   65 
 UI-Project/src/App.vue                                                                                                                                   |   21 
 UI-Project/src/stores/counter.js                                                                                                                         |   12 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/config/S7Config.java                                                               |   21 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-yw.yml                                                           |   40 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/service/LoadGlassDeviceTaskHistoryService.java                                        |   18 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/MD5.java                                                                                |   36 
 hangzhoumesParent/common/servicebase/src/main/java/com/kangaroohy/milo/pool/MiloConnectFactory.java                                                      |  155 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageGlassRelationInfoServiceImpl.java       |   25 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/SmbTool.java                                                               |   71 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskServiceImpl.java                         |  139 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/mapper/EdgStorageDeviceTaskHistoryMapper.java                             |   18 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java                              |  120 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml                                                             |   49 
 .idea/jarRepositories.xml                                                                                                                                |   35 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageCageHistoryTask.java                  |   55 
 UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue                                                                                                |  136 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/service/HollowBigStorageCageHistoryTaskService.java                   |   21 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/FlowCardVirtualSlotDTO.java                                    |   25 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/mapper/BigStorageCageTaskMapper.java                                       |   26 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/BigStorageCageHistoryTaskService.java          |   22 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java                                           |   78 
 UI-Project/src/views/hollow/hol.vue                                                                                                                      |   36 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java                                                 |   80 
 UI-Project/src/assets/shangpian.png                                                                                                                      |    0 
 hangzhoumesParent/moduleService/CacheGlassModule/target/classes/mapper/TaskCacheMapper.xml                                                               |   25 
 UI-Project/src/views/Permissions/permissionslist.vue                                                                                                     |  418 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java                                                                    |  175 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/mapper/HollowBigStorageCageHistoryTaskMapper.java                     |   18 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/entity/DailyProductionVO.java                                                    |   52 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java                     |  244 
 UI-Project/src/assets/dipan.png                                                                                                                          |    0 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/xml/OrderMapper.xml                                                              |   33 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageDTO.java                                  |   34 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstation.java                                      |   76 
 hangzhoumesParent/common/springsecurity/src/main/resources/application-prod.yml                                                                          |   15 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java                             |   53 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/handler/MyMetaObjectHandler.java                                                       |   22 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/pom.xml                                                                                         |   26 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/mapper/UpWorkstationMapper.xml                                                        |   22 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/dto/FlowCardDTO.java                                                                |  110 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java                                                       |   44 
 UI-Project/src/views/NewPage.vue                                                                                                                         |  148 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java                                              |  175 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java                           |   48 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageOutTaskController.java            |   37 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/service/impl/TemperingRecordServiceImpl.java                  |   20 
 hangzhoumesParent/moduleService/GlassStorageModule/target/classes/application-dev.yml                                                                    |   38 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/request/DamageRequest.java                                                      |   35 
 hangzhoumesParent/common/springsecurity/src/main/resources/application-loc.yml                                                                           |   15 
 UI-Project/src/views/Returns/upreturns2.vue                                                                                                              |  638 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageDetailsServiceImpl.java                  |  172 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeDetailMapper.java                                                           |   18 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/config/S7ConfigWL1.java                                                           |   21 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java                                  |   72 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowFormulaDetails.java                                          |   88 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeProjectService.java                                                        |   43 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/exception/ServiceException.java                                                        |   14 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassstation/service/RawGlassStorageStationService.java                                    |   30 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/entity/EdgStorageDeviceTask.java                                          |   66 
 hangzhoumesParent/common/springsecurity/target/classes/mapper/SysMenuMapper.xml                                                                          |   15 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageDetailsMapper.xml                                               |  140 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java                                                    |  418 
 UI-Project/src/assets/taimian.png                                                                                                                        |    0 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRole.java                                                                   |   50 
 UI-Project/src/assets/88.png                                                                                                                             |    0 
 hangzhoumesParent/moduleService/CacheGlassModule/target/classes/application.yml                                                                          |   40 
 UI-Project/src/views/hollow/hollowaluminum.vue                                                                                                           |  203 
 hangzhoumesParent/moduleService/CacheGlassModule/pom.xml                                                                                                 |   39 
 hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application-prod.yml                                                                      |   40 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java                          |  117 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/entity/PieChartVO.java                                                           |   50 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitInfo.java                                                                        |   85 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-cz.yml                                                           |   30 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/entity/request/SysConfigRequest.java                                                |   42 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/service/LargenScreenService.java                                                 |   21 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/entity/SysDictType.java                                                               |   43 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/RedisUtil.java                                                                          |  235 
 UI-Project/src/stores/sd/product/productGlassType.js                                                                                                     |   11 
 UI-Project/src/views/Returns/upreturns3.vue                                                                                                              |  839 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/FlowCardService.java                                                               |   27 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/entity/HollowBigStorageCageHistoryTask.java                           |   55 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java                              |  322 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/service/BigStorageCageTaskService.java                                     |   26 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/EngineeringService.java                                                   |   72 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/RawGlassStorageTaskService.java                                          |   37 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/service/impl/SysDictDataServiceImpl.java                                              |   20 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/entity/request/RawGlassTaskRequest.java                                          |   36 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/test/java/com/mes/TemperingApplicationTest.java                                                 |   58 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/CutDrawingVO.java                                        |   19 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/UserInfoUtils.java                                                            |   26 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCageDetails.java                                  |  127 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java                                     |   74 
 UI-Project/src/views/Caching/cachingunhistory.vue                                                                                                        |  412 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassstation/service/impl/RawGlassStorageStationServiceImpl.java                           |   60 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/controller/RawGlassStorageTaskController.java                      |   60 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java                                            |   80 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/LoginFailureHandler.java                                                    |   31 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/LoginUser.java                                                             |   94 
 UI-Project/src/views/PurchaseReturn/purchase.vue                                                                                                         |   38 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWorkDetail.java                                                            |  154 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java                                                     |  201 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeHeatLayout.java                                                             |   70 
 UI-Project/.vscode/extensions.json                                                                                                                       |    3 
 UI-Project/src/assets/lp.png                                                                                                                             |    0 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/tools/service/impl/BigStorageBaseServiceImpl.java                         |  671 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java                 |   88 
 UI-Project/src/views/StockBasicData/stockhistory.vue                                                                                                     |  271 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/GlassStorageApplication.java                                                    |   28 
 hangzhoumesParent/JsonFile/PlcCacheGlass.json                                                                                                            |   64 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/TemperingGlassModuleApplication.java                                          |   31 
 UI-Project/src/assets/s.png                                                                                                                              |    0 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/DamageDetailsController.java                                                    |   32 
 UI-Project/src/assets/dlpl.png                                                                                                                           |    0 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/UpWorkstationMapper.java                                        |   21 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application.yml                                                                    |   16 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeProject.java                                                                |  214 
 UI-Project/src/views/User/user.vue                                                                                                                       |   38 
 UI-Project/src/views/mm/purchaseOrder/Select.vue                                                                                                         |  917 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcHollowRemoveTask.java                                                     |  128 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstionAndDownGlassinfo.java                        |   80 
 UI-Project/src/views/hollow/hellowquiphistory.vue                                                                                                        |  728 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/mapper/LargenScreenMapper.java                                                   |   16 
 hangzhoumesParent/moduleService/CacheGlassModule/target/classes/application-cz.yml                                                                       |   32 
 UI-Project/src/views/GlassStorage/rawfilmstorage2.vue                                                                                                    | 1424 
 UI-Project/src/views/mm/purchaseOrder/Create.vue                                                                                                         |  724 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java                         |   85 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageFeedTaskService.java                 |   33 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassNewTask.java                                                     |  755 
 UI-Project/src/assets/aaa.png                                                                                                                            |    0 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/ResultCodeEnum.java                                                                     |   33 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageFeedTaskMapper.java                   |   25 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeHeatDetailService.java                                                     |   25 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/GlassInfo.java                                                               |  167 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowGlassRelationInfoService.java                               |   43 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java                   |   84 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java                          |   34 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/service/HollowGlassQueueInfoService.java                             |   22 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/mapper/EngineeringMapper.java                                          |   16 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/SlotSequenceDTO.java                                |   42 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMapper.xml                                                          |    5 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownStorageCageDetailsMapper.xml                                             |   47 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/ReportingWorkDetailController.java                                              |   37 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java             |  554 
 hangzhoumesParent/mesHub/src/main/java/com/mes/MesHubApplication.java                                                                                    |   25 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml                                                              |   49 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/HollowGlassApplication.java                                                      |   27 
 UI-Project/src/assets/9.png                                                                                                                              |    0 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/service/impl/LoadGlassDeviceOneTaskServiceImpl.java                                   |   32 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/controller/LargenScreenController.java                                           |   38 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/vo/SysUserVO.java                                                          |   63 
 UI-Project/src/assets/base.css                                                                                                                           |  119 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageGlassRelationInfoMapper.xml                                 |   20 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/service/SysConfigService.java                                                       |   31 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java                                  |  157 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageOutTaskServiceImpl.java         |   95 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java                                                |  239 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java                      |  119 
 UI-Project/src/views/hollow/hellowslicecagehistory.vue                                                                                                   |  542 
 .idea/encodings.xml                                                                                                                                      |   22 
 hangzhoumesParent/moduleService/CacheGlassModule/target/classes/mapper/EdgStorageCageMapper.xml                                                          |   33 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/SysMenuService.java                                                           |   66 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/ReportingWorkDetailMapper.java                                                      |   16 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeHeatDetailServiceImpl.java                                            |   37 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/entity/SysDictData.java                                                               |   48 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageTask.java                                            |  613 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java                                                 |   23 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/ReportingWorkDetailService.java                                                    |   16 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java                                                        |  722 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/vo/BigStorageVO.java                                                              |   20 
 hangzhoumesParent/moduleService/LoadGlassModule/target/classes/JsonFile/PlcLoadGlass.json                                                                |   78 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/MybatisPlusConfig.java                                                          |   30 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java                                                                |  274 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/dto/HollowGlassInfoDTO.java                                                  |   17 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/UpPattenUsage.java                                                       |   75 
 hangzhoumesParent/common/servicebase/src/main/resources/mapper/LargenScreenMapper.xml                                                                    |  141 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleMenuServiceImpl.java                                              |   20 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageCageTask.java                                             |   35 
 hangzhoumesParent/common/servicebase/target/classes/mapper/OrderMapper.xml                                                                               |   33 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/eneity/request/DamageRequest.java                              |   42 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/vo/HollowBigStorageDetailsQueryVO.java                             |   29 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java                                                          |  226 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/UpdateHollowBigStorageCageDTO.java                             |   16 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java                                                  |  738 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRoleMenu.java                                                               |   36 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageGlassRelationInfoMapper.java                  |   19 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java                              |   98 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeLayoutServiceImpl.java                                                |   22 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/s7/entity/S7DataWL1.java                                                          |   52 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java                |   83 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationTaskMapper.java                            |   26 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java                                 |   28 
 UI-Project/src/views/mm/purchaseOrder/Return.vue                                                                                                         |  593 
 UI-Project/src/assets/screen2.png                                                                                                                        |    0 
 logs/loadGlass/web_info.log                                                                                                                              | 2922 
 hangzhoumesParent/common/pom.xml                                                                                                                         |  210 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/controller/OrderController.java                                                         |   52 
 hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application-cz.yml                                                                        |   30 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-dev.yml                                                          |   40 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/mapper/xml/TemperingRecordMapper.xml                          |    5 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/service/impl/BigStorageCageTaskServiceImpl.java                            |   48 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/mapper/EngineeringMapper.java                                                     |   17 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowFormulaDetailsMapper.xml                                               |   67 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java                     |   85 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/mapper/RawGlassStorageTaskMapper.java                                            |   16 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/entity/dto/RawGlassStorageDetailsDTO.java                                     |   52 
 hangzhoumesParent/moduleService/CacheGlassModule/target/classes/logback-spring.xml                                                                       |  169 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/request/ReportingDamageMapper.java                                                  |   16 
 hangzhoumesParent/common/servicebase/src/main/java/com/kangaroohy/milo/configuration/MiloAutoConfiguration.java                                          |  117 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageMapper.xml                                              |   98 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java                                                   |   43 
 UI-Project/auto-imports.d.ts                                                                                                                             |    9 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/OptimizeGlassinfo.java                                                       |  126 
 hangzhoumesParent/common/servicebase/src/main/resources/mapper/UpPattenUsageMapper.xml                                                                   |   39 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCage.java                                         |   52 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/FlowCard.java                                                                       |  163 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java                                                                            |   86 
 UI-Project/src/assets/d2.png                                                                                                                             |    0 
 UI-Project/src/utils/evicePixelRatio.js                                                                                                                  |   53 
 UI-Project/src/views/Returns/upreturns.vue                                                                                                               |  635 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageMapper.xml                                                      |   33 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/request/AwaitingRepairMapper.java                                                   |   16 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowBigStorageCageHistoryTaskMapper.xml                                    |   50 
 UI-Project/src/views/Identify/identify.vue                                                                                                               |  281 
 UI-Project/src/assets/main.css                                                                                                                           |   54 
 UI-Project/src/views/hollow/hollowequipment.vue                                                                                                          | 1803 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/s7/job/s7Job.java                                                         |   28 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/mapper/EdgGlassTaskInfoMapper.java                                   |   18 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml                                                                       |   13 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/PageRequest.java                                                                  |   19 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java                           |  244 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/entity/LoadGlassDeviceTaskHistory.java                                                |   77 
 hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java                                              |  166 
 UI-Project/src/views/hollow/hollowequipmenthree.vue                                                                                                      | 1023 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-cz.yml                                                               |   37 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java                                  |   85 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/entity/RawGlassStorageDetails.java                                            |   69 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/entity/EdgStorageDeviceTaskHistory.java                                   |   88 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/controller/RawGlassStorageDetailsController.java                |   83 
 UI-Project/src/views/User/permissions.vue                                                                                                                |  468 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java                         |  315 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/logback-spring.xml                                                                    |  169 
 UI-Project/src/stores/tableData.js                                                                                                                       |  225 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/BigStorageCageBaseInfo.java                                                       |   63 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCageDetails.java                                   |   72 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeProjectMapper.java                                                          |   21 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageSequenceDTO.java                          |   17 
 UI-Project/src/views/largescreendisplay/screendisplay.vue                                                                                                | 1290 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java                           |   89 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OPCPlcSlicecage.java                                                  |  232 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageMapper.java                                    |   17 
 UI-Project/src/views/hollow/hollowaluminumtwo.vue                                                                                                        |  203 
 hangzhoumesParent/moduleService/LoadGlassModule/pom.xml                                                                                                  |   33 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/ReportingWorkController.java                                                    |   42 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/controller/SysConfigController.java                                                 |   61 
 logs/loadGlass/web_error.log                                                                                                                             | 113007 +++++++++++++++++++++++++++++
 hangzhoumesParent/common/servicebase/target/classes/mapper/UpPattenUsageMapper.xml                                                                       |   39 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java                                               | 1162 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkSequence.java                                             |   15 
 UI-Project/src/views/Returns/upreturnhistory.vue                                                                                                         |  310 
 logs/cacheGlass/web_warn.log                                                                                                                             |   49 
 UI-Project/package.json                                                                                                                                  |   44 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java                                                      |  249 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml                                                                      |   40 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageGlassInfoMapper.java                          |   15 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java                             |  101 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/service/SysDictDataService.java                                                       |   16 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeHeatDetail.java                                                             |  125 
 UI-Project/src/views/Visualization/screenthree.vue                                                                                                       |  141 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java               |   49 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/dto/FlowCardPercentDTO.java                                                         |  102 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java                                          |   94 
 hangzhoumesParent/moduleService/CacheGlassModule/target/classes/application-prod.yml                                                                     |   42 
 UI-Project/src/assets/d1.png                                                                                                                             |    0 
 UI-Project/src/assets/lp9.png                                                                                                                            |    0 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/JsonFile/PlcLoadGlass.json                                                            |   78 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application-prod.yml                                                                |   40 
 UI-Project/src/assets/dpxsa.png                                                                                                                          |    0 
 UI-Project/src/router/index.js                                                                                                                           |  514 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageOutTaskMapper.xml                                       |   16 
 hangzhoumesParent/moduleService/CacheGlassModule/target/classes/mapper/EdgStorageDeviceTaskHistoryMapper.xml                                             |   41 
 hangzhoumesParent/moduleService/UnLoadGlassModule/pom.xml                                                                                                |   34 
 UI-Project/README.md                                                                                                                                     |   29 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageService.java                                 |   66 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-yw.yml                                                                   |   42 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml                                      |   44 
 UI-Project/src/layout/MainErpView.vue                                                                                                                    |  470 
 UI-Project/src/views/mm/purchaseOrder/CreateHeader.vue                                                                                                   |  739 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java                                                  |  148 
 UI-Project/src/views/GlassStorage/GlassStorage.vue                                                                                                       |   38 
 UI-Project/src/views/Caching/cachingun.vue                                                                                                               |  456 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/JsonFile/PlcCacheGlass.json                                                          |   64 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUser.java                                                               |   66 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/mapper/LoadGlassDeviceTaskHistoryDao.java                                             |   15 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/mapper/EdgGlassTaskInfoMapper.java                           |   18 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java                                                           |  603 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/service/WorkAssignmentService.java                                            |   19 
 hangzhoumesParent/common/servicebase/pom.xml                                                                                                             |   50 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/request/EdgGlassInfoRequest.java                              |   40 
 UI-Project/src/views/largescreen/largescreen.vue                                                                                                         |  661 
 hangzhoumesParent/pom.xml                                                                                                                                |   80 
 UI-Project/src/lang/en.js                                                                                                                                |  925 
 hangzhoumesParent/common/servicebase/src/main/resources/application.yml                                                                                  |    8 
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowFormulaDetailsMapper.java                                    |   18 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/mapper/xml/WorkAssignmentMapper.xml                                           |    5 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/CacheVerticalClassModuleApplication.java                                  |   30 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/service/LoadGlassDeviceTaskService.java                                               |   20 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/service/SysDictTypeService.java                                                       |   16 
 hangzhoumesParent/common/servicebase/src/main/resources/banner.txt                                                                                       |   32 
 828 files changed, 233,416 insertions(+), 0 deletions(-)

diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..35410ca
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# 榛樿蹇界暐鐨勬枃浠�
+/shelf/
+/workspace.xml
+# 鍩轰簬缂栬緫鍣ㄧ殑 HTTP 瀹㈡埛绔姹�
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/MarsCodeWorkspaceAppSettings.xml b/.idea/MarsCodeWorkspaceAppSettings.xml
new file mode 100644
index 0000000..5880005
--- /dev/null
+++ b/.idea/MarsCodeWorkspaceAppSettings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="com.codeverse.userSettings.MarscodeWorkspaceAppSettingsState">
+    <option name="ckgOperationStatus" value="SUCCESS" />
+    <option name="progress" value="0.99854225" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..992062d
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <annotationProcessing>
+      <profile name="Maven default annotation processors profile" enabled="true">
+        <sourceOutputDir name="target/generated-sources/annotations" />
+        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
+        <outputRelativeToContentRoot value="true" />
+        <module name="hollowGlass" />
+        <module name="cacheVerticalGlass" />
+        <module name="servicebase" />
+        <module name="HangZhouMes" />
+        <module name="temperingGlass" />
+        <module name="glassStorage" />
+        <module name="springsecurity" />
+        <module name="loadGlass" />
+        <module name="gateway" />
+        <module name="mesHub" />
+        <module name="unLoadGlass" />
+        <module name="cacheGlass" />
+      </profile>
+    </annotationProcessing>
+  </component>
+  <component name="JavacSettings">
+    <option name="ADDITIONAL_OPTIONS_OVERRIDE">
+      <module name="cacheGlass" options="-parameters" />
+      <module name="cacheVerticalGlass" options="-parameters" />
+      <module name="gateway" options="-parameters" />
+      <module name="glassStorage" options="-parameters" />
+      <module name="hollowGlass" options="-parameters" />
+      <module name="loadGlass" options="-parameters" />
+      <module name="mesHub" options="-parameters" />
+      <module name="servicebase" options="-parameters" />
+      <module name="springsecurity" options="-parameters" />
+      <module name="temperingGlass" options="-parameters" />
+      <module name="unLoadGlass" options="-parameters" />
+    </option>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..48eba26
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding">
+    <file url="file://$PROJECT_DIR$/hangzhoumesParent/common/servicebase/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/hangzhoumesParent/common/springsecurity/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/hangzhoumesParent/common/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/hangzhoumesParent/common/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/hangzhoumesParent/gateway/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/hangzhoumesParent/mesHub/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/hangzhoumesParent/moduleService/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/hangzhoumesParent/moduleService/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/hangzhoumesParent/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/hangzhoumesParent/src/main/resources" charset="UTF-8" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..159ba94
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RemoteRepositoriesConfiguration">
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="https://repo.maven.apache.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Maven Central repository" />
+      <option name="url" value="https://repo1.maven.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="http://maven.aliyun.com/nexus/content/groups/public" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="jboss.community" />
+      <option name="name" value="JBoss Community repository" />
+      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="nexus-aliyun" />
+      <option name="name" value="Nexus aliyun" />
+      <option name="url" value="https://maven.aliyun.com/repository/public" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="spring" />
+      <option name="name" value="spring" />
+      <option name="url" value="https://maven.aliyun.com/repository/spring" />
+    </remote-repository>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..22d7e8e
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,13 @@
+<project version="4">
+  <component name="ExternalStorageConfigurationManager" enabled="true" />
+  <component name="MavenProjectsManager">
+    <option name="originalFiles">
+      <list>
+        <option value="$PROJECT_DIR$/pom.xml" />
+        <option value="$PROJECT_DIR$/hangzhoumesParent/gateway/pom.xml" />
+        <option value="$PROJECT_DIR$/hangzhoumesParent/pom.xml" />
+      </list>
+    </option>
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
+</project>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/JsonFile/PlcCacheGlass.json b/JsonFile/PlcCacheGlass.json
new file mode 100644
index 0000000..01969b7
--- /dev/null
+++ b/JsonFile/PlcCacheGlass.json
@@ -0,0 +1,64 @@
+{
+   "plcAddressBegin":"DB11.0",
+   "plcAddressLenght":"80",
+   "dataType":"word",
+   "parameteInfor":[
+      {
+         "codeId": "A06_request_word",
+         "addressIndex":"0",
+         "addressLenght":"2", 
+         "ratio":"1", 
+         "unit":"m/min"    
+      },
+      {
+          "codeId": "A05_scanning_ID",
+          "addressIndex":"2",
+          "addressLenght":"30",
+          "ratio":"1",
+          "unit":""
+       },
+       {
+          "codeId": "Current_slot",
+          "addressIndex":"36",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       },
+        {
+          "codeId": "MES_confirmation_word",
+          "addressIndex":"38",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       },
+       {
+          "codeId": "A08_glass_status",
+          "addressIndex":"68",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       },
+       {
+          "codeId": "A10_glass_status",
+          "addressIndex":"70",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       },
+       {
+          "codeId": "A09_prohibit_film_production",
+          "addressIndex":"72",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       }
+       ,
+       {
+          "codeId": "A10_prohibit_film_production",
+          "addressIndex":"74",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       }
+   ]
+}
diff --git a/JsonFile/PlcCacheVerticalGlass.json b/JsonFile/PlcCacheVerticalGlass.json
new file mode 100644
index 0000000..10e8e33
--- /dev/null
+++ b/JsonFile/PlcCacheVerticalGlass.json
@@ -0,0 +1,377 @@
+{
+	"plcAddressBegin": "DB14.0",
+	"plcAddressLenght": "938",
+	"dataType": "word",
+	"parameteInfor": [{
+			"codeId": "D01ID",
+			"addressIndex": "0",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D02ID",
+			"addressIndex": "32",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ID1",
+			"addressIndex": "64",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ID2",
+			"addressIndex": "96",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ID3",
+			"addressIndex": "128",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ID4",
+			"addressIndex": "160",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ID5",
+			"addressIndex": "192",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ID6",
+			"addressIndex": "224",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D04ID",
+			"addressIndex": "256",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ID1",
+			"addressIndex": "288",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ID2",
+			"addressIndex": "328",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ID3",
+			"addressIndex": "352",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ID4",
+			"addressIndex": "384",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ID5",
+			"addressIndex": "416",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ID6",
+			"addressIndex": "448",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01ID1",
+			"addressIndex": "480",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01ID2",
+			"addressIndex": "512",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01ID3",
+			"addressIndex": "544",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01ID4",
+			"addressIndex": "576",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01ID5",
+			"addressIndex": "608",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01ID6",
+			"addressIndex": "640",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02ID1",
+			"addressIndex": "672",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02ID2",
+			"addressIndex": "704",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02ID3",
+			"addressIndex": "736",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02ID4",
+			"addressIndex": "768",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02ID5",
+			"addressIndex": "800",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02ID6",
+			"addressIndex": "832",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ToMES",
+			"addressIndex": "874",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ToMES",
+			"addressIndex": "876",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D01ToMES",
+			"addressIndex": "878",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D04ToMES",
+			"addressIndex": "880",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "MESToD03",
+			"addressIndex": "888",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "MESToD05",
+			"addressIndex": "890",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "MESToPLC",
+			"addressIndex": "892",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "StartAddToImport1",
+			"addressIndex": "914",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "StartAddToImport2",
+			"addressIndex": "916",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "StartAddToImport3",
+			"addressIndex": "918",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "StartAddToImport4",
+			"addressIndex": "920",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "StartAddToImport5",
+			"addressIndex": "922",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "StartAddToImport6",
+			"addressIndex": "924",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "TargetAddToImport1",
+			"addressIndex": "926",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "TargetAddToImport2",
+			"addressIndex": "928",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "TargetAddToImport3",
+			"addressIndex": "930",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "TargetAddToImport4",
+			"addressIndex": "932",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "TargetAddToImport5",
+			"addressIndex": "934",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "TargetAddToImport6",
+			"addressIndex": "936",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "deviceState",
+			"addressIndex": "864",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01State",
+			"addressIndex": "866",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02State",
+			"addressIndex": "868",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03State",
+			"addressIndex": "870",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05State",
+			"addressIndex": "872",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "MESToD01",
+			"addressIndex": "894",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "MESToD04",
+			"addressIndex": "896",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		}
+	]
+}
\ No newline at end of file
diff --git a/JsonFile/PlcLoadGlass.json b/JsonFile/PlcLoadGlass.json
new file mode 100644
index 0000000..9b0432b
--- /dev/null
+++ b/JsonFile/PlcLoadGlass.json
@@ -0,0 +1,78 @@
+{
+  "plcAddressBegin":"DB1.2000",
+  "plcAddressLenght":"100",
+  "dataType":"word",
+  "parameteInfor":[
+    {
+      "codeId": "loadRequest",
+      "addressIndex":"0",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":"m/min"
+    },
+    {
+      "codeId": "PlcStatus",
+      "addressIndex":"10",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "MesToPlc",
+      "addressIndex":"20",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "InkageStatus",
+      "addressIndex":"22",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "WorkId",
+      "addressIndex":"24",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "GlassWidth",
+      "addressIndex":"26",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "GlassHeight",
+      "addressIndex":"28",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    }
+  ,
+    {
+      "codeId": "MesToPlcStatus",
+      "addressIndex":"40",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "MesToPlcStatusId",
+      "addressIndex":"42",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "MesTaskStatus",
+      "addressIndex":"56",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    }
+  ]
+}
\ No newline at end of file
diff --git a/JsonFile/PlcTemperingGlass.json b/JsonFile/PlcTemperingGlass.json
new file mode 100644
index 0000000..3abe9a6
--- /dev/null
+++ b/JsonFile/PlcTemperingGlass.json
@@ -0,0 +1,132 @@
+{
+    "plcAddressBegin": "DB88.0",
+    "plcAddressLenght": "58",
+    "dataType": "word",
+    "parameteInfor": [
+        {
+            "codeId": "confirmationWord",
+            "addressIndex": "0",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperingLayoutId",
+            "addressIndex": "2",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "filmsid",
+            "addressIndex": "4",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperingType",
+            "addressIndex": "6",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "thickness",
+            "addressIndex": "8",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "loadingRate",
+            "addressIndex": "10",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "areaDifference",
+            "addressIndex": "12",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "state",
+            "addressIndex": "22",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "deviceState",
+            "addressIndex": "24",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "resultState",
+            "addressIndex": "26",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "loadSpeed",
+            "addressIndex": "28",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "downSpeed",
+            "addressIndex": "30",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "load1",
+            "addressIndex": "32",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "heat1",
+            "addressIndex": "34",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "heat2",
+            "addressIndex": "36",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "cool1",
+            "addressIndex": "38",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "cool2",
+            "addressIndex": "40",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "downId",
+            "addressIndex": "42",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "productionTime",
+            "addressIndex": "44",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "heatEnergy",
+            "addressIndex": "46",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "coolEnergy",
+            "addressIndex": "48",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperatureUp1",
+            "addressIndex": "50",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperatureDown1",
+            "addressIndex": "52",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperatureUp2",
+            "addressIndex": "54",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperatureDown2",
+            "addressIndex": "56",
+            "addressLenght": "2"
+        }
+    ]
+}
\ No newline at end of file
diff --git a/JsonFile/PlcdownGlass.json b/JsonFile/PlcdownGlass.json
new file mode 100644
index 0000000..a5698c2
--- /dev/null
+++ b/JsonFile/PlcdownGlass.json
@@ -0,0 +1,149 @@
+{
+	"plcAddressBegin": "DB11.0",
+	"plcAddressLenght": "94",
+	"dataType": "word",
+	"parameteInfor": [
+
+		{
+			"codeId": "requestWord",
+			"addressIndex": "0",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "requestID",
+			"addressIndex": "2",
+			"addressLenght": "30"
+		},
+		{
+			"codeId": "currentCell",
+			"addressIndex": "32",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "glassStatus08",
+			"addressIndex": "36",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "glassStatus06",
+			"addressIndex": "40",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "glassStatus11",
+			"addressIndex": "42",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "glassStatus13",
+			"addressIndex": "44",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G04_error_status",
+			"addressIndex": "48",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G05_error_status",
+			"addressIndex": "50",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G06_error_status",
+			"addressIndex": "52",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "robot_error_status",
+			"addressIndex": "54",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G08_error_status",
+			"addressIndex": "56",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G09_error_status",
+			"addressIndex": "58",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G10_error_status",
+			"addressIndex": "60",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G11_error_status",
+			"addressIndex": "62",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "robot_error_status",
+			"addressIndex": "64",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G13_error_status",
+			"addressIndex": "66",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "confirmationWord",
+			"addressIndex": "72",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G06_prohibit_film_production",
+			"addressIndex": "74",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G11_prohibit_film_production",
+			"addressIndex": "76",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G13_prohibit_film_production",
+			"addressIndex": "78",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "Glass_width",
+			"addressIndex": "80",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "Glass_height",
+			"addressIndex": "82",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "Glass_thickness",
+			"addressIndex": "84",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "Start_cell",
+			"addressIndex": "86",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "End_cell",
+			"addressIndex": "88",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "task_type",
+			"addressIndex": "90",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "alarm_signal",
+			"addressIndex": "92",
+			"addressLenght": "2"
+		}
+
+	]
+}
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..6990012
--- /dev/null
+++ b/README.md
@@ -0,0 +1,40 @@
+# NorthGlassERP
+
+#### 浠嬬粛
+{**浠ヤ笅鏄� Gitee 骞冲彴璇存槑锛屾偍鍙互鏇挎崲姝ょ畝浠�**
+Gitee 鏄� OSCHINA 鎺ㄥ嚭鐨勫熀浜� Git 鐨勪唬鐮佹墭绠″钩鍙帮紙鍚屾椂鏀寔 SVN锛夈�備笓涓哄紑鍙戣�呮彁渚涚ǔ瀹氥�侀珮鏁堛�佸畨鍏ㄧ殑浜戠杞欢寮�鍙戝崗浣滃钩鍙�
+鏃犺鏄釜浜恒�佸洟闃熴�佹垨鏄紒涓氾紝閮借兘澶熺敤 Gitee 瀹炵幇浠g爜鎵樼銆侀」鐩鐞嗐�佸崗浣滃紑鍙戙�備紒涓氶」鐩鐪� [https://gitee.com/enterprises](https://gitee.com/enterprises)}
+
+#### 杞欢鏋舵瀯
+杞欢鏋舵瀯璇存槑
+
+
+#### 瀹夎鏁欑▼
+
+1.  xxxx
+2.  xxxx
+3.  xxxx
+
+#### 浣跨敤璇存槑
+
+1.  xxxx
+2.  xxxx
+3.  xxxx
+
+#### 鍙備笌璐$尞
+
+1.  Fork 鏈粨搴�
+2.  鏂板缓 Feat_xxx 鍒嗘敮
+3.  鎻愪氦浠g爜
+4.  鏂板缓 Pull Request
+
+
+#### 鐗规妧
+
+1.  浣跨敤 Readme\_XXX.md 鏉ユ敮鎸佷笉鍚岀殑璇█锛屼緥濡� Readme\_en.md, Readme\_zh.md
+2.  Gitee 瀹樻柟鍗氬 [blog.gitee.com](https://blog.gitee.com)
+3.  浣犲彲浠� [https://gitee.com/explore](https://gitee.com/explore) 杩欎釜鍦板潃鏉ヤ簡瑙� Gitee 涓婄殑浼樼寮�婧愰」鐩�
+4.  [GVP](https://gitee.com/gvp) 鍏ㄧО鏄� Gitee 鏈�鏈変环鍊煎紑婧愰」鐩紝鏄患鍚堣瘎瀹氬嚭鐨勪紭绉�寮�婧愰」鐩�
+5.  Gitee 瀹樻柟鎻愪緵鐨勪娇鐢ㄦ墜鍐� [https://gitee.com/help](https://gitee.com/help)
+6.  Gitee 灏侀潰浜虹墿鏄竴妗g敤鏉ュ睍绀� Gitee 浼氬憳椋庨噰鐨勬爮鐩� [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
+
diff --git a/UI-Project/.gitignore b/UI-Project/.gitignore
new file mode 100644
index 0000000..38adffa
--- /dev/null
+++ b/UI-Project/.gitignore
@@ -0,0 +1,28 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+.DS_Store
+dist
+dist-ssr
+coverage
+*.local
+
+/cypress/videos/
+/cypress/screenshots/
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/UI-Project/.vscode/extensions.json b/UI-Project/.vscode/extensions.json
new file mode 100644
index 0000000..c0a6e5a
--- /dev/null
+++ b/UI-Project/.vscode/extensions.json
@@ -0,0 +1,3 @@
+{
+  "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"]
+}
diff --git a/UI-Project/README.md b/UI-Project/README.md
new file mode 100644
index 0000000..b7e89c9
--- /dev/null
+++ b/UI-Project/README.md
@@ -0,0 +1,29 @@
+# northglass-erp
+
+This template should help get you started developing with Vue 3 in Vite.
+
+## Recommended IDE Setup
+
+[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).
+
+## Customize configuration
+
+See [Vite Configuration Reference](https://vitejs.dev/config/).
+
+## Project Setup
+
+```sh
+npm install
+```
+
+### Compile and Hot-Reload for Development
+
+```sh
+npm run dev
+```
+
+### Compile and Minify for Production
+
+```sh
+npm run build
+```
diff --git a/UI-Project/auto-imports.d.ts b/UI-Project/auto-imports.d.ts
new file mode 100644
index 0000000..66c4de4
--- /dev/null
+++ b/UI-Project/auto-imports.d.ts
@@ -0,0 +1,9 @@
+/* eslint-disable */
+/* prettier-ignore */
+// @ts-nocheck
+// noinspection JSUnusedGlobalSymbols
+// Generated by unplugin-auto-import
+export {}
+declare global {
+  const useI18n: typeof import('vue-i18n')['useI18n']
+}
diff --git a/UI-Project/config.js b/UI-Project/config.js
new file mode 100644
index 0000000..605a4d6
--- /dev/null
+++ b/UI-Project/config.js
@@ -0,0 +1,13 @@
+export default {
+    // serverUrl: "10.153.19.150:88/api",
+//  serverUrl: "192.168.2.100:88/api",
+    // serverUrl: "10.153.19.162:88",
+    serverUrl: "127.0.0.1:88",
+    // serverUrl: "10.153.19.47:88",
+    // serverUrl2: "10.153.19.150:88"
+    // serverUrl2: "192.168.2.100:88"
+    // serverUrl2: "10.153.19.162:88"
+    // serverUrl2: "127.0.0.1:88"
+    // serverUrl2: "192.168.0.39:88"
+    //serverUrl:"res.abeim.cn"
+}
\ No newline at end of file
diff --git a/UI-Project/index.html b/UI-Project/index.html
new file mode 100644
index 0000000..5008a8e
--- /dev/null
+++ b/UI-Project/index.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8">
+    <!-- <link rel="icon" href="/favicon.ico"> -->
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>鍖楃幓</title>
+  </head>
+  <body>
+    <div id="app" style="width: 100vw;height: 100vh;"></div>
+    <script type="module" src="/src/main.js"></script>
+  </body>
+</html>
diff --git a/UI-Project/package-lock.json b/UI-Project/package-lock.json
new file mode 100644
index 0000000..b40ae79
--- /dev/null
+++ b/UI-Project/package-lock.json
@@ -0,0 +1,5351 @@
+{
+  "name": "northglass-mes",
+  "version": "0.0.0",
+  "lockfileVersion": 2,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "northglass-mes",
+      "version": "0.0.0",
+      "dependencies": {
+        "@element-plus/icons-vue": "^2.3.1",
+        "@vue-macros/reactivity-transform": "^0.3.23",
+        "axios": "^1.6.8",
+        "chart.js": "^4.4.3",
+        "dayjs": "^1.11.13",
+        "echarts": "^5.5.1",
+        "element-plus": "^2.9.9",
+        "moment": "^2.30.1",
+        "northglass-mes": "file:",
+        "pinia": "^2.1.6",
+        "pinia-plugin-persistedstate": "^3.2.0",
+        "qrcode": "^1.5.4",
+        "sortablejs": "^1.15.1",
+        "sweetalert2": "^11.10.7",
+        "vue": "^3.3.4",
+        "vue-draggable-plus": "^0.5.0",
+        "vue-echarts": "^6.7.3",
+        "vue-i18n": "^11.0.0-rc.1",
+        "vue-print-nb": "^1.7.5",
+        "vue-router": "^4.0.13",
+        "vue3-print-nb": "^0.1.4",
+        "vxe-table": "^4.5.15",
+        "xe-utils": "^3.5.14",
+        "xlsx": "^0.18.5"
+      },
+      "devDependencies": {
+        "@types/sortablejs": "^1.15.7",
+        "@vitejs/plugin-vue": "^4.6.2",
+        "babel-polyfill": "^6.26.0",
+        "http-proxy-middleware": "^3.0.0",
+        "unplugin-auto-import": "^0.17.6",
+        "vite": "^4.4.9"
+      }
+    },
+    "node_modules/@antfu/utils": {
+      "version": "0.7.8",
+      "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.8.tgz",
+      "integrity": "sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/antfu"
+      }
+    },
+    "node_modules/@babel/helper-string-parser": {
+      "version": "7.24.8",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
+      "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==",
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-validator-identifier": {
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
+      "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/parser": {
+      "version": "7.25.3",
+      "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.25.3.tgz",
+      "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==",
+      "dependencies": {
+        "@babel/types": "^7.25.2"
+      },
+      "bin": {
+        "parser": "bin/babel-parser.js"
+      },
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/@babel/types": {
+      "version": "7.25.2",
+      "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.25.2.tgz",
+      "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==",
+      "dependencies": {
+        "@babel/helper-string-parser": "^7.24.8",
+        "@babel/helper-validator-identifier": "^7.24.7",
+        "to-fast-properties": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@ctrl/tinycolor": {
+      "version": "3.6.1",
+      "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz",
+      "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==",
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@element-plus/icons-vue": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz",
+      "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==",
+      "peerDependencies": {
+        "vue": "^3.2.0"
+      }
+    },
+    "node_modules/@esbuild/win32-ia32": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
+      "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
+      "cpu": [
+        "ia32"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@floating-ui/core": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz",
+      "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==",
+      "dependencies": {
+        "@floating-ui/utils": "^0.1.3"
+      }
+    },
+    "node_modules/@floating-ui/dom": {
+      "version": "1.5.3",
+      "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz",
+      "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==",
+      "dependencies": {
+        "@floating-ui/core": "^1.4.2",
+        "@floating-ui/utils": "^0.1.3"
+      }
+    },
+    "node_modules/@floating-ui/utils": {
+      "version": "0.1.6",
+      "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz",
+      "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A=="
+    },
+    "node_modules/@intlify/core-base": {
+      "version": "11.0.0-rc.1",
+      "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-11.0.0-rc.1.tgz",
+      "integrity": "sha512-fnfZoa9pb1dKM3L1UkDUGLLrPFQ2BK98x4/fMqwS/fktUor34vQR/itPtfv652ZTplenXXLCEYjUYTGfDZgMTQ==",
+      "dependencies": {
+        "@intlify/message-compiler": "11.0.0-rc.1",
+        "@intlify/shared": "11.0.0-rc.1"
+      },
+      "engines": {
+        "node": ">= 16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/kazupon"
+      }
+    },
+    "node_modules/@intlify/message-compiler": {
+      "version": "11.0.0-rc.1",
+      "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-11.0.0-rc.1.tgz",
+      "integrity": "sha512-TGw2uBfuTFTegZf/BHtUQBEKxl7Q/dVGLoqRIdw8lFsp9g/53sYn5iD+0HxIzdYjbWL6BTJMXCPUHp9PxDTRPw==",
+      "dependencies": {
+        "@intlify/shared": "11.0.0-rc.1",
+        "source-map-js": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/kazupon"
+      }
+    },
+    "node_modules/@intlify/shared": {
+      "version": "11.0.0-rc.1",
+      "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-11.0.0-rc.1.tgz",
+      "integrity": "sha512-8tR1xe7ZEbkabTuE/tNhzpolygUn9OaYp9yuYAF4MgDNZg06C3Qny80bes2/e9/Wm3aVkPUlCw6WgU7mQd0yEg==",
+      "engines": {
+        "node": ">= 16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/kazupon"
+      }
+    },
+    "node_modules/@jridgewell/sourcemap-codec": {
+      "version": "1.4.15",
+      "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+      "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+    },
+    "node_modules/@kurkle/color": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npmmirror.com/@kurkle/color/-/color-0.3.2.tgz",
+      "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw=="
+    },
+    "node_modules/@nodelib/fs.scandir": {
+      "version": "2.1.5",
+      "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+      "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+      "dev": true,
+      "dependencies": {
+        "@nodelib/fs.stat": "2.0.5",
+        "run-parallel": "^1.1.9"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@nodelib/fs.stat": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+      "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+      "dev": true,
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@nodelib/fs.walk": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+      "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+      "dev": true,
+      "dependencies": {
+        "@nodelib/fs.scandir": "2.1.5",
+        "fastq": "^1.6.0"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@popperjs/core": {
+      "name": "@sxzz/popperjs-es",
+      "version": "2.11.7",
+      "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
+      "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==",
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/popperjs"
+      }
+    },
+    "node_modules/@rollup/pluginutils": {
+      "version": "5.1.0",
+      "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
+      "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==",
+      "dependencies": {
+        "@types/estree": "^1.0.0",
+        "estree-walker": "^2.0.2",
+        "picomatch": "^2.3.1"
+      },
+      "engines": {
+        "node": ">=14.0.0"
+      },
+      "peerDependencies": {
+        "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
+      },
+      "peerDependenciesMeta": {
+        "rollup": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@types/estree": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.2.tgz",
+      "integrity": "sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA=="
+    },
+    "node_modules/@types/http-proxy": {
+      "version": "1.17.14",
+      "resolved": "https://registry.npmmirror.com/@types/http-proxy/-/http-proxy-1.17.14.tgz",
+      "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==",
+      "dev": true,
+      "dependencies": {
+        "@types/node": "*"
+      }
+    },
+    "node_modules/@types/lodash": {
+      "version": "4.14.199",
+      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz",
+      "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg=="
+    },
+    "node_modules/@types/lodash-es": {
+      "version": "4.17.9",
+      "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.9.tgz",
+      "integrity": "sha512-ZTcmhiI3NNU7dEvWLZJkzG6ao49zOIjEgIE0RgV7wbPxU0f2xT3VSAHw2gmst8swH6V0YkLRGp4qPlX/6I90MQ==",
+      "dependencies": {
+        "@types/lodash": "*"
+      }
+    },
+    "node_modules/@types/node": {
+      "version": "20.12.5",
+      "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.12.5.tgz",
+      "integrity": "sha512-BD+BjQ9LS/D8ST9p5uqBxghlN+S42iuNxjsUGjeZobe/ciXzk2qb1B6IXc6AnRLS+yFJRpN2IPEHMzwspfDJNw==",
+      "dev": true,
+      "dependencies": {
+        "undici-types": "~5.26.4"
+      }
+    },
+    "node_modules/@types/sortablejs": {
+      "version": "1.15.8",
+      "resolved": "https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.8.tgz",
+      "integrity": "sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg=="
+    },
+    "node_modules/@types/web-bluetooth": {
+      "version": "0.0.16",
+      "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
+      "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
+    },
+    "node_modules/@vitejs/plugin-vue": {
+      "version": "4.6.2",
+      "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz",
+      "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==",
+      "dev": true,
+      "engines": {
+        "node": "^14.18.0 || >=16.0.0"
+      },
+      "peerDependencies": {
+        "vite": "^4.0.0 || ^5.0.0",
+        "vue": "^3.2.25"
+      }
+    },
+    "node_modules/@vue-macros/common": {
+      "version": "1.8.0",
+      "resolved": "https://registry.npmjs.org/@vue-macros/common/-/common-1.8.0.tgz",
+      "integrity": "sha512-auDJJzE0z3uRe3867e0DsqcseKImktNf5ojCZgUKqiVxb2yTlwlgOVAYCgoep9oITqxkXQymSvFeKhedi8PhaA==",
+      "dependencies": {
+        "@babel/types": "^7.22.17",
+        "@rollup/pluginutils": "^5.0.4",
+        "@vue/compiler-sfc": "^3.3.4",
+        "ast-kit": "^0.11.2",
+        "local-pkg": "^0.4.3",
+        "magic-string-ast": "^0.3.0"
+      },
+      "engines": {
+        "node": ">=16.14.0"
+      },
+      "peerDependencies": {
+        "vue": "^2.7.0 || ^3.2.25"
+      },
+      "peerDependenciesMeta": {
+        "vue": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@vue-macros/reactivity-transform": {
+      "version": "0.3.23",
+      "resolved": "https://registry.npmjs.org/@vue-macros/reactivity-transform/-/reactivity-transform-0.3.23.tgz",
+      "integrity": "sha512-SubIg1GsNpQdIDJusrcA2FWBgwSY+4jmL0j6SJ6PU85r3rlS+uDhn6AUkqxeZRAdmJnrbGHXDyWUdygOZmWrSg==",
+      "dependencies": {
+        "@babel/parser": "^7.22.16",
+        "@vue-macros/common": "1.8.0",
+        "@vue/compiler-core": "^3.3.4",
+        "@vue/shared": "^3.3.4",
+        "magic-string": "^0.30.3",
+        "unplugin": "^1.4.0"
+      },
+      "engines": {
+        "node": ">=16.14.0"
+      },
+      "peerDependencies": {
+        "vue": "^2.7.0 || ^3.2.25"
+      }
+    },
+    "node_modules/@vue/compiler-core": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz",
+      "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==",
+      "dependencies": {
+        "@babel/parser": "^7.21.3",
+        "@vue/shared": "3.3.4",
+        "estree-walker": "^2.0.2",
+        "source-map-js": "^1.0.2"
+      }
+    },
+    "node_modules/@vue/compiler-dom": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz",
+      "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==",
+      "dependencies": {
+        "@vue/compiler-core": "3.3.4",
+        "@vue/shared": "3.3.4"
+      }
+    },
+    "node_modules/@vue/compiler-sfc": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz",
+      "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==",
+      "dependencies": {
+        "@babel/parser": "^7.20.15",
+        "@vue/compiler-core": "3.3.4",
+        "@vue/compiler-dom": "3.3.4",
+        "@vue/compiler-ssr": "3.3.4",
+        "@vue/reactivity-transform": "3.3.4",
+        "@vue/shared": "3.3.4",
+        "estree-walker": "^2.0.2",
+        "magic-string": "^0.30.0",
+        "postcss": "^8.1.10",
+        "source-map-js": "^1.0.2"
+      }
+    },
+    "node_modules/@vue/compiler-ssr": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz",
+      "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==",
+      "dependencies": {
+        "@vue/compiler-dom": "3.3.4",
+        "@vue/shared": "3.3.4"
+      }
+    },
+    "node_modules/@vue/devtools-api": {
+      "version": "6.5.1",
+      "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz",
+      "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA=="
+    },
+    "node_modules/@vue/reactivity": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz",
+      "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==",
+      "dependencies": {
+        "@vue/shared": "3.3.4"
+      }
+    },
+    "node_modules/@vue/reactivity-transform": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz",
+      "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==",
+      "dependencies": {
+        "@babel/parser": "^7.20.15",
+        "@vue/compiler-core": "3.3.4",
+        "@vue/shared": "3.3.4",
+        "estree-walker": "^2.0.2",
+        "magic-string": "^0.30.0"
+      }
+    },
+    "node_modules/@vue/runtime-core": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz",
+      "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==",
+      "dependencies": {
+        "@vue/reactivity": "3.3.4",
+        "@vue/shared": "3.3.4"
+      }
+    },
+    "node_modules/@vue/runtime-dom": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz",
+      "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==",
+      "dependencies": {
+        "@vue/runtime-core": "3.3.4",
+        "@vue/shared": "3.3.4",
+        "csstype": "^3.1.1"
+      }
+    },
+    "node_modules/@vue/server-renderer": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz",
+      "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==",
+      "dependencies": {
+        "@vue/compiler-ssr": "3.3.4",
+        "@vue/shared": "3.3.4"
+      },
+      "peerDependencies": {
+        "vue": "3.3.4"
+      }
+    },
+    "node_modules/@vue/shared": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz",
+      "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ=="
+    },
+    "node_modules/@vueuse/core": {
+      "version": "9.13.0",
+      "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz",
+      "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==",
+      "dependencies": {
+        "@types/web-bluetooth": "^0.0.16",
+        "@vueuse/metadata": "9.13.0",
+        "@vueuse/shared": "9.13.0",
+        "vue-demi": "*"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/antfu"
+      }
+    },
+    "node_modules/@vueuse/core/node_modules/vue-demi": {
+      "version": "0.14.6",
+      "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
+      "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
+      "hasInstallScript": true,
+      "bin": {
+        "vue-demi-fix": "bin/vue-demi-fix.js",
+        "vue-demi-switch": "bin/vue-demi-switch.js"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/antfu"
+      },
+      "peerDependencies": {
+        "@vue/composition-api": "^1.0.0-rc.1",
+        "vue": "^3.0.0-0 || ^2.6.0"
+      },
+      "peerDependenciesMeta": {
+        "@vue/composition-api": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@vueuse/metadata": {
+      "version": "9.13.0",
+      "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz",
+      "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==",
+      "funding": {
+        "url": "https://github.com/sponsors/antfu"
+      }
+    },
+    "node_modules/@vueuse/shared": {
+      "version": "9.13.0",
+      "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz",
+      "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==",
+      "dependencies": {
+        "vue-demi": "*"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/antfu"
+      }
+    },
+    "node_modules/@vueuse/shared/node_modules/vue-demi": {
+      "version": "0.14.6",
+      "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
+      "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
+      "hasInstallScript": true,
+      "bin": {
+        "vue-demi-fix": "bin/vue-demi-fix.js",
+        "vue-demi-switch": "bin/vue-demi-switch.js"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/antfu"
+      },
+      "peerDependencies": {
+        "@vue/composition-api": "^1.0.0-rc.1",
+        "vue": "^3.0.0-0 || ^2.6.0"
+      },
+      "peerDependenciesMeta": {
+        "@vue/composition-api": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/acorn": {
+      "version": "8.12.0",
+      "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.12.0.tgz",
+      "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
+      "bin": {
+        "acorn": "bin/acorn"
+      },
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
+    "node_modules/adler-32": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
+      "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
+    "node_modules/ansi-regex": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/ansi-styles": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+      "dependencies": {
+        "color-convert": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/anymatch": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz",
+      "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+      "dependencies": {
+        "normalize-path": "^3.0.0",
+        "picomatch": "^2.0.4"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/ast-kit": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-0.11.2.tgz",
+      "integrity": "sha512-Q0DjXK4ApbVoIf9GLyCo252tUH44iTnD/hiJ2TQaJeydYWSpKk0sI34+WMel8S9Wt5pbLgG02oJ+gkgX5DV3sQ==",
+      "dependencies": {
+        "@babel/parser": "^7.22.14",
+        "@rollup/pluginutils": "^5.0.4",
+        "pathe": "^1.1.1"
+      },
+      "engines": {
+        "node": ">=16.14.0"
+      }
+    },
+    "node_modules/async-validator": {
+      "version": "4.2.5",
+      "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz",
+      "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
+    },
+    "node_modules/asynckit": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+      "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+    },
+    "node_modules/axios": {
+      "version": "1.6.8",
+      "resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.8.tgz",
+      "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==",
+      "dependencies": {
+        "follow-redirects": "^1.15.6",
+        "form-data": "^4.0.0",
+        "proxy-from-env": "^1.1.0"
+      }
+    },
+    "node_modules/babel-polyfill": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmmirror.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
+      "integrity": "sha512-F2rZGQnAdaHWQ8YAoeRbukc7HS9QgdgeyJ0rQDd485v9opwuPvjpPFcOOT/WmkKTdgy9ESgSPXDcTNpzrGr6iQ==",
+      "dev": true,
+      "dependencies": {
+        "babel-runtime": "^6.26.0",
+        "core-js": "^2.5.0",
+        "regenerator-runtime": "^0.10.5"
+      }
+    },
+    "node_modules/babel-runtime": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz",
+      "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
+      "dev": true,
+      "dependencies": {
+        "core-js": "^2.4.0",
+        "regenerator-runtime": "^0.11.0"
+      }
+    },
+    "node_modules/babel-runtime/node_modules/regenerator-runtime": {
+      "version": "0.11.1",
+      "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+      "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+      "dev": true
+    },
+    "node_modules/balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+      "dev": true
+    },
+    "node_modules/binary-extensions": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz",
+      "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/brace-expansion": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
+      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+      "dev": true,
+      "dependencies": {
+        "balanced-match": "^1.0.0"
+      }
+    },
+    "node_modules/braces": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+      "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+      "dependencies": {
+        "fill-range": "^7.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/camelcase": {
+      "version": "5.3.1",
+      "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz",
+      "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/cfb": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
+      "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
+      "dependencies": {
+        "adler-32": "~1.3.0",
+        "crc-32": "~1.2.0"
+      },
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
+    "node_modules/chart.js": {
+      "version": "4.4.3",
+      "resolved": "https://registry.npmmirror.com/chart.js/-/chart.js-4.4.3.tgz",
+      "integrity": "sha512-qK1gkGSRYcJzqrrzdR6a+I0vQ4/R+SoODXyAjscQ/4mzuNzySaMCd+hyVxitSY1+L2fjPD1Gbn+ibNqRmwQeLw==",
+      "dependencies": {
+        "@kurkle/color": "^0.3.0"
+      },
+      "engines": {
+        "pnpm": ">=8"
+      }
+    },
+    "node_modules/chokidar": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz",
+      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+      "dependencies": {
+        "anymatch": "~3.1.2",
+        "braces": "~3.0.2",
+        "glob-parent": "~5.1.2",
+        "is-binary-path": "~2.1.0",
+        "is-glob": "~4.0.1",
+        "normalize-path": "~3.0.0",
+        "readdirp": "~3.6.0"
+      },
+      "engines": {
+        "node": ">= 8.10.0"
+      },
+      "funding": {
+        "url": "https://paulmillr.com/funding/"
+      },
+      "optionalDependencies": {
+        "fsevents": "~2.3.2"
+      }
+    },
+    "node_modules/cliui": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmmirror.com/cliui/-/cliui-6.0.0.tgz",
+      "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+      "dependencies": {
+        "string-width": "^4.2.0",
+        "strip-ansi": "^6.0.0",
+        "wrap-ansi": "^6.2.0"
+      }
+    },
+    "node_modules/codepage": {
+      "version": "1.15.0",
+      "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz",
+      "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
+    "node_modules/color-convert": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+      "dependencies": {
+        "color-name": "~1.1.4"
+      },
+      "engines": {
+        "node": ">=7.0.0"
+      }
+    },
+    "node_modules/color-name": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+    },
+    "node_modules/combined-stream": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+      "dependencies": {
+        "delayed-stream": "~1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/confbox": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz",
+      "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==",
+      "dev": true
+    },
+    "node_modules/core-js": {
+      "version": "2.6.12",
+      "resolved": "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz",
+      "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
+      "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.",
+      "dev": true,
+      "hasInstallScript": true
+    },
+    "node_modules/crc-32": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz",
+      "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
+      "bin": {
+        "crc32": "bin/crc32.njs"
+      },
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
+    "node_modules/csstype": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
+      "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+    },
+    "node_modules/dayjs": {
+      "version": "1.11.13",
+      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz",
+      "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
+    },
+    "node_modules/debug": {
+      "version": "4.3.4",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz",
+      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+      "dev": true,
+      "dependencies": {
+        "ms": "2.1.2"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/decamelize": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz",
+      "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/delayed-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+      "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
+    "node_modules/dijkstrajs": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmmirror.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz",
+      "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA=="
+    },
+    "node_modules/dom-zindex": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/dom-zindex/-/dom-zindex-1.0.1.tgz",
+      "integrity": "sha512-M/MERVDZ8hguvjl6MAlLWSLYLS7PzEyXaTb5gEeJ+SF+e9iUC0sdvlzqe91MMDHBoy+nqw7wKcUOrDSyvMCrRg=="
+    },
+    "node_modules/echarts": {
+      "version": "5.5.1",
+      "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.5.1.tgz",
+      "integrity": "sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA==",
+      "dependencies": {
+        "tslib": "2.3.0",
+        "zrender": "5.6.0"
+      }
+    },
+    "node_modules/element-plus": {
+      "version": "2.9.9",
+      "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.9.9.tgz",
+      "integrity": "sha512-gN553+xr7ETkhJhH26YG0fERmd2BSCcQKslbtR8fats0Mc0yCtZOXr00bmoPOt5xGzhuRN1TWc9+f1pCaiA0/Q==",
+      "dependencies": {
+        "@ctrl/tinycolor": "^3.4.1",
+        "@element-plus/icons-vue": "^2.3.1",
+        "@floating-ui/dom": "^1.0.1",
+        "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
+        "@types/lodash": "^4.14.182",
+        "@types/lodash-es": "^4.17.6",
+        "@vueuse/core": "^9.1.0",
+        "async-validator": "^4.2.5",
+        "dayjs": "^1.11.13",
+        "escape-html": "^1.0.3",
+        "lodash": "^4.17.21",
+        "lodash-es": "^4.17.21",
+        "lodash-unified": "^1.0.2",
+        "memoize-one": "^6.0.0",
+        "normalize-wheel-es": "^1.2.0"
+      },
+      "peerDependencies": {
+        "vue": "^3.2.0"
+      }
+    },
+    "node_modules/emoji-regex": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+    },
+    "node_modules/esbuild": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
+      "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
+      "dev": true,
+      "hasInstallScript": true,
+      "bin": {
+        "esbuild": "bin/esbuild"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "optionalDependencies": {
+        "@esbuild/android-arm": "0.18.20",
+        "@esbuild/android-arm64": "0.18.20",
+        "@esbuild/android-x64": "0.18.20",
+        "@esbuild/darwin-arm64": "0.18.20",
+        "@esbuild/darwin-x64": "0.18.20",
+        "@esbuild/freebsd-arm64": "0.18.20",
+        "@esbuild/freebsd-x64": "0.18.20",
+        "@esbuild/linux-arm": "0.18.20",
+        "@esbuild/linux-arm64": "0.18.20",
+        "@esbuild/linux-ia32": "0.18.20",
+        "@esbuild/linux-loong64": "0.18.20",
+        "@esbuild/linux-mips64el": "0.18.20",
+        "@esbuild/linux-ppc64": "0.18.20",
+        "@esbuild/linux-riscv64": "0.18.20",
+        "@esbuild/linux-s390x": "0.18.20",
+        "@esbuild/linux-x64": "0.18.20",
+        "@esbuild/netbsd-x64": "0.18.20",
+        "@esbuild/openbsd-x64": "0.18.20",
+        "@esbuild/sunos-x64": "0.18.20",
+        "@esbuild/win32-arm64": "0.18.20",
+        "@esbuild/win32-ia32": "0.18.20",
+        "@esbuild/win32-x64": "0.18.20"
+      }
+    },
+    "node_modules/escape-html": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+      "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+    },
+    "node_modules/escape-string-regexp": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+      "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+      "dev": true,
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/estree-walker": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+      "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+    },
+    "node_modules/eventemitter3": {
+      "version": "4.0.7",
+      "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz",
+      "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
+      "dev": true
+    },
+    "node_modules/fast-glob": {
+      "version": "3.3.2",
+      "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz",
+      "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+      "dev": true,
+      "dependencies": {
+        "@nodelib/fs.stat": "^2.0.2",
+        "@nodelib/fs.walk": "^1.2.3",
+        "glob-parent": "^5.1.2",
+        "merge2": "^1.3.0",
+        "micromatch": "^4.0.4"
+      },
+      "engines": {
+        "node": ">=8.6.0"
+      }
+    },
+    "node_modules/fastq": {
+      "version": "1.17.1",
+      "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz",
+      "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+      "dev": true,
+      "dependencies": {
+        "reusify": "^1.0.4"
+      }
+    },
+    "node_modules/fill-range": {
+      "version": "7.0.1",
+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+      "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+      "dependencies": {
+        "to-regex-range": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/find-up": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz",
+      "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+      "dependencies": {
+        "locate-path": "^5.0.0",
+        "path-exists": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/follow-redirects": {
+      "version": "1.15.6",
+      "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz",
+      "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
+      "engines": {
+        "node": ">=4.0"
+      },
+      "peerDependenciesMeta": {
+        "debug": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/form-data": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+      "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+      "dependencies": {
+        "asynckit": "^0.4.0",
+        "combined-stream": "^1.0.8",
+        "mime-types": "^2.1.12"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/frac": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
+      "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
+    "node_modules/get-caller-file": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz",
+      "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+      "engines": {
+        "node": "6.* || 8.* || >= 10.*"
+      }
+    },
+    "node_modules/glob-parent": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+      "dependencies": {
+        "is-glob": "^4.0.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/http-proxy": {
+      "version": "1.18.1",
+      "resolved": "https://registry.npmmirror.com/http-proxy/-/http-proxy-1.18.1.tgz",
+      "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
+      "dev": true,
+      "dependencies": {
+        "eventemitter3": "^4.0.0",
+        "follow-redirects": "^1.0.0",
+        "requires-port": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=8.0.0"
+      }
+    },
+    "node_modules/http-proxy-middleware": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-3.0.0.tgz",
+      "integrity": "sha512-36AV1fIaI2cWRzHo+rbcxhe3M3jUDCNzc4D5zRl57sEWRAxdXYtw7FSQKYY6PDKssiAKjLYypbssHk+xs/kMXw==",
+      "dev": true,
+      "dependencies": {
+        "@types/http-proxy": "^1.17.10",
+        "debug": "^4.3.4",
+        "http-proxy": "^1.18.1",
+        "is-glob": "^4.0.1",
+        "is-plain-obj": "^3.0.0",
+        "micromatch": "^4.0.5"
+      },
+      "engines": {
+        "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+      }
+    },
+    "node_modules/is-binary-path": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz",
+      "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+      "dependencies": {
+        "binary-extensions": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/is-extglob": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+      "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-fullwidth-code-point": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/is-glob": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+      "dependencies": {
+        "is-extglob": "^2.1.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-number": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+      "engines": {
+        "node": ">=0.12.0"
+      }
+    },
+    "node_modules/is-plain-obj": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
+      "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/js-tokens": {
+      "version": "9.0.0",
+      "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz",
+      "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==",
+      "dev": true
+    },
+    "node_modules/local-pkg": {
+      "version": "0.4.3",
+      "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
+      "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==",
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/antfu"
+      }
+    },
+    "node_modules/locate-path": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
+      "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+      "dependencies": {
+        "p-locate": "^4.1.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/lodash": {
+      "version": "4.17.21",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+    },
+    "node_modules/lodash-es": {
+      "version": "4.17.21",
+      "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+      "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
+    },
+    "node_modules/lodash-unified": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz",
+      "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==",
+      "peerDependencies": {
+        "@types/lodash-es": "*",
+        "lodash": "*",
+        "lodash-es": "*"
+      }
+    },
+    "node_modules/magic-string": {
+      "version": "0.30.10",
+      "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz",
+      "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
+      "dependencies": {
+        "@jridgewell/sourcemap-codec": "^1.4.15"
+      }
+    },
+    "node_modules/magic-string-ast": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-0.3.0.tgz",
+      "integrity": "sha512-0shqecEPgdFpnI3AP90epXyxZy9g6CRZ+SZ7BcqFwYmtFEnZ1jpevcV5HoyVnlDS9gCnc1UIg3Rsvp3Ci7r8OA==",
+      "dependencies": {
+        "magic-string": "^0.30.2"
+      },
+      "engines": {
+        "node": ">=16.14.0"
+      }
+    },
+    "node_modules/memoize-one": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz",
+      "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
+    },
+    "node_modules/merge2": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz",
+      "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+      "dev": true,
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/micromatch": {
+      "version": "4.0.5",
+      "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz",
+      "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+      "dev": true,
+      "dependencies": {
+        "braces": "^3.0.2",
+        "picomatch": "^2.3.1"
+      },
+      "engines": {
+        "node": ">=8.6"
+      }
+    },
+    "node_modules/mime-db": {
+      "version": "1.52.0",
+      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+      "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/mime-types": {
+      "version": "2.1.35",
+      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+      "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+      "dependencies": {
+        "mime-db": "1.52.0"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/minimatch": {
+      "version": "9.0.4",
+      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.4.tgz",
+      "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+      "dev": true,
+      "dependencies": {
+        "brace-expansion": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/mlly": {
+      "version": "1.7.1",
+      "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.1.tgz",
+      "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==",
+      "dev": true,
+      "dependencies": {
+        "acorn": "^8.11.3",
+        "pathe": "^1.1.2",
+        "pkg-types": "^1.1.1",
+        "ufo": "^1.5.3"
+      }
+    },
+    "node_modules/moment": {
+      "version": "2.30.1",
+      "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+      "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/ms": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
+      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+      "dev": true
+    },
+    "node_modules/nanoid": {
+      "version": "3.3.6",
+      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
+      "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/ai"
+        }
+      ],
+      "bin": {
+        "nanoid": "bin/nanoid.cjs"
+      },
+      "engines": {
+        "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+      }
+    },
+    "node_modules/normalize-path": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz",
+      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/normalize-wheel-es": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz",
+      "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
+    },
+    "node_modules/northglass-mes": {
+      "resolved": "",
+      "link": true
+    },
+    "node_modules/p-limit": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz",
+      "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+      "dependencies": {
+        "p-try": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/p-locate": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz",
+      "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+      "dependencies": {
+        "p-limit": "^2.2.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/p-try": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz",
+      "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/path-exists": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz",
+      "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/pathe": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz",
+      "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ=="
+    },
+    "node_modules/picocolors": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+      "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+    },
+    "node_modules/picomatch": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+      "engines": {
+        "node": ">=8.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/jonschlinkert"
+      }
+    },
+    "node_modules/pinia": {
+      "version": "2.1.7",
+      "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.1.7.tgz",
+      "integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==",
+      "dependencies": {
+        "@vue/devtools-api": "^6.5.0",
+        "vue-demi": ">=0.14.5"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/posva"
+      },
+      "peerDependencies": {
+        "@vue/composition-api": "^1.4.0",
+        "typescript": ">=4.4.4",
+        "vue": "^2.6.14 || ^3.3.0"
+      },
+      "peerDependenciesMeta": {
+        "@vue/composition-api": {
+          "optional": true
+        },
+        "typescript": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/pinia-plugin-persistedstate": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmmirror.com/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.2.0.tgz",
+      "integrity": "sha512-tZbNGf2vjAQcIm7alK40sE51Qu/m9oWr+rEgNm/2AWr1huFxj72CjvpQcIQzMknDBJEkQznCLAGtJTIcLKrKdw==",
+      "peerDependencies": {
+        "pinia": "^2.0.0"
+      }
+    },
+    "node_modules/pinia/node_modules/vue-demi": {
+      "version": "0.14.6",
+      "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
+      "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
+      "hasInstallScript": true,
+      "bin": {
+        "vue-demi-fix": "bin/vue-demi-fix.js",
+        "vue-demi-switch": "bin/vue-demi-switch.js"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/antfu"
+      },
+      "peerDependencies": {
+        "@vue/composition-api": "^1.0.0-rc.1",
+        "vue": "^3.0.0-0 || ^2.6.0"
+      },
+      "peerDependenciesMeta": {
+        "@vue/composition-api": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/pkg-types": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.1.1.tgz",
+      "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==",
+      "dev": true,
+      "dependencies": {
+        "confbox": "^0.1.7",
+        "mlly": "^1.7.0",
+        "pathe": "^1.1.2"
+      }
+    },
+    "node_modules/pngjs": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-5.0.0.tgz",
+      "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==",
+      "engines": {
+        "node": ">=10.13.0"
+      }
+    },
+    "node_modules/postcss": {
+      "version": "8.4.31",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
+      "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+      "funding": [
+        {
+          "type": "opencollective",
+          "url": "https://opencollective.com/postcss/"
+        },
+        {
+          "type": "tidelift",
+          "url": "https://tidelift.com/funding/github/npm/postcss"
+        },
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/ai"
+        }
+      ],
+      "dependencies": {
+        "nanoid": "^3.3.6",
+        "picocolors": "^1.0.0",
+        "source-map-js": "^1.0.2"
+      },
+      "engines": {
+        "node": "^10 || ^12 || >=14"
+      }
+    },
+    "node_modules/prettier": {
+      "version": "2.8.8",
+      "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz",
+      "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
+      "optional": true,
+      "bin": {
+        "prettier": "bin-prettier.js"
+      },
+      "engines": {
+        "node": ">=10.13.0"
+      },
+      "funding": {
+        "url": "https://github.com/prettier/prettier?sponsor=1"
+      }
+    },
+    "node_modules/proxy-from-env": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+      "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+    },
+    "node_modules/qrcode": {
+      "version": "1.5.4",
+      "resolved": "https://registry.npmmirror.com/qrcode/-/qrcode-1.5.4.tgz",
+      "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==",
+      "dependencies": {
+        "dijkstrajs": "^1.0.1",
+        "pngjs": "^5.0.0",
+        "yargs": "^15.3.1"
+      },
+      "bin": {
+        "qrcode": "bin/qrcode"
+      },
+      "engines": {
+        "node": ">=10.13.0"
+      }
+    },
+    "node_modules/queue-microtask": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz",
+      "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ]
+    },
+    "node_modules/readdirp": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
+      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+      "dependencies": {
+        "picomatch": "^2.2.1"
+      },
+      "engines": {
+        "node": ">=8.10.0"
+      }
+    },
+    "node_modules/regenerator-runtime": {
+      "version": "0.10.5",
+      "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
+      "integrity": "sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==",
+      "dev": true
+    },
+    "node_modules/require-directory": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz",
+      "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/require-main-filename": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-2.0.0.tgz",
+      "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+    },
+    "node_modules/requires-port": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz",
+      "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
+      "dev": true
+    },
+    "node_modules/resize-detector": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmmirror.com/resize-detector/-/resize-detector-0.3.0.tgz",
+      "integrity": "sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ=="
+    },
+    "node_modules/reusify": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz",
+      "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+      "dev": true,
+      "engines": {
+        "iojs": ">=1.0.0",
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/rollup": {
+      "version": "3.29.4",
+      "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
+      "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
+      "devOptional": true,
+      "bin": {
+        "rollup": "dist/bin/rollup"
+      },
+      "engines": {
+        "node": ">=14.18.0",
+        "npm": ">=8.0.0"
+      },
+      "optionalDependencies": {
+        "fsevents": "~2.3.2"
+      }
+    },
+    "node_modules/run-parallel": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
+      "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "dependencies": {
+        "queue-microtask": "^1.2.2"
+      }
+    },
+    "node_modules/scule": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz",
+      "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==",
+      "dev": true
+    },
+    "node_modules/set-blocking": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz",
+      "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
+    },
+    "node_modules/sortablejs": {
+      "version": "1.15.1",
+      "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.1.tgz",
+      "integrity": "sha512-P5Cjvb0UG1ZVNiDPj/n4V+DinttXG6K8n7vM/HQf0C25K3YKQTQY6fsr/sEGsJGpQ9exmPxluHxKBc0mLKU1lQ=="
+    },
+    "node_modules/source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/source-map-js": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
+      "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/ssf": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",
+      "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
+      "dependencies": {
+        "frac": "~1.1.2"
+      },
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
+    "node_modules/string-width": {
+      "version": "4.2.3",
+      "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+      "dependencies": {
+        "emoji-regex": "^8.0.0",
+        "is-fullwidth-code-point": "^3.0.0",
+        "strip-ansi": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/strip-ansi": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+      "dependencies": {
+        "ansi-regex": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/strip-literal": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz",
+      "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==",
+      "dev": true,
+      "dependencies": {
+        "js-tokens": "^9.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/antfu"
+      }
+    },
+    "node_modules/sweetalert2": {
+      "version": "11.10.7",
+      "resolved": "https://registry.npmmirror.com/sweetalert2/-/sweetalert2-11.10.7.tgz",
+      "integrity": "sha512-5Jlzrmaitay6KzU+2+LhYu9q+L4v/dZ8oZyEDH14ep0C/QilCnFLHmqAyD/Lhq/lm5DiwsOs6Tr58iv8k3wyGg=="
+    },
+    "node_modules/to-fast-properties": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+      "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/to-regex-range": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+      "dependencies": {
+        "is-number": "^7.0.0"
+      },
+      "engines": {
+        "node": ">=8.0"
+      }
+    },
+    "node_modules/tslib": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
+      "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
+    },
+    "node_modules/ufo": {
+      "version": "1.5.3",
+      "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.3.tgz",
+      "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==",
+      "dev": true
+    },
+    "node_modules/undici-types": {
+      "version": "5.26.5",
+      "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz",
+      "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+      "dev": true
+    },
+    "node_modules/unimport": {
+      "version": "3.7.2",
+      "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.7.2.tgz",
+      "integrity": "sha512-91mxcZTadgXyj3lFWmrGT8GyoRHWuE5fqPOjg5RVtF6vj+OfM5G6WCzXjuYtSgELE5ggB34RY4oiCSEP8I3AHw==",
+      "dev": true,
+      "dependencies": {
+        "@rollup/pluginutils": "^5.1.0",
+        "acorn": "^8.11.3",
+        "escape-string-regexp": "^5.0.0",
+        "estree-walker": "^3.0.3",
+        "fast-glob": "^3.3.2",
+        "local-pkg": "^0.5.0",
+        "magic-string": "^0.30.10",
+        "mlly": "^1.7.0",
+        "pathe": "^1.1.2",
+        "pkg-types": "^1.1.1",
+        "scule": "^1.3.0",
+        "strip-literal": "^2.1.0",
+        "unplugin": "^1.10.1"
+      }
+    },
+    "node_modules/unimport/node_modules/estree-walker": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz",
+      "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+      "dev": true,
+      "dependencies": {
+        "@types/estree": "^1.0.0"
+      }
+    },
+    "node_modules/unimport/node_modules/local-pkg": {
+      "version": "0.5.0",
+      "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz",
+      "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
+      "dev": true,
+      "dependencies": {
+        "mlly": "^1.4.2",
+        "pkg-types": "^1.0.3"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/antfu"
+      }
+    },
+    "node_modules/unplugin": {
+      "version": "1.10.1",
+      "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.10.1.tgz",
+      "integrity": "sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==",
+      "dependencies": {
+        "acorn": "^8.11.3",
+        "chokidar": "^3.6.0",
+        "webpack-sources": "^3.2.3",
+        "webpack-virtual-modules": "^0.6.1"
+      },
+      "engines": {
+        "node": ">=14.0.0"
+      }
+    },
+    "node_modules/unplugin-auto-import": {
+      "version": "0.17.6",
+      "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.17.6.tgz",
+      "integrity": "sha512-dmX0Pex5DzMzVuALkexboOZvh51fL/BD6aoPO7qHoTYGlQp0GRKsREv2KMF1lzYI9SXKQiRxAjwzbQnrFFNydQ==",
+      "dev": true,
+      "dependencies": {
+        "@antfu/utils": "^0.7.8",
+        "@rollup/pluginutils": "^5.1.0",
+        "fast-glob": "^3.3.2",
+        "local-pkg": "^0.5.0",
+        "magic-string": "^0.30.10",
+        "minimatch": "^9.0.4",
+        "unimport": "^3.7.1",
+        "unplugin": "^1.10.1"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/antfu"
+      },
+      "peerDependencies": {
+        "@nuxt/kit": "^3.2.2",
+        "@vueuse/core": "*"
+      },
+      "peerDependenciesMeta": {
+        "@nuxt/kit": {
+          "optional": true
+        },
+        "@vueuse/core": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/unplugin-auto-import/node_modules/local-pkg": {
+      "version": "0.5.0",
+      "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz",
+      "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
+      "dev": true,
+      "dependencies": {
+        "mlly": "^1.4.2",
+        "pkg-types": "^1.0.3"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/antfu"
+      }
+    },
+    "node_modules/vite": {
+      "version": "4.4.11",
+      "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz",
+      "integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==",
+      "dev": true,
+      "dependencies": {
+        "esbuild": "^0.18.10",
+        "postcss": "^8.4.27",
+        "rollup": "^3.27.1"
+      },
+      "bin": {
+        "vite": "bin/vite.js"
+      },
+      "engines": {
+        "node": "^14.18.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/vitejs/vite?sponsor=1"
+      },
+      "optionalDependencies": {
+        "fsevents": "~2.3.2"
+      },
+      "peerDependencies": {
+        "@types/node": ">= 14",
+        "less": "*",
+        "lightningcss": "^1.21.0",
+        "sass": "*",
+        "stylus": "*",
+        "sugarss": "*",
+        "terser": "^5.4.0"
+      },
+      "peerDependenciesMeta": {
+        "@types/node": {
+          "optional": true
+        },
+        "less": {
+          "optional": true
+        },
+        "lightningcss": {
+          "optional": true
+        },
+        "sass": {
+          "optional": true
+        },
+        "stylus": {
+          "optional": true
+        },
+        "sugarss": {
+          "optional": true
+        },
+        "terser": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/vue": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz",
+      "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==",
+      "dependencies": {
+        "@vue/compiler-dom": "3.3.4",
+        "@vue/compiler-sfc": "3.3.4",
+        "@vue/runtime-dom": "3.3.4",
+        "@vue/server-renderer": "3.3.4",
+        "@vue/shared": "3.3.4"
+      }
+    },
+    "node_modules/vue-draggable-plus": {
+      "version": "0.5.0",
+      "resolved": "https://registry.npmmirror.com/vue-draggable-plus/-/vue-draggable-plus-0.5.0.tgz",
+      "integrity": "sha512-A5TT5+M5JceROSjPO9aDZTsrSN1TetEs419czPlboomarSiGIBIxTp2WD7XH53EHMrbO7Qo+leRiHWV/rMlyjA==",
+      "dependencies": {
+        "@types/sortablejs": "^1.15.8"
+      },
+      "peerDependencies": {
+        "@types/sortablejs": "^1.15.0"
+      },
+      "peerDependenciesMeta": {
+        "@vue/composition-api": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/vue-echarts": {
+      "version": "6.7.3",
+      "resolved": "https://registry.npmmirror.com/vue-echarts/-/vue-echarts-6.7.3.tgz",
+      "integrity": "sha512-vXLKpALFjbPphW9IfQPOVfb1KjGZ/f8qa/FZHi9lZIWzAnQC1DgnmEK3pJgEkyo6EP7UnX6Bv/V3Ke7p+qCNXA==",
+      "hasInstallScript": true,
+      "dependencies": {
+        "resize-detector": "^0.3.0",
+        "vue-demi": "^0.13.11"
+      },
+      "peerDependencies": {
+        "@vue/composition-api": "^1.0.5",
+        "@vue/runtime-core": "^3.0.0",
+        "echarts": "^5.4.1",
+        "vue": "^2.6.12 || ^3.1.1"
+      },
+      "peerDependenciesMeta": {
+        "@vue/composition-api": {
+          "optional": true
+        },
+        "@vue/runtime-core": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/vue-echarts/node_modules/vue-demi": {
+      "version": "0.13.11",
+      "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz",
+      "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
+      "hasInstallScript": true,
+      "bin": {
+        "vue-demi-fix": "bin/vue-demi-fix.js",
+        "vue-demi-switch": "bin/vue-demi-switch.js"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/antfu"
+      },
+      "peerDependencies": {
+        "@vue/composition-api": "^1.0.0-rc.1",
+        "vue": "^3.0.0-0 || ^2.6.0"
+      },
+      "peerDependenciesMeta": {
+        "@vue/composition-api": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/vue-i18n": {
+      "version": "11.0.0-rc.1",
+      "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-11.0.0-rc.1.tgz",
+      "integrity": "sha512-qbdCbA537HEdr2yXQ4ec/OMDsoHjod1DwnWbrf+l4Cu/O7CYTCKsOyITUm3RmrCJgRnoVycuR6i/JWdNTJvD5g==",
+      "dependencies": {
+        "@intlify/core-base": "11.0.0-rc.1",
+        "@intlify/shared": "11.0.0-rc.1",
+        "@vue/devtools-api": "^6.5.0"
+      },
+      "engines": {
+        "node": ">= 16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/kazupon"
+      },
+      "peerDependencies": {
+        "vue": "^3.0.0"
+      }
+    },
+    "node_modules/vue-print-nb": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmmirror.com/vue-print-nb/-/vue-print-nb-1.7.5.tgz",
+      "integrity": "sha512-iNbNyUVRWz0Ha1UTiCKxMPtHLUDGgNI8e8xmD3xqm9RlXIUeX9bT7DgNAfY8vPzqyFRHqGjxLI1rycKH366ziQ==",
+      "dependencies": {
+        "vue": "^2.6.11"
+      }
+    },
+    "node_modules/vue-print-nb/node_modules/@vue/compiler-sfc": {
+      "version": "2.7.16",
+      "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz",
+      "integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==",
+      "dependencies": {
+        "@babel/parser": "^7.23.5",
+        "postcss": "^8.4.14",
+        "source-map": "^0.6.1"
+      },
+      "optionalDependencies": {
+        "prettier": "^1.18.2 || ^2.0.0"
+      }
+    },
+    "node_modules/vue-print-nb/node_modules/vue": {
+      "version": "2.7.16",
+      "resolved": "https://registry.npmmirror.com/vue/-/vue-2.7.16.tgz",
+      "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==",
+      "deprecated": "Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.",
+      "dependencies": {
+        "@vue/compiler-sfc": "2.7.16",
+        "csstype": "^3.1.0"
+      }
+    },
+    "node_modules/vue-router": {
+      "version": "4.0.13",
+      "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.0.13.tgz",
+      "integrity": "sha512-LmXrC+BkDRLak+d5xTMgUYraT3Nj0H/vCbP+7usGvIl9Viqd1UP6AsP0i69pSbn9O0dXK/xCdp4yPw21HqV9Jw==",
+      "dependencies": {
+        "@vue/devtools-api": "^6.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/posva"
+      },
+      "peerDependencies": {
+        "vue": "^3.2.0"
+      }
+    },
+    "node_modules/vue3-print-nb": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmmirror.com/vue3-print-nb/-/vue3-print-nb-0.1.4.tgz",
+      "integrity": "sha512-LExI7viEzplR6ZKQ2b+V4U0cwGYbVD4fut/XHvk3UPGlT5CcvIGs6VlwGp107aKgk6P8Pgx4rco3Rehv2lti3A==",
+      "dependencies": {
+        "vue": "^3.0.5"
+      }
+    },
+    "node_modules/vxe-table": {
+      "version": "4.5.15",
+      "resolved": "https://registry.npmjs.org/vxe-table/-/vxe-table-4.5.15.tgz",
+      "integrity": "sha512-1QuM27wjTZConQX55u2YbyIA69u9/ny83x1cqyrmkoK622GKrY324wuOO/nsjfnbxXV5C+IDzL/MfdrvKQbznQ==",
+      "dependencies": {
+        "dom-zindex": "^1.0.1",
+        "xe-utils": "^3.5.14"
+      },
+      "peerDependencies": {
+        "vue": "^3.2.28",
+        "xe-utils": "^3.5.0"
+      }
+    },
+    "node_modules/webpack-sources": {
+      "version": "3.2.3",
+      "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
+      "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
+      "engines": {
+        "node": ">=10.13.0"
+      }
+    },
+    "node_modules/webpack-virtual-modules": {
+      "version": "0.6.2",
+      "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz",
+      "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ=="
+    },
+    "node_modules/which-module": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/which-module/-/which-module-2.0.1.tgz",
+      "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
+    },
+    "node_modules/wmf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
+      "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
+    "node_modules/word": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz",
+      "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
+    "node_modules/wrap-ansi": {
+      "version": "6.2.0",
+      "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+      "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+      "dependencies": {
+        "ansi-styles": "^4.0.0",
+        "string-width": "^4.1.0",
+        "strip-ansi": "^6.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/xe-utils": {
+      "version": "3.5.14",
+      "resolved": "https://registry.npmjs.org/xe-utils/-/xe-utils-3.5.14.tgz",
+      "integrity": "sha512-Xq6mS8dWwHBQsQUEBXcZYSaBV0KnNLoVWd0vRRDI3nKpbNxfs/LSCK0W21g1edLFnXYfKqg7hh5dakr3RtYY0A=="
+    },
+    "node_modules/xlsx": {
+      "version": "0.18.5",
+      "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz",
+      "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
+      "dependencies": {
+        "adler-32": "~1.3.0",
+        "cfb": "~1.2.1",
+        "codepage": "~1.15.0",
+        "crc-32": "~1.2.1",
+        "ssf": "~0.11.2",
+        "wmf": "~1.0.1",
+        "word": "~0.3.0"
+      },
+      "bin": {
+        "xlsx": "bin/xlsx.njs"
+      },
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
+    "node_modules/y18n": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz",
+      "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+    },
+    "node_modules/yargs": {
+      "version": "15.4.1",
+      "resolved": "https://registry.npmmirror.com/yargs/-/yargs-15.4.1.tgz",
+      "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+      "dependencies": {
+        "cliui": "^6.0.0",
+        "decamelize": "^1.2.0",
+        "find-up": "^4.1.0",
+        "get-caller-file": "^2.0.1",
+        "require-directory": "^2.1.1",
+        "require-main-filename": "^2.0.0",
+        "set-blocking": "^2.0.0",
+        "string-width": "^4.2.0",
+        "which-module": "^2.0.0",
+        "y18n": "^4.0.0",
+        "yargs-parser": "^18.1.2"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/yargs-parser": {
+      "version": "18.1.3",
+      "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-18.1.3.tgz",
+      "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+      "dependencies": {
+        "camelcase": "^5.0.0",
+        "decamelize": "^1.2.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/zrender": {
+      "version": "5.6.0",
+      "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.6.0.tgz",
+      "integrity": "sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg==",
+      "dependencies": {
+        "tslib": "2.3.0"
+      }
+    }
+  },
+  "dependencies": {
+    "@antfu/utils": {
+      "version": "0.7.8",
+      "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.8.tgz",
+      "integrity": "sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==",
+      "dev": true
+    },
+    "@babel/helper-string-parser": {
+      "version": "7.24.8",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
+      "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ=="
+    },
+    "@babel/helper-validator-identifier": {
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
+      "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w=="
+    },
+    "@babel/parser": {
+      "version": "7.25.3",
+      "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.25.3.tgz",
+      "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==",
+      "requires": {
+        "@babel/types": "^7.25.2"
+      }
+    },
+    "@babel/types": {
+      "version": "7.25.2",
+      "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.25.2.tgz",
+      "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==",
+      "requires": {
+        "@babel/helper-string-parser": "^7.24.8",
+        "@babel/helper-validator-identifier": "^7.24.7",
+        "to-fast-properties": "^2.0.0"
+      }
+    },
+    "@ctrl/tinycolor": {
+      "version": "3.6.1",
+      "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz",
+      "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA=="
+    },
+    "@element-plus/icons-vue": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz",
+      "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==",
+      "requires": {}
+    },
+    "@esbuild/win32-ia32": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
+      "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
+      "dev": true,
+      "optional": true
+    },
+    "@floating-ui/core": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz",
+      "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==",
+      "requires": {
+        "@floating-ui/utils": "^0.1.3"
+      }
+    },
+    "@floating-ui/dom": {
+      "version": "1.5.3",
+      "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz",
+      "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==",
+      "requires": {
+        "@floating-ui/core": "^1.4.2",
+        "@floating-ui/utils": "^0.1.3"
+      }
+    },
+    "@floating-ui/utils": {
+      "version": "0.1.6",
+      "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz",
+      "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A=="
+    },
+    "@intlify/core-base": {
+      "version": "11.0.0-rc.1",
+      "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-11.0.0-rc.1.tgz",
+      "integrity": "sha512-fnfZoa9pb1dKM3L1UkDUGLLrPFQ2BK98x4/fMqwS/fktUor34vQR/itPtfv652ZTplenXXLCEYjUYTGfDZgMTQ==",
+      "requires": {
+        "@intlify/message-compiler": "11.0.0-rc.1",
+        "@intlify/shared": "11.0.0-rc.1"
+      }
+    },
+    "@intlify/message-compiler": {
+      "version": "11.0.0-rc.1",
+      "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-11.0.0-rc.1.tgz",
+      "integrity": "sha512-TGw2uBfuTFTegZf/BHtUQBEKxl7Q/dVGLoqRIdw8lFsp9g/53sYn5iD+0HxIzdYjbWL6BTJMXCPUHp9PxDTRPw==",
+      "requires": {
+        "@intlify/shared": "11.0.0-rc.1",
+        "source-map-js": "^1.0.2"
+      }
+    },
+    "@intlify/shared": {
+      "version": "11.0.0-rc.1",
+      "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-11.0.0-rc.1.tgz",
+      "integrity": "sha512-8tR1xe7ZEbkabTuE/tNhzpolygUn9OaYp9yuYAF4MgDNZg06C3Qny80bes2/e9/Wm3aVkPUlCw6WgU7mQd0yEg=="
+    },
+    "@jridgewell/sourcemap-codec": {
+      "version": "1.4.15",
+      "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+      "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+    },
+    "@kurkle/color": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npmmirror.com/@kurkle/color/-/color-0.3.2.tgz",
+      "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw=="
+    },
+    "@nodelib/fs.scandir": {
+      "version": "2.1.5",
+      "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+      "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+      "dev": true,
+      "requires": {
+        "@nodelib/fs.stat": "2.0.5",
+        "run-parallel": "^1.1.9"
+      }
+    },
+    "@nodelib/fs.stat": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+      "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+      "dev": true
+    },
+    "@nodelib/fs.walk": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+      "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+      "dev": true,
+      "requires": {
+        "@nodelib/fs.scandir": "2.1.5",
+        "fastq": "^1.6.0"
+      }
+    },
+    "@popperjs/core": {
+      "version": "npm:@sxzz/popperjs-es@2.11.7",
+      "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
+      "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
+    },
+    "@rollup/pluginutils": {
+      "version": "5.1.0",
+      "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
+      "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==",
+      "requires": {
+        "@types/estree": "^1.0.0",
+        "estree-walker": "^2.0.2",
+        "picomatch": "^2.3.1"
+      }
+    },
+    "@types/estree": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.2.tgz",
+      "integrity": "sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA=="
+    },
+    "@types/http-proxy": {
+      "version": "1.17.14",
+      "resolved": "https://registry.npmmirror.com/@types/http-proxy/-/http-proxy-1.17.14.tgz",
+      "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==",
+      "dev": true,
+      "requires": {
+        "@types/node": "*"
+      }
+    },
+    "@types/lodash": {
+      "version": "4.14.199",
+      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz",
+      "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg=="
+    },
+    "@types/lodash-es": {
+      "version": "4.17.9",
+      "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.9.tgz",
+      "integrity": "sha512-ZTcmhiI3NNU7dEvWLZJkzG6ao49zOIjEgIE0RgV7wbPxU0f2xT3VSAHw2gmst8swH6V0YkLRGp4qPlX/6I90MQ==",
+      "requires": {
+        "@types/lodash": "*"
+      }
+    },
+    "@types/node": {
+      "version": "20.12.5",
+      "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.12.5.tgz",
+      "integrity": "sha512-BD+BjQ9LS/D8ST9p5uqBxghlN+S42iuNxjsUGjeZobe/ciXzk2qb1B6IXc6AnRLS+yFJRpN2IPEHMzwspfDJNw==",
+      "dev": true,
+      "requires": {
+        "undici-types": "~5.26.4"
+      }
+    },
+    "@types/sortablejs": {
+      "version": "1.15.8",
+      "resolved": "https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.8.tgz",
+      "integrity": "sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg=="
+    },
+    "@types/web-bluetooth": {
+      "version": "0.0.16",
+      "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
+      "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
+    },
+    "@vitejs/plugin-vue": {
+      "version": "4.6.2",
+      "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz",
+      "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==",
+      "dev": true,
+      "requires": {}
+    },
+    "@vue-macros/common": {
+      "version": "1.8.0",
+      "resolved": "https://registry.npmjs.org/@vue-macros/common/-/common-1.8.0.tgz",
+      "integrity": "sha512-auDJJzE0z3uRe3867e0DsqcseKImktNf5ojCZgUKqiVxb2yTlwlgOVAYCgoep9oITqxkXQymSvFeKhedi8PhaA==",
+      "requires": {
+        "@babel/types": "^7.22.17",
+        "@rollup/pluginutils": "^5.0.4",
+        "@vue/compiler-sfc": "^3.3.4",
+        "ast-kit": "^0.11.2",
+        "local-pkg": "^0.4.3",
+        "magic-string-ast": "^0.3.0"
+      }
+    },
+    "@vue-macros/reactivity-transform": {
+      "version": "0.3.23",
+      "resolved": "https://registry.npmjs.org/@vue-macros/reactivity-transform/-/reactivity-transform-0.3.23.tgz",
+      "integrity": "sha512-SubIg1GsNpQdIDJusrcA2FWBgwSY+4jmL0j6SJ6PU85r3rlS+uDhn6AUkqxeZRAdmJnrbGHXDyWUdygOZmWrSg==",
+      "requires": {
+        "@babel/parser": "^7.22.16",
+        "@vue-macros/common": "1.8.0",
+        "@vue/compiler-core": "^3.3.4",
+        "@vue/shared": "^3.3.4",
+        "magic-string": "^0.30.3",
+        "unplugin": "^1.4.0"
+      }
+    },
+    "@vue/compiler-core": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz",
+      "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==",
+      "requires": {
+        "@babel/parser": "^7.21.3",
+        "@vue/shared": "3.3.4",
+        "estree-walker": "^2.0.2",
+        "source-map-js": "^1.0.2"
+      }
+    },
+    "@vue/compiler-dom": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz",
+      "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==",
+      "requires": {
+        "@vue/compiler-core": "3.3.4",
+        "@vue/shared": "3.3.4"
+      }
+    },
+    "@vue/compiler-sfc": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz",
+      "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==",
+      "requires": {
+        "@babel/parser": "^7.20.15",
+        "@vue/compiler-core": "3.3.4",
+        "@vue/compiler-dom": "3.3.4",
+        "@vue/compiler-ssr": "3.3.4",
+        "@vue/reactivity-transform": "3.3.4",
+        "@vue/shared": "3.3.4",
+        "estree-walker": "^2.0.2",
+        "magic-string": "^0.30.0",
+        "postcss": "^8.1.10",
+        "source-map-js": "^1.0.2"
+      }
+    },
+    "@vue/compiler-ssr": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz",
+      "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==",
+      "requires": {
+        "@vue/compiler-dom": "3.3.4",
+        "@vue/shared": "3.3.4"
+      }
+    },
+    "@vue/devtools-api": {
+      "version": "6.5.1",
+      "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz",
+      "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA=="
+    },
+    "@vue/reactivity": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz",
+      "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==",
+      "requires": {
+        "@vue/shared": "3.3.4"
+      }
+    },
+    "@vue/reactivity-transform": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz",
+      "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==",
+      "requires": {
+        "@babel/parser": "^7.20.15",
+        "@vue/compiler-core": "3.3.4",
+        "@vue/shared": "3.3.4",
+        "estree-walker": "^2.0.2",
+        "magic-string": "^0.30.0"
+      }
+    },
+    "@vue/runtime-core": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz",
+      "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==",
+      "requires": {
+        "@vue/reactivity": "3.3.4",
+        "@vue/shared": "3.3.4"
+      }
+    },
+    "@vue/runtime-dom": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz",
+      "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==",
+      "requires": {
+        "@vue/runtime-core": "3.3.4",
+        "@vue/shared": "3.3.4",
+        "csstype": "^3.1.1"
+      }
+    },
+    "@vue/server-renderer": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz",
+      "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==",
+      "requires": {
+        "@vue/compiler-ssr": "3.3.4",
+        "@vue/shared": "3.3.4"
+      }
+    },
+    "@vue/shared": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz",
+      "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ=="
+    },
+    "@vueuse/core": {
+      "version": "9.13.0",
+      "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz",
+      "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==",
+      "requires": {
+        "@types/web-bluetooth": "^0.0.16",
+        "@vueuse/metadata": "9.13.0",
+        "@vueuse/shared": "9.13.0",
+        "vue-demi": "*"
+      },
+      "dependencies": {
+        "vue-demi": {
+          "version": "0.14.6",
+          "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
+          "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
+          "requires": {}
+        }
+      }
+    },
+    "@vueuse/metadata": {
+      "version": "9.13.0",
+      "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz",
+      "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ=="
+    },
+    "@vueuse/shared": {
+      "version": "9.13.0",
+      "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz",
+      "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==",
+      "requires": {
+        "vue-demi": "*"
+      },
+      "dependencies": {
+        "vue-demi": {
+          "version": "0.14.6",
+          "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
+          "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
+          "requires": {}
+        }
+      }
+    },
+    "acorn": {
+      "version": "8.12.0",
+      "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.12.0.tgz",
+      "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw=="
+    },
+    "adler-32": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
+      "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A=="
+    },
+    "ansi-regex": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+    },
+    "ansi-styles": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+      "requires": {
+        "color-convert": "^2.0.1"
+      }
+    },
+    "anymatch": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz",
+      "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+      "requires": {
+        "normalize-path": "^3.0.0",
+        "picomatch": "^2.0.4"
+      }
+    },
+    "ast-kit": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-0.11.2.tgz",
+      "integrity": "sha512-Q0DjXK4ApbVoIf9GLyCo252tUH44iTnD/hiJ2TQaJeydYWSpKk0sI34+WMel8S9Wt5pbLgG02oJ+gkgX5DV3sQ==",
+      "requires": {
+        "@babel/parser": "^7.22.14",
+        "@rollup/pluginutils": "^5.0.4",
+        "pathe": "^1.1.1"
+      }
+    },
+    "async-validator": {
+      "version": "4.2.5",
+      "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz",
+      "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
+    },
+    "asynckit": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+      "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+    },
+    "axios": {
+      "version": "1.6.8",
+      "resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.8.tgz",
+      "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==",
+      "requires": {
+        "follow-redirects": "^1.15.6",
+        "form-data": "^4.0.0",
+        "proxy-from-env": "^1.1.0"
+      }
+    },
+    "babel-polyfill": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmmirror.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
+      "integrity": "sha512-F2rZGQnAdaHWQ8YAoeRbukc7HS9QgdgeyJ0rQDd485v9opwuPvjpPFcOOT/WmkKTdgy9ESgSPXDcTNpzrGr6iQ==",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.26.0",
+        "core-js": "^2.5.0",
+        "regenerator-runtime": "^0.10.5"
+      }
+    },
+    "babel-runtime": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz",
+      "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
+      "dev": true,
+      "requires": {
+        "core-js": "^2.4.0",
+        "regenerator-runtime": "^0.11.0"
+      },
+      "dependencies": {
+        "regenerator-runtime": {
+          "version": "0.11.1",
+          "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+          "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+          "dev": true
+        }
+      }
+    },
+    "balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+      "dev": true
+    },
+    "binary-extensions": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz",
+      "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="
+    },
+    "brace-expansion": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
+      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+      "dev": true,
+      "requires": {
+        "balanced-match": "^1.0.0"
+      }
+    },
+    "braces": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+      "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+      "requires": {
+        "fill-range": "^7.0.1"
+      }
+    },
+    "camelcase": {
+      "version": "5.3.1",
+      "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz",
+      "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+    },
+    "cfb": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
+      "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
+      "requires": {
+        "adler-32": "~1.3.0",
+        "crc-32": "~1.2.0"
+      }
+    },
+    "chart.js": {
+      "version": "4.4.3",
+      "resolved": "https://registry.npmmirror.com/chart.js/-/chart.js-4.4.3.tgz",
+      "integrity": "sha512-qK1gkGSRYcJzqrrzdR6a+I0vQ4/R+SoODXyAjscQ/4mzuNzySaMCd+hyVxitSY1+L2fjPD1Gbn+ibNqRmwQeLw==",
+      "requires": {
+        "@kurkle/color": "^0.3.0"
+      }
+    },
+    "chokidar": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz",
+      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+      "requires": {
+        "anymatch": "~3.1.2",
+        "braces": "~3.0.2",
+        "fsevents": "~2.3.2",
+        "glob-parent": "~5.1.2",
+        "is-binary-path": "~2.1.0",
+        "is-glob": "~4.0.1",
+        "normalize-path": "~3.0.0",
+        "readdirp": "~3.6.0"
+      }
+    },
+    "cliui": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmmirror.com/cliui/-/cliui-6.0.0.tgz",
+      "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+      "requires": {
+        "string-width": "^4.2.0",
+        "strip-ansi": "^6.0.0",
+        "wrap-ansi": "^6.2.0"
+      }
+    },
+    "codepage": {
+      "version": "1.15.0",
+      "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz",
+      "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="
+    },
+    "color-convert": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+      "requires": {
+        "color-name": "~1.1.4"
+      }
+    },
+    "color-name": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+    },
+    "combined-stream": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+      "requires": {
+        "delayed-stream": "~1.0.0"
+      }
+    },
+    "confbox": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz",
+      "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==",
+      "dev": true
+    },
+    "core-js": {
+      "version": "2.6.12",
+      "resolved": "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz",
+      "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
+      "dev": true
+    },
+    "crc-32": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz",
+      "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="
+    },
+    "csstype": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
+      "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+    },
+    "dayjs": {
+      "version": "1.11.13",
+      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz",
+      "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
+    },
+    "debug": {
+      "version": "4.3.4",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz",
+      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+      "dev": true,
+      "requires": {
+        "ms": "2.1.2"
+      }
+    },
+    "decamelize": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz",
+      "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="
+    },
+    "delayed-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+      "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
+    },
+    "dijkstrajs": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmmirror.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz",
+      "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA=="
+    },
+    "dom-zindex": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/dom-zindex/-/dom-zindex-1.0.1.tgz",
+      "integrity": "sha512-M/MERVDZ8hguvjl6MAlLWSLYLS7PzEyXaTb5gEeJ+SF+e9iUC0sdvlzqe91MMDHBoy+nqw7wKcUOrDSyvMCrRg=="
+    },
+    "echarts": {
+      "version": "5.5.1",
+      "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.5.1.tgz",
+      "integrity": "sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA==",
+      "requires": {
+        "tslib": "2.3.0",
+        "zrender": "5.6.0"
+      }
+    },
+    "element-plus": {
+      "version": "2.9.9",
+      "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.9.9.tgz",
+      "integrity": "sha512-gN553+xr7ETkhJhH26YG0fERmd2BSCcQKslbtR8fats0Mc0yCtZOXr00bmoPOt5xGzhuRN1TWc9+f1pCaiA0/Q==",
+      "requires": {
+        "@ctrl/tinycolor": "^3.4.1",
+        "@element-plus/icons-vue": "^2.3.1",
+        "@floating-ui/dom": "^1.0.1",
+        "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
+        "@types/lodash": "^4.14.182",
+        "@types/lodash-es": "^4.17.6",
+        "@vueuse/core": "^9.1.0",
+        "async-validator": "^4.2.5",
+        "dayjs": "^1.11.13",
+        "escape-html": "^1.0.3",
+        "lodash": "^4.17.21",
+        "lodash-es": "^4.17.21",
+        "lodash-unified": "^1.0.2",
+        "memoize-one": "^6.0.0",
+        "normalize-wheel-es": "^1.2.0"
+      }
+    },
+    "emoji-regex": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+    },
+    "esbuild": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
+      "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
+      "dev": true,
+      "requires": {
+        "@esbuild/android-arm": "0.18.20",
+        "@esbuild/android-arm64": "0.18.20",
+        "@esbuild/android-x64": "0.18.20",
+        "@esbuild/darwin-arm64": "0.18.20",
+        "@esbuild/darwin-x64": "0.18.20",
+        "@esbuild/freebsd-arm64": "0.18.20",
+        "@esbuild/freebsd-x64": "0.18.20",
+        "@esbuild/linux-arm": "0.18.20",
+        "@esbuild/linux-arm64": "0.18.20",
+        "@esbuild/linux-ia32": "0.18.20",
+        "@esbuild/linux-loong64": "0.18.20",
+        "@esbuild/linux-mips64el": "0.18.20",
+        "@esbuild/linux-ppc64": "0.18.20",
+        "@esbuild/linux-riscv64": "0.18.20",
+        "@esbuild/linux-s390x": "0.18.20",
+        "@esbuild/linux-x64": "0.18.20",
+        "@esbuild/netbsd-x64": "0.18.20",
+        "@esbuild/openbsd-x64": "0.18.20",
+        "@esbuild/sunos-x64": "0.18.20",
+        "@esbuild/win32-arm64": "0.18.20",
+        "@esbuild/win32-ia32": "0.18.20",
+        "@esbuild/win32-x64": "0.18.20"
+      }
+    },
+    "escape-html": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+      "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+    },
+    "escape-string-regexp": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+      "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+      "dev": true
+    },
+    "estree-walker": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+      "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+    },
+    "eventemitter3": {
+      "version": "4.0.7",
+      "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz",
+      "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
+      "dev": true
+    },
+    "fast-glob": {
+      "version": "3.3.2",
+      "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz",
+      "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+      "dev": true,
+      "requires": {
+        "@nodelib/fs.stat": "^2.0.2",
+        "@nodelib/fs.walk": "^1.2.3",
+        "glob-parent": "^5.1.2",
+        "merge2": "^1.3.0",
+        "micromatch": "^4.0.4"
+      }
+    },
+    "fastq": {
+      "version": "1.17.1",
+      "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz",
+      "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+      "dev": true,
+      "requires": {
+        "reusify": "^1.0.4"
+      }
+    },
+    "fill-range": {
+      "version": "7.0.1",
+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+      "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+      "requires": {
+        "to-regex-range": "^5.0.1"
+      }
+    },
+    "find-up": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz",
+      "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+      "requires": {
+        "locate-path": "^5.0.0",
+        "path-exists": "^4.0.0"
+      }
+    },
+    "follow-redirects": {
+      "version": "1.15.6",
+      "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz",
+      "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
+    },
+    "form-data": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+      "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+      "requires": {
+        "asynckit": "^0.4.0",
+        "combined-stream": "^1.0.8",
+        "mime-types": "^2.1.12"
+      }
+    },
+    "frac": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
+      "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
+    },
+    "get-caller-file": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz",
+      "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
+    },
+    "glob-parent": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+      "requires": {
+        "is-glob": "^4.0.1"
+      }
+    },
+    "http-proxy": {
+      "version": "1.18.1",
+      "resolved": "https://registry.npmmirror.com/http-proxy/-/http-proxy-1.18.1.tgz",
+      "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
+      "dev": true,
+      "requires": {
+        "eventemitter3": "^4.0.0",
+        "follow-redirects": "^1.0.0",
+        "requires-port": "^1.0.0"
+      }
+    },
+    "http-proxy-middleware": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-3.0.0.tgz",
+      "integrity": "sha512-36AV1fIaI2cWRzHo+rbcxhe3M3jUDCNzc4D5zRl57sEWRAxdXYtw7FSQKYY6PDKssiAKjLYypbssHk+xs/kMXw==",
+      "dev": true,
+      "requires": {
+        "@types/http-proxy": "^1.17.10",
+        "debug": "^4.3.4",
+        "http-proxy": "^1.18.1",
+        "is-glob": "^4.0.1",
+        "is-plain-obj": "^3.0.0",
+        "micromatch": "^4.0.5"
+      }
+    },
+    "is-binary-path": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz",
+      "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+      "requires": {
+        "binary-extensions": "^2.0.0"
+      }
+    },
+    "is-extglob": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+      "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
+    },
+    "is-fullwidth-code-point": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+    },
+    "is-glob": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+      "requires": {
+        "is-extglob": "^2.1.1"
+      }
+    },
+    "is-number": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+    },
+    "is-plain-obj": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
+      "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
+      "dev": true
+    },
+    "js-tokens": {
+      "version": "9.0.0",
+      "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz",
+      "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==",
+      "dev": true
+    },
+    "local-pkg": {
+      "version": "0.4.3",
+      "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
+      "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g=="
+    },
+    "locate-path": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
+      "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+      "requires": {
+        "p-locate": "^4.1.0"
+      }
+    },
+    "lodash": {
+      "version": "4.17.21",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+    },
+    "lodash-es": {
+      "version": "4.17.21",
+      "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+      "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
+    },
+    "lodash-unified": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz",
+      "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==",
+      "requires": {}
+    },
+    "magic-string": {
+      "version": "0.30.10",
+      "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz",
+      "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
+      "requires": {
+        "@jridgewell/sourcemap-codec": "^1.4.15"
+      }
+    },
+    "magic-string-ast": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-0.3.0.tgz",
+      "integrity": "sha512-0shqecEPgdFpnI3AP90epXyxZy9g6CRZ+SZ7BcqFwYmtFEnZ1jpevcV5HoyVnlDS9gCnc1UIg3Rsvp3Ci7r8OA==",
+      "requires": {
+        "magic-string": "^0.30.2"
+      }
+    },
+    "memoize-one": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz",
+      "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
+    },
+    "merge2": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz",
+      "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+      "dev": true
+    },
+    "micromatch": {
+      "version": "4.0.5",
+      "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz",
+      "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+      "dev": true,
+      "requires": {
+        "braces": "^3.0.2",
+        "picomatch": "^2.3.1"
+      }
+    },
+    "mime-db": {
+      "version": "1.52.0",
+      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+      "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+    },
+    "mime-types": {
+      "version": "2.1.35",
+      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+      "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+      "requires": {
+        "mime-db": "1.52.0"
+      }
+    },
+    "minimatch": {
+      "version": "9.0.4",
+      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.4.tgz",
+      "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+      "dev": true,
+      "requires": {
+        "brace-expansion": "^2.0.1"
+      }
+    },
+    "mlly": {
+      "version": "1.7.1",
+      "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.1.tgz",
+      "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==",
+      "dev": true,
+      "requires": {
+        "acorn": "^8.11.3",
+        "pathe": "^1.1.2",
+        "pkg-types": "^1.1.1",
+        "ufo": "^1.5.3"
+      }
+    },
+    "moment": {
+      "version": "2.30.1",
+      "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+      "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="
+    },
+    "ms": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
+      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+      "dev": true
+    },
+    "nanoid": {
+      "version": "3.3.6",
+      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
+      "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="
+    },
+    "normalize-path": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz",
+      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+    },
+    "normalize-wheel-es": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz",
+      "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
+    },
+    "northglass-mes": {
+      "version": "file:",
+      "requires": {
+        "@element-plus/icons-vue": "^2.3.1",
+        "@types/sortablejs": "^1.15.7",
+        "@vitejs/plugin-vue": "^4.6.2",
+        "@vue-macros/reactivity-transform": "^0.3.23",
+        "axios": "^1.6.8",
+        "babel-polyfill": "^6.26.0",
+        "chart.js": "^4.4.3",
+        "dayjs": "^1.11.13",
+        "echarts": "^5.5.1",
+        "element-plus": "^2.9.9",
+        "http-proxy-middleware": "^3.0.0",
+        "moment": "^2.30.1",
+        "northglass-mes": "file:",
+        "pinia": "^2.1.6",
+        "pinia-plugin-persistedstate": "^3.2.0",
+        "qrcode": "^1.5.4",
+        "sortablejs": "^1.15.1",
+        "sweetalert2": "^11.10.7",
+        "unplugin-auto-import": "^0.17.6",
+        "vite": "^4.4.9",
+        "vue": "^3.3.4",
+        "vue-draggable-plus": "^0.5.0",
+        "vue-echarts": "^6.7.3",
+        "vue-i18n": "^11.0.0-rc.1",
+        "vue-print-nb": "^1.7.5",
+        "vue-router": "^4.0.13",
+        "vue3-print-nb": "^0.1.4",
+        "vxe-table": "^4.5.15",
+        "xe-utils": "^3.5.14",
+        "xlsx": "^0.18.5"
+      },
+      "dependencies": {
+        "@antfu/utils": {
+          "version": "0.7.8",
+          "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.8.tgz",
+          "integrity": "sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==",
+          "dev": true
+        },
+        "@babel/helper-string-parser": {
+          "version": "7.24.8",
+          "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
+          "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ=="
+        },
+        "@babel/helper-validator-identifier": {
+          "version": "7.24.7",
+          "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
+          "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w=="
+        },
+        "@babel/parser": {
+          "version": "7.25.3",
+          "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.25.3.tgz",
+          "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==",
+          "requires": {
+            "@babel/types": "^7.25.2"
+          }
+        },
+        "@babel/types": {
+          "version": "7.25.2",
+          "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.25.2.tgz",
+          "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==",
+          "requires": {
+            "@babel/helper-string-parser": "^7.24.8",
+            "@babel/helper-validator-identifier": "^7.24.7",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "@ctrl/tinycolor": {
+          "version": "3.6.1",
+          "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz",
+          "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA=="
+        },
+        "@element-plus/icons-vue": {
+          "version": "2.3.1",
+          "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz",
+          "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==",
+          "requires": {}
+        },
+        "@esbuild/win32-ia32": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
+          "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
+          "dev": true,
+          "optional": true
+        },
+        "@floating-ui/core": {
+          "version": "1.5.0",
+          "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz",
+          "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==",
+          "requires": {
+            "@floating-ui/utils": "^0.1.3"
+          }
+        },
+        "@floating-ui/dom": {
+          "version": "1.5.3",
+          "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz",
+          "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==",
+          "requires": {
+            "@floating-ui/core": "^1.4.2",
+            "@floating-ui/utils": "^0.1.3"
+          }
+        },
+        "@floating-ui/utils": {
+          "version": "0.1.6",
+          "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz",
+          "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A=="
+        },
+        "@intlify/core-base": {
+          "version": "11.0.0-rc.1",
+          "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-11.0.0-rc.1.tgz",
+          "integrity": "sha512-fnfZoa9pb1dKM3L1UkDUGLLrPFQ2BK98x4/fMqwS/fktUor34vQR/itPtfv652ZTplenXXLCEYjUYTGfDZgMTQ==",
+          "requires": {
+            "@intlify/message-compiler": "11.0.0-rc.1",
+            "@intlify/shared": "11.0.0-rc.1"
+          }
+        },
+        "@intlify/message-compiler": {
+          "version": "11.0.0-rc.1",
+          "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-11.0.0-rc.1.tgz",
+          "integrity": "sha512-TGw2uBfuTFTegZf/BHtUQBEKxl7Q/dVGLoqRIdw8lFsp9g/53sYn5iD+0HxIzdYjbWL6BTJMXCPUHp9PxDTRPw==",
+          "requires": {
+            "@intlify/shared": "11.0.0-rc.1",
+            "source-map-js": "^1.0.2"
+          }
+        },
+        "@intlify/shared": {
+          "version": "11.0.0-rc.1",
+          "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-11.0.0-rc.1.tgz",
+          "integrity": "sha512-8tR1xe7ZEbkabTuE/tNhzpolygUn9OaYp9yuYAF4MgDNZg06C3Qny80bes2/e9/Wm3aVkPUlCw6WgU7mQd0yEg=="
+        },
+        "@jridgewell/sourcemap-codec": {
+          "version": "1.4.15",
+          "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+          "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+        },
+        "@kurkle/color": {
+          "version": "0.3.2",
+          "resolved": "https://registry.npmmirror.com/@kurkle/color/-/color-0.3.2.tgz",
+          "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw=="
+        },
+        "@nodelib/fs.scandir": {
+          "version": "2.1.5",
+          "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+          "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+          "dev": true,
+          "requires": {
+            "@nodelib/fs.stat": "2.0.5",
+            "run-parallel": "^1.1.9"
+          }
+        },
+        "@nodelib/fs.stat": {
+          "version": "2.0.5",
+          "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+          "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+          "dev": true
+        },
+        "@nodelib/fs.walk": {
+          "version": "1.2.8",
+          "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+          "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+          "dev": true,
+          "requires": {
+            "@nodelib/fs.scandir": "2.1.5",
+            "fastq": "^1.6.0"
+          }
+        },
+        "@popperjs/core": {
+          "version": "npm:@sxzz/popperjs-es@2.11.7",
+          "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
+          "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
+        },
+        "@rollup/pluginutils": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
+          "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==",
+          "requires": {
+            "@types/estree": "^1.0.0",
+            "estree-walker": "^2.0.2",
+            "picomatch": "^2.3.1"
+          }
+        },
+        "@types/estree": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.2.tgz",
+          "integrity": "sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA=="
+        },
+        "@types/http-proxy": {
+          "version": "1.17.14",
+          "resolved": "https://registry.npmmirror.com/@types/http-proxy/-/http-proxy-1.17.14.tgz",
+          "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==",
+          "dev": true,
+          "requires": {
+            "@types/node": "*"
+          }
+        },
+        "@types/lodash": {
+          "version": "4.14.199",
+          "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz",
+          "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg=="
+        },
+        "@types/lodash-es": {
+          "version": "4.17.9",
+          "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.9.tgz",
+          "integrity": "sha512-ZTcmhiI3NNU7dEvWLZJkzG6ao49zOIjEgIE0RgV7wbPxU0f2xT3VSAHw2gmst8swH6V0YkLRGp4qPlX/6I90MQ==",
+          "requires": {
+            "@types/lodash": "*"
+          }
+        },
+        "@types/node": {
+          "version": "20.12.5",
+          "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.12.5.tgz",
+          "integrity": "sha512-BD+BjQ9LS/D8ST9p5uqBxghlN+S42iuNxjsUGjeZobe/ciXzk2qb1B6IXc6AnRLS+yFJRpN2IPEHMzwspfDJNw==",
+          "dev": true,
+          "requires": {
+            "undici-types": "~5.26.4"
+          }
+        },
+        "@types/sortablejs": {
+          "version": "1.15.8",
+          "resolved": "https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.8.tgz",
+          "integrity": "sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg=="
+        },
+        "@types/web-bluetooth": {
+          "version": "0.0.16",
+          "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
+          "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
+        },
+        "@vitejs/plugin-vue": {
+          "version": "4.6.2",
+          "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz",
+          "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==",
+          "dev": true,
+          "requires": {}
+        },
+        "@vue-macros/common": {
+          "version": "1.8.0",
+          "resolved": "https://registry.npmjs.org/@vue-macros/common/-/common-1.8.0.tgz",
+          "integrity": "sha512-auDJJzE0z3uRe3867e0DsqcseKImktNf5ojCZgUKqiVxb2yTlwlgOVAYCgoep9oITqxkXQymSvFeKhedi8PhaA==",
+          "requires": {
+            "@babel/types": "^7.22.17",
+            "@rollup/pluginutils": "^5.0.4",
+            "@vue/compiler-sfc": "^3.3.4",
+            "ast-kit": "^0.11.2",
+            "local-pkg": "^0.4.3",
+            "magic-string-ast": "^0.3.0"
+          }
+        },
+        "@vue-macros/reactivity-transform": {
+          "version": "0.3.23",
+          "resolved": "https://registry.npmjs.org/@vue-macros/reactivity-transform/-/reactivity-transform-0.3.23.tgz",
+          "integrity": "sha512-SubIg1GsNpQdIDJusrcA2FWBgwSY+4jmL0j6SJ6PU85r3rlS+uDhn6AUkqxeZRAdmJnrbGHXDyWUdygOZmWrSg==",
+          "requires": {
+            "@babel/parser": "^7.22.16",
+            "@vue-macros/common": "1.8.0",
+            "@vue/compiler-core": "^3.3.4",
+            "@vue/shared": "^3.3.4",
+            "magic-string": "^0.30.3",
+            "unplugin": "^1.4.0"
+          }
+        },
+        "@vue/compiler-core": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz",
+          "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==",
+          "requires": {
+            "@babel/parser": "^7.21.3",
+            "@vue/shared": "3.3.4",
+            "estree-walker": "^2.0.2",
+            "source-map-js": "^1.0.2"
+          }
+        },
+        "@vue/compiler-dom": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz",
+          "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==",
+          "requires": {
+            "@vue/compiler-core": "3.3.4",
+            "@vue/shared": "3.3.4"
+          }
+        },
+        "@vue/compiler-sfc": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz",
+          "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==",
+          "requires": {
+            "@babel/parser": "^7.20.15",
+            "@vue/compiler-core": "3.3.4",
+            "@vue/compiler-dom": "3.3.4",
+            "@vue/compiler-ssr": "3.3.4",
+            "@vue/reactivity-transform": "3.3.4",
+            "@vue/shared": "3.3.4",
+            "estree-walker": "^2.0.2",
+            "magic-string": "^0.30.0",
+            "postcss": "^8.1.10",
+            "source-map-js": "^1.0.2"
+          }
+        },
+        "@vue/compiler-ssr": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz",
+          "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==",
+          "requires": {
+            "@vue/compiler-dom": "3.3.4",
+            "@vue/shared": "3.3.4"
+          }
+        },
+        "@vue/devtools-api": {
+          "version": "6.5.1",
+          "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz",
+          "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA=="
+        },
+        "@vue/reactivity": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz",
+          "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==",
+          "requires": {
+            "@vue/shared": "3.3.4"
+          }
+        },
+        "@vue/reactivity-transform": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz",
+          "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==",
+          "requires": {
+            "@babel/parser": "^7.20.15",
+            "@vue/compiler-core": "3.3.4",
+            "@vue/shared": "3.3.4",
+            "estree-walker": "^2.0.2",
+            "magic-string": "^0.30.0"
+          }
+        },
+        "@vue/runtime-core": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz",
+          "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==",
+          "requires": {
+            "@vue/reactivity": "3.3.4",
+            "@vue/shared": "3.3.4"
+          }
+        },
+        "@vue/runtime-dom": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz",
+          "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==",
+          "requires": {
+            "@vue/runtime-core": "3.3.4",
+            "@vue/shared": "3.3.4",
+            "csstype": "^3.1.1"
+          }
+        },
+        "@vue/server-renderer": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz",
+          "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==",
+          "requires": {
+            "@vue/compiler-ssr": "3.3.4",
+            "@vue/shared": "3.3.4"
+          }
+        },
+        "@vue/shared": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz",
+          "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ=="
+        },
+        "@vueuse/core": {
+          "version": "9.13.0",
+          "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz",
+          "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==",
+          "requires": {
+            "@types/web-bluetooth": "^0.0.16",
+            "@vueuse/metadata": "9.13.0",
+            "@vueuse/shared": "9.13.0",
+            "vue-demi": "*"
+          },
+          "dependencies": {
+            "vue-demi": {
+              "version": "0.14.6",
+              "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
+              "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
+              "requires": {}
+            }
+          }
+        },
+        "@vueuse/metadata": {
+          "version": "9.13.0",
+          "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz",
+          "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ=="
+        },
+        "@vueuse/shared": {
+          "version": "9.13.0",
+          "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz",
+          "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==",
+          "requires": {
+            "vue-demi": "*"
+          },
+          "dependencies": {
+            "vue-demi": {
+              "version": "0.14.6",
+              "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
+              "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
+              "requires": {}
+            }
+          }
+        },
+        "acorn": {
+          "version": "8.12.0",
+          "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.12.0.tgz",
+          "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw=="
+        },
+        "adler-32": {
+          "version": "1.3.1",
+          "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
+          "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A=="
+        },
+        "ansi-regex": {
+          "version": "5.0.1",
+          "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+          "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+        },
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "anymatch": {
+          "version": "3.1.3",
+          "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz",
+          "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+          "requires": {
+            "normalize-path": "^3.0.0",
+            "picomatch": "^2.0.4"
+          }
+        },
+        "ast-kit": {
+          "version": "0.11.2",
+          "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-0.11.2.tgz",
+          "integrity": "sha512-Q0DjXK4ApbVoIf9GLyCo252tUH44iTnD/hiJ2TQaJeydYWSpKk0sI34+WMel8S9Wt5pbLgG02oJ+gkgX5DV3sQ==",
+          "requires": {
+            "@babel/parser": "^7.22.14",
+            "@rollup/pluginutils": "^5.0.4",
+            "pathe": "^1.1.1"
+          }
+        },
+        "async-validator": {
+          "version": "4.2.5",
+          "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz",
+          "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
+        },
+        "asynckit": {
+          "version": "0.4.0",
+          "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+          "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+        },
+        "axios": {
+          "version": "1.6.8",
+          "resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.8.tgz",
+          "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==",
+          "requires": {
+            "follow-redirects": "^1.15.6",
+            "form-data": "^4.0.0",
+            "proxy-from-env": "^1.1.0"
+          }
+        },
+        "babel-polyfill": {
+          "version": "6.26.0",
+          "resolved": "https://registry.npmmirror.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
+          "integrity": "sha512-F2rZGQnAdaHWQ8YAoeRbukc7HS9QgdgeyJ0rQDd485v9opwuPvjpPFcOOT/WmkKTdgy9ESgSPXDcTNpzrGr6iQ==",
+          "dev": true,
+          "requires": {
+            "babel-runtime": "^6.26.0",
+            "core-js": "^2.5.0",
+            "regenerator-runtime": "^0.10.5"
+          }
+        },
+        "babel-runtime": {
+          "version": "6.26.0",
+          "resolved": "https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz",
+          "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
+          "dev": true,
+          "requires": {
+            "core-js": "^2.4.0",
+            "regenerator-runtime": "^0.11.0"
+          },
+          "dependencies": {
+            "regenerator-runtime": {
+              "version": "0.11.1",
+              "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+              "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+              "dev": true
+            }
+          }
+        },
+        "balanced-match": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
+          "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+          "dev": true
+        },
+        "binary-extensions": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz",
+          "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="
+        },
+        "brace-expansion": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
+          "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+          "dev": true,
+          "requires": {
+            "balanced-match": "^1.0.0"
+          }
+        },
+        "braces": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+          "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+          "requires": {
+            "fill-range": "^7.0.1"
+          }
+        },
+        "camelcase": {
+          "version": "5.3.1",
+          "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz",
+          "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+        },
+        "cfb": {
+          "version": "1.2.2",
+          "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
+          "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
+          "requires": {
+            "adler-32": "~1.3.0",
+            "crc-32": "~1.2.0"
+          }
+        },
+        "chart.js": {
+          "version": "4.4.3",
+          "resolved": "https://registry.npmmirror.com/chart.js/-/chart.js-4.4.3.tgz",
+          "integrity": "sha512-qK1gkGSRYcJzqrrzdR6a+I0vQ4/R+SoODXyAjscQ/4mzuNzySaMCd+hyVxitSY1+L2fjPD1Gbn+ibNqRmwQeLw==",
+          "requires": {
+            "@kurkle/color": "^0.3.0"
+          }
+        },
+        "chokidar": {
+          "version": "3.6.0",
+          "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz",
+          "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+          "requires": {
+            "anymatch": "~3.1.2",
+            "braces": "~3.0.2",
+            "fsevents": "~2.3.2",
+            "glob-parent": "~5.1.2",
+            "is-binary-path": "~2.1.0",
+            "is-glob": "~4.0.1",
+            "normalize-path": "~3.0.0",
+            "readdirp": "~3.6.0"
+          }
+        },
+        "cliui": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmmirror.com/cliui/-/cliui-6.0.0.tgz",
+          "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+          "requires": {
+            "string-width": "^4.2.0",
+            "strip-ansi": "^6.0.0",
+            "wrap-ansi": "^6.2.0"
+          }
+        },
+        "codepage": {
+          "version": "1.15.0",
+          "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz",
+          "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+        },
+        "combined-stream": {
+          "version": "1.0.8",
+          "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+          "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+          "requires": {
+            "delayed-stream": "~1.0.0"
+          }
+        },
+        "confbox": {
+          "version": "0.1.7",
+          "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz",
+          "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==",
+          "dev": true
+        },
+        "core-js": {
+          "version": "2.6.12",
+          "resolved": "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz",
+          "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
+          "dev": true
+        },
+        "crc-32": {
+          "version": "1.2.2",
+          "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz",
+          "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="
+        },
+        "csstype": {
+          "version": "3.1.2",
+          "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
+          "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+        },
+        "dayjs": {
+          "version": "1.11.13",
+          "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz",
+          "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
+        },
+        "debug": {
+          "version": "4.3.4",
+          "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz",
+          "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+          "dev": true,
+          "requires": {
+            "ms": "2.1.2"
+          }
+        },
+        "decamelize": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz",
+          "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="
+        },
+        "delayed-stream": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+          "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
+        },
+        "dijkstrajs": {
+          "version": "1.0.3",
+          "resolved": "https://registry.npmmirror.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz",
+          "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA=="
+        },
+        "dom-zindex": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/dom-zindex/-/dom-zindex-1.0.1.tgz",
+          "integrity": "sha512-M/MERVDZ8hguvjl6MAlLWSLYLS7PzEyXaTb5gEeJ+SF+e9iUC0sdvlzqe91MMDHBoy+nqw7wKcUOrDSyvMCrRg=="
+        },
+        "echarts": {
+          "version": "5.5.1",
+          "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.5.1.tgz",
+          "integrity": "sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA==",
+          "requires": {
+            "tslib": "2.3.0",
+            "zrender": "5.6.0"
+          }
+        },
+        "element-plus": {
+          "version": "2.9.9",
+          "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.9.9.tgz",
+          "integrity": "sha512-gN553+xr7ETkhJhH26YG0fERmd2BSCcQKslbtR8fats0Mc0yCtZOXr00bmoPOt5xGzhuRN1TWc9+f1pCaiA0/Q==",
+          "requires": {
+            "@ctrl/tinycolor": "^3.4.1",
+            "@element-plus/icons-vue": "^2.3.1",
+            "@floating-ui/dom": "^1.0.1",
+            "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
+            "@types/lodash": "^4.14.182",
+            "@types/lodash-es": "^4.17.6",
+            "@vueuse/core": "^9.1.0",
+            "async-validator": "^4.2.5",
+            "dayjs": "^1.11.13",
+            "escape-html": "^1.0.3",
+            "lodash": "^4.17.21",
+            "lodash-es": "^4.17.21",
+            "lodash-unified": "^1.0.2",
+            "memoize-one": "^6.0.0",
+            "normalize-wheel-es": "^1.2.0"
+          }
+        },
+        "emoji-regex": {
+          "version": "8.0.0",
+          "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+          "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+        },
+        "esbuild": {
+          "version": "0.18.20",
+          "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
+          "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
+          "dev": true,
+          "requires": {
+            "@esbuild/android-arm": "0.18.20",
+            "@esbuild/android-arm64": "0.18.20",
+            "@esbuild/android-x64": "0.18.20",
+            "@esbuild/darwin-arm64": "0.18.20",
+            "@esbuild/darwin-x64": "0.18.20",
+            "@esbuild/freebsd-arm64": "0.18.20",
+            "@esbuild/freebsd-x64": "0.18.20",
+            "@esbuild/linux-arm": "0.18.20",
+            "@esbuild/linux-arm64": "0.18.20",
+            "@esbuild/linux-ia32": "0.18.20",
+            "@esbuild/linux-loong64": "0.18.20",
+            "@esbuild/linux-mips64el": "0.18.20",
+            "@esbuild/linux-ppc64": "0.18.20",
+            "@esbuild/linux-riscv64": "0.18.20",
+            "@esbuild/linux-s390x": "0.18.20",
+            "@esbuild/linux-x64": "0.18.20",
+            "@esbuild/netbsd-x64": "0.18.20",
+            "@esbuild/openbsd-x64": "0.18.20",
+            "@esbuild/sunos-x64": "0.18.20",
+            "@esbuild/win32-arm64": "0.18.20",
+            "@esbuild/win32-ia32": "0.18.20",
+            "@esbuild/win32-x64": "0.18.20"
+          }
+        },
+        "escape-html": {
+          "version": "1.0.3",
+          "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+          "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+        },
+        "escape-string-regexp": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+          "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+          "dev": true
+        },
+        "estree-walker": {
+          "version": "2.0.2",
+          "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+          "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+        },
+        "eventemitter3": {
+          "version": "4.0.7",
+          "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz",
+          "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
+          "dev": true
+        },
+        "fast-glob": {
+          "version": "3.3.2",
+          "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz",
+          "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+          "dev": true,
+          "requires": {
+            "@nodelib/fs.stat": "^2.0.2",
+            "@nodelib/fs.walk": "^1.2.3",
+            "glob-parent": "^5.1.2",
+            "merge2": "^1.3.0",
+            "micromatch": "^4.0.4"
+          }
+        },
+        "fastq": {
+          "version": "1.17.1",
+          "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz",
+          "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+          "dev": true,
+          "requires": {
+            "reusify": "^1.0.4"
+          }
+        },
+        "fill-range": {
+          "version": "7.0.1",
+          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+          "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+          "requires": {
+            "to-regex-range": "^5.0.1"
+          }
+        },
+        "find-up": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz",
+          "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+          "requires": {
+            "locate-path": "^5.0.0",
+            "path-exists": "^4.0.0"
+          }
+        },
+        "follow-redirects": {
+          "version": "1.15.6",
+          "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz",
+          "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
+        },
+        "form-data": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+          "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+          "requires": {
+            "asynckit": "^0.4.0",
+            "combined-stream": "^1.0.8",
+            "mime-types": "^2.1.12"
+          }
+        },
+        "frac": {
+          "version": "1.1.2",
+          "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
+          "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
+        },
+        "get-caller-file": {
+          "version": "2.0.5",
+          "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz",
+          "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
+        },
+        "glob-parent": {
+          "version": "5.1.2",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+          "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+          "requires": {
+            "is-glob": "^4.0.1"
+          }
+        },
+        "http-proxy": {
+          "version": "1.18.1",
+          "resolved": "https://registry.npmmirror.com/http-proxy/-/http-proxy-1.18.1.tgz",
+          "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
+          "dev": true,
+          "requires": {
+            "eventemitter3": "^4.0.0",
+            "follow-redirects": "^1.0.0",
+            "requires-port": "^1.0.0"
+          }
+        },
+        "http-proxy-middleware": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-3.0.0.tgz",
+          "integrity": "sha512-36AV1fIaI2cWRzHo+rbcxhe3M3jUDCNzc4D5zRl57sEWRAxdXYtw7FSQKYY6PDKssiAKjLYypbssHk+xs/kMXw==",
+          "dev": true,
+          "requires": {
+            "@types/http-proxy": "^1.17.10",
+            "debug": "^4.3.4",
+            "http-proxy": "^1.18.1",
+            "is-glob": "^4.0.1",
+            "is-plain-obj": "^3.0.0",
+            "micromatch": "^4.0.5"
+          }
+        },
+        "is-binary-path": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz",
+          "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+          "requires": {
+            "binary-extensions": "^2.0.0"
+          }
+        },
+        "is-extglob": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+          "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
+        },
+        "is-fullwidth-code-point": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+          "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+        },
+        "is-glob": {
+          "version": "4.0.3",
+          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+          "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+          "requires": {
+            "is-extglob": "^2.1.1"
+          }
+        },
+        "is-number": {
+          "version": "7.0.0",
+          "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+          "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+        },
+        "is-plain-obj": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
+          "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
+          "dev": true
+        },
+        "js-tokens": {
+          "version": "9.0.0",
+          "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz",
+          "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==",
+          "dev": true
+        },
+        "local-pkg": {
+          "version": "0.4.3",
+          "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
+          "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g=="
+        },
+        "locate-path": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
+          "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+          "requires": {
+            "p-locate": "^4.1.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.21",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+          "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+        },
+        "lodash-es": {
+          "version": "4.17.21",
+          "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+          "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
+        },
+        "lodash-unified": {
+          "version": "1.0.3",
+          "resolved": "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz",
+          "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==",
+          "requires": {}
+        },
+        "magic-string": {
+          "version": "0.30.10",
+          "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz",
+          "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
+          "requires": {
+            "@jridgewell/sourcemap-codec": "^1.4.15"
+          }
+        },
+        "magic-string-ast": {
+          "version": "0.3.0",
+          "resolved": "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-0.3.0.tgz",
+          "integrity": "sha512-0shqecEPgdFpnI3AP90epXyxZy9g6CRZ+SZ7BcqFwYmtFEnZ1jpevcV5HoyVnlDS9gCnc1UIg3Rsvp3Ci7r8OA==",
+          "requires": {
+            "magic-string": "^0.30.2"
+          }
+        },
+        "memoize-one": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz",
+          "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
+        },
+        "merge2": {
+          "version": "1.4.1",
+          "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz",
+          "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+          "dev": true
+        },
+        "micromatch": {
+          "version": "4.0.5",
+          "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz",
+          "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+          "dev": true,
+          "requires": {
+            "braces": "^3.0.2",
+            "picomatch": "^2.3.1"
+          }
+        },
+        "mime-db": {
+          "version": "1.52.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+          "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+        },
+        "mime-types": {
+          "version": "2.1.35",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+          "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+          "requires": {
+            "mime-db": "1.52.0"
+          }
+        },
+        "minimatch": {
+          "version": "9.0.4",
+          "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.4.tgz",
+          "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+          "dev": true,
+          "requires": {
+            "brace-expansion": "^2.0.1"
+          }
+        },
+        "mlly": {
+          "version": "1.7.1",
+          "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.1.tgz",
+          "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==",
+          "dev": true,
+          "requires": {
+            "acorn": "^8.11.3",
+            "pathe": "^1.1.2",
+            "pkg-types": "^1.1.1",
+            "ufo": "^1.5.3"
+          }
+        },
+        "moment": {
+          "version": "2.30.1",
+          "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+          "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="
+        },
+        "ms": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
+          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+          "dev": true
+        },
+        "nanoid": {
+          "version": "3.3.6",
+          "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
+          "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="
+        },
+        "normalize-path": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz",
+          "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+        },
+        "normalize-wheel-es": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz",
+          "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
+        },
+        "p-limit": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz",
+          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+          "requires": {
+            "p-try": "^2.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz",
+          "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+          "requires": {
+            "p-limit": "^2.2.0"
+          }
+        },
+        "p-try": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz",
+          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+        },
+        "path-exists": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz",
+          "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
+        },
+        "pathe": {
+          "version": "1.1.2",
+          "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz",
+          "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ=="
+        },
+        "picocolors": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+          "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+        },
+        "picomatch": {
+          "version": "2.3.1",
+          "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+          "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
+        },
+        "pinia": {
+          "version": "2.1.7",
+          "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.1.7.tgz",
+          "integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==",
+          "requires": {
+            "@vue/devtools-api": "^6.5.0",
+            "vue-demi": ">=0.14.5"
+          },
+          "dependencies": {
+            "vue-demi": {
+              "version": "0.14.6",
+              "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
+              "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
+              "requires": {}
+            }
+          }
+        },
+        "pinia-plugin-persistedstate": {
+          "version": "3.2.0",
+          "resolved": "https://registry.npmmirror.com/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.2.0.tgz",
+          "integrity": "sha512-tZbNGf2vjAQcIm7alK40sE51Qu/m9oWr+rEgNm/2AWr1huFxj72CjvpQcIQzMknDBJEkQznCLAGtJTIcLKrKdw==",
+          "requires": {}
+        },
+        "pkg-types": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.1.1.tgz",
+          "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==",
+          "dev": true,
+          "requires": {
+            "confbox": "^0.1.7",
+            "mlly": "^1.7.0",
+            "pathe": "^1.1.2"
+          }
+        },
+        "pngjs": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-5.0.0.tgz",
+          "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="
+        },
+        "postcss": {
+          "version": "8.4.31",
+          "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
+          "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+          "requires": {
+            "nanoid": "^3.3.6",
+            "picocolors": "^1.0.0",
+            "source-map-js": "^1.0.2"
+          }
+        },
+        "prettier": {
+          "version": "2.8.8",
+          "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz",
+          "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
+          "optional": true
+        },
+        "proxy-from-env": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+          "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+        },
+        "qrcode": {
+          "version": "1.5.4",
+          "resolved": "https://registry.npmmirror.com/qrcode/-/qrcode-1.5.4.tgz",
+          "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==",
+          "requires": {
+            "dijkstrajs": "^1.0.1",
+            "pngjs": "^5.0.0",
+            "yargs": "^15.3.1"
+          }
+        },
+        "queue-microtask": {
+          "version": "1.2.3",
+          "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz",
+          "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+          "dev": true
+        },
+        "readdirp": {
+          "version": "3.6.0",
+          "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
+          "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+          "requires": {
+            "picomatch": "^2.2.1"
+          }
+        },
+        "regenerator-runtime": {
+          "version": "0.10.5",
+          "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
+          "integrity": "sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==",
+          "dev": true
+        },
+        "require-directory": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz",
+          "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
+        },
+        "require-main-filename": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-2.0.0.tgz",
+          "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+        },
+        "requires-port": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz",
+          "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
+          "dev": true
+        },
+        "resize-detector": {
+          "version": "0.3.0",
+          "resolved": "https://registry.npmmirror.com/resize-detector/-/resize-detector-0.3.0.tgz",
+          "integrity": "sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ=="
+        },
+        "reusify": {
+          "version": "1.0.4",
+          "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz",
+          "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+          "dev": true
+        },
+        "rollup": {
+          "version": "3.29.4",
+          "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
+          "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
+          "devOptional": true,
+          "requires": {
+            "fsevents": "~2.3.2"
+          }
+        },
+        "run-parallel": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
+          "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+          "dev": true,
+          "requires": {
+            "queue-microtask": "^1.2.2"
+          }
+        },
+        "scule": {
+          "version": "1.3.0",
+          "resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz",
+          "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==",
+          "dev": true
+        },
+        "set-blocking": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz",
+          "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
+        },
+        "sortablejs": {
+          "version": "1.15.1",
+          "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.1.tgz",
+          "integrity": "sha512-P5Cjvb0UG1ZVNiDPj/n4V+DinttXG6K8n7vM/HQf0C25K3YKQTQY6fsr/sEGsJGpQ9exmPxluHxKBc0mLKU1lQ=="
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+        },
+        "source-map-js": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
+          "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
+        },
+        "ssf": {
+          "version": "0.11.2",
+          "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",
+          "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
+          "requires": {
+            "frac": "~1.1.2"
+          }
+        },
+        "string-width": {
+          "version": "4.2.3",
+          "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+          "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+          "requires": {
+            "emoji-regex": "^8.0.0",
+            "is-fullwidth-code-point": "^3.0.0",
+            "strip-ansi": "^6.0.1"
+          }
+        },
+        "strip-ansi": {
+          "version": "6.0.1",
+          "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+          "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+          "requires": {
+            "ansi-regex": "^5.0.1"
+          }
+        },
+        "strip-literal": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz",
+          "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==",
+          "dev": true,
+          "requires": {
+            "js-tokens": "^9.0.0"
+          }
+        },
+        "sweetalert2": {
+          "version": "11.10.7",
+          "resolved": "https://registry.npmmirror.com/sweetalert2/-/sweetalert2-11.10.7.tgz",
+          "integrity": "sha512-5Jlzrmaitay6KzU+2+LhYu9q+L4v/dZ8oZyEDH14ep0C/QilCnFLHmqAyD/Lhq/lm5DiwsOs6Tr58iv8k3wyGg=="
+        },
+        "to-fast-properties": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+          "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog=="
+        },
+        "to-regex-range": {
+          "version": "5.0.1",
+          "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+          "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+          "requires": {
+            "is-number": "^7.0.0"
+          }
+        },
+        "tslib": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
+          "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
+        },
+        "ufo": {
+          "version": "1.5.3",
+          "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.3.tgz",
+          "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==",
+          "dev": true
+        },
+        "undici-types": {
+          "version": "5.26.5",
+          "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz",
+          "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+          "dev": true
+        },
+        "unimport": {
+          "version": "3.7.2",
+          "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.7.2.tgz",
+          "integrity": "sha512-91mxcZTadgXyj3lFWmrGT8GyoRHWuE5fqPOjg5RVtF6vj+OfM5G6WCzXjuYtSgELE5ggB34RY4oiCSEP8I3AHw==",
+          "dev": true,
+          "requires": {
+            "@rollup/pluginutils": "^5.1.0",
+            "acorn": "^8.11.3",
+            "escape-string-regexp": "^5.0.0",
+            "estree-walker": "^3.0.3",
+            "fast-glob": "^3.3.2",
+            "local-pkg": "^0.5.0",
+            "magic-string": "^0.30.10",
+            "mlly": "^1.7.0",
+            "pathe": "^1.1.2",
+            "pkg-types": "^1.1.1",
+            "scule": "^1.3.0",
+            "strip-literal": "^2.1.0",
+            "unplugin": "^1.10.1"
+          },
+          "dependencies": {
+            "estree-walker": {
+              "version": "3.0.3",
+              "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz",
+              "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+              "dev": true,
+              "requires": {
+                "@types/estree": "^1.0.0"
+              }
+            },
+            "local-pkg": {
+              "version": "0.5.0",
+              "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz",
+              "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
+              "dev": true,
+              "requires": {
+                "mlly": "^1.4.2",
+                "pkg-types": "^1.0.3"
+              }
+            }
+          }
+        },
+        "unplugin": {
+          "version": "1.10.1",
+          "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.10.1.tgz",
+          "integrity": "sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==",
+          "requires": {
+            "acorn": "^8.11.3",
+            "chokidar": "^3.6.0",
+            "webpack-sources": "^3.2.3",
+            "webpack-virtual-modules": "^0.6.1"
+          }
+        },
+        "unplugin-auto-import": {
+          "version": "0.17.6",
+          "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.17.6.tgz",
+          "integrity": "sha512-dmX0Pex5DzMzVuALkexboOZvh51fL/BD6aoPO7qHoTYGlQp0GRKsREv2KMF1lzYI9SXKQiRxAjwzbQnrFFNydQ==",
+          "dev": true,
+          "requires": {
+            "@antfu/utils": "^0.7.8",
+            "@rollup/pluginutils": "^5.1.0",
+            "fast-glob": "^3.3.2",
+            "local-pkg": "^0.5.0",
+            "magic-string": "^0.30.10",
+            "minimatch": "^9.0.4",
+            "unimport": "^3.7.1",
+            "unplugin": "^1.10.1"
+          },
+          "dependencies": {
+            "local-pkg": {
+              "version": "0.5.0",
+              "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz",
+              "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
+              "dev": true,
+              "requires": {
+                "mlly": "^1.4.2",
+                "pkg-types": "^1.0.3"
+              }
+            }
+          }
+        },
+        "vite": {
+          "version": "4.4.11",
+          "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz",
+          "integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==",
+          "dev": true,
+          "requires": {
+            "esbuild": "^0.18.10",
+            "fsevents": "~2.3.2",
+            "postcss": "^8.4.27",
+            "rollup": "^3.27.1"
+          }
+        },
+        "vue": {
+          "version": "3.3.4",
+          "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz",
+          "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==",
+          "requires": {
+            "@vue/compiler-dom": "3.3.4",
+            "@vue/compiler-sfc": "3.3.4",
+            "@vue/runtime-dom": "3.3.4",
+            "@vue/server-renderer": "3.3.4",
+            "@vue/shared": "3.3.4"
+          }
+        },
+        "vue-draggable-plus": {
+          "version": "0.5.0",
+          "resolved": "https://registry.npmmirror.com/vue-draggable-plus/-/vue-draggable-plus-0.5.0.tgz",
+          "integrity": "sha512-A5TT5+M5JceROSjPO9aDZTsrSN1TetEs419czPlboomarSiGIBIxTp2WD7XH53EHMrbO7Qo+leRiHWV/rMlyjA==",
+          "requires": {
+            "@types/sortablejs": "^1.15.8"
+          }
+        },
+        "vue-echarts": {
+          "version": "6.7.3",
+          "resolved": "https://registry.npmmirror.com/vue-echarts/-/vue-echarts-6.7.3.tgz",
+          "integrity": "sha512-vXLKpALFjbPphW9IfQPOVfb1KjGZ/f8qa/FZHi9lZIWzAnQC1DgnmEK3pJgEkyo6EP7UnX6Bv/V3Ke7p+qCNXA==",
+          "requires": {
+            "resize-detector": "^0.3.0",
+            "vue-demi": "^0.13.11"
+          },
+          "dependencies": {
+            "vue-demi": {
+              "version": "0.13.11",
+              "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz",
+              "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
+              "requires": {}
+            }
+          }
+        },
+        "vue-i18n": {
+          "version": "11.0.0-rc.1",
+          "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-11.0.0-rc.1.tgz",
+          "integrity": "sha512-qbdCbA537HEdr2yXQ4ec/OMDsoHjod1DwnWbrf+l4Cu/O7CYTCKsOyITUm3RmrCJgRnoVycuR6i/JWdNTJvD5g==",
+          "requires": {
+            "@intlify/core-base": "11.0.0-rc.1",
+            "@intlify/shared": "11.0.0-rc.1",
+            "@vue/devtools-api": "^6.5.0"
+          }
+        },
+        "vue-print-nb": {
+          "version": "1.7.5",
+          "resolved": "https://registry.npmmirror.com/vue-print-nb/-/vue-print-nb-1.7.5.tgz",
+          "integrity": "sha512-iNbNyUVRWz0Ha1UTiCKxMPtHLUDGgNI8e8xmD3xqm9RlXIUeX9bT7DgNAfY8vPzqyFRHqGjxLI1rycKH366ziQ==",
+          "requires": {
+            "vue": "^2.6.11"
+          },
+          "dependencies": {
+            "@vue/compiler-sfc": {
+              "version": "2.7.16",
+              "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz",
+              "integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==",
+              "requires": {
+                "@babel/parser": "^7.23.5",
+                "postcss": "^8.4.14",
+                "prettier": "^1.18.2 || ^2.0.0",
+                "source-map": "^0.6.1"
+              }
+            },
+            "vue": {
+              "version": "2.7.16",
+              "resolved": "https://registry.npmmirror.com/vue/-/vue-2.7.16.tgz",
+              "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==",
+              "requires": {
+                "@vue/compiler-sfc": "2.7.16",
+                "csstype": "^3.1.0"
+              }
+            }
+          }
+        },
+        "vue-router": {
+          "version": "4.0.13",
+          "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.0.13.tgz",
+          "integrity": "sha512-LmXrC+BkDRLak+d5xTMgUYraT3Nj0H/vCbP+7usGvIl9Viqd1UP6AsP0i69pSbn9O0dXK/xCdp4yPw21HqV9Jw==",
+          "requires": {
+            "@vue/devtools-api": "^6.0.0"
+          }
+        },
+        "vue3-print-nb": {
+          "version": "0.1.4",
+          "resolved": "https://registry.npmmirror.com/vue3-print-nb/-/vue3-print-nb-0.1.4.tgz",
+          "integrity": "sha512-LExI7viEzplR6ZKQ2b+V4U0cwGYbVD4fut/XHvk3UPGlT5CcvIGs6VlwGp107aKgk6P8Pgx4rco3Rehv2lti3A==",
+          "requires": {
+            "vue": "^3.0.5"
+          }
+        },
+        "vxe-table": {
+          "version": "4.5.15",
+          "resolved": "https://registry.npmjs.org/vxe-table/-/vxe-table-4.5.15.tgz",
+          "integrity": "sha512-1QuM27wjTZConQX55u2YbyIA69u9/ny83x1cqyrmkoK622GKrY324wuOO/nsjfnbxXV5C+IDzL/MfdrvKQbznQ==",
+          "requires": {
+            "dom-zindex": "^1.0.1",
+            "xe-utils": "^3.5.14"
+          }
+        },
+        "webpack-sources": {
+          "version": "3.2.3",
+          "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
+          "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w=="
+        },
+        "webpack-virtual-modules": {
+          "version": "0.6.2",
+          "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz",
+          "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ=="
+        },
+        "which-module": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmmirror.com/which-module/-/which-module-2.0.1.tgz",
+          "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
+        },
+        "wmf": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
+          "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
+        },
+        "word": {
+          "version": "0.3.0",
+          "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz",
+          "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
+        },
+        "wrap-ansi": {
+          "version": "6.2.0",
+          "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+          "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+          "requires": {
+            "ansi-styles": "^4.0.0",
+            "string-width": "^4.1.0",
+            "strip-ansi": "^6.0.0"
+          }
+        },
+        "xe-utils": {
+          "version": "3.5.14",
+          "resolved": "https://registry.npmjs.org/xe-utils/-/xe-utils-3.5.14.tgz",
+          "integrity": "sha512-Xq6mS8dWwHBQsQUEBXcZYSaBV0KnNLoVWd0vRRDI3nKpbNxfs/LSCK0W21g1edLFnXYfKqg7hh5dakr3RtYY0A=="
+        },
+        "xlsx": {
+          "version": "0.18.5",
+          "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz",
+          "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
+          "requires": {
+            "adler-32": "~1.3.0",
+            "cfb": "~1.2.1",
+            "codepage": "~1.15.0",
+            "crc-32": "~1.2.1",
+            "ssf": "~0.11.2",
+            "wmf": "~1.0.1",
+            "word": "~0.3.0"
+          }
+        },
+        "y18n": {
+          "version": "4.0.3",
+          "resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz",
+          "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+        },
+        "yargs": {
+          "version": "15.4.1",
+          "resolved": "https://registry.npmmirror.com/yargs/-/yargs-15.4.1.tgz",
+          "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+          "requires": {
+            "cliui": "^6.0.0",
+            "decamelize": "^1.2.0",
+            "find-up": "^4.1.0",
+            "get-caller-file": "^2.0.1",
+            "require-directory": "^2.1.1",
+            "require-main-filename": "^2.0.0",
+            "set-blocking": "^2.0.0",
+            "string-width": "^4.2.0",
+            "which-module": "^2.0.0",
+            "y18n": "^4.0.0",
+            "yargs-parser": "^18.1.2"
+          }
+        },
+        "yargs-parser": {
+          "version": "18.1.3",
+          "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-18.1.3.tgz",
+          "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+          "requires": {
+            "camelcase": "^5.0.0",
+            "decamelize": "^1.2.0"
+          }
+        },
+        "zrender": {
+          "version": "5.6.0",
+          "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.6.0.tgz",
+          "integrity": "sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg==",
+          "requires": {
+            "tslib": "2.3.0"
+          }
+        }
+      }
+    },
+    "p-limit": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz",
+      "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+      "requires": {
+        "p-try": "^2.0.0"
+      }
+    },
+    "p-locate": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz",
+      "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+      "requires": {
+        "p-limit": "^2.2.0"
+      }
+    },
+    "p-try": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz",
+      "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+    },
+    "path-exists": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz",
+      "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
+    },
+    "pathe": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz",
+      "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ=="
+    },
+    "picocolors": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+      "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+    },
+    "picomatch": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
+    },
+    "pinia": {
+      "version": "2.1.7",
+      "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.1.7.tgz",
+      "integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==",
+      "requires": {
+        "@vue/devtools-api": "^6.5.0",
+        "vue-demi": ">=0.14.5"
+      },
+      "dependencies": {
+        "vue-demi": {
+          "version": "0.14.6",
+          "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
+          "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
+          "requires": {}
+        }
+      }
+    },
+    "pinia-plugin-persistedstate": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmmirror.com/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.2.0.tgz",
+      "integrity": "sha512-tZbNGf2vjAQcIm7alK40sE51Qu/m9oWr+rEgNm/2AWr1huFxj72CjvpQcIQzMknDBJEkQznCLAGtJTIcLKrKdw==",
+      "requires": {}
+    },
+    "pkg-types": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.1.1.tgz",
+      "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==",
+      "dev": true,
+      "requires": {
+        "confbox": "^0.1.7",
+        "mlly": "^1.7.0",
+        "pathe": "^1.1.2"
+      }
+    },
+    "pngjs": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-5.0.0.tgz",
+      "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="
+    },
+    "postcss": {
+      "version": "8.4.31",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
+      "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+      "requires": {
+        "nanoid": "^3.3.6",
+        "picocolors": "^1.0.0",
+        "source-map-js": "^1.0.2"
+      }
+    },
+    "prettier": {
+      "version": "2.8.8",
+      "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz",
+      "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
+      "optional": true
+    },
+    "proxy-from-env": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+      "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+    },
+    "qrcode": {
+      "version": "1.5.4",
+      "resolved": "https://registry.npmmirror.com/qrcode/-/qrcode-1.5.4.tgz",
+      "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==",
+      "requires": {
+        "dijkstrajs": "^1.0.1",
+        "pngjs": "^5.0.0",
+        "yargs": "^15.3.1"
+      }
+    },
+    "queue-microtask": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz",
+      "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+      "dev": true
+    },
+    "readdirp": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
+      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+      "requires": {
+        "picomatch": "^2.2.1"
+      }
+    },
+    "regenerator-runtime": {
+      "version": "0.10.5",
+      "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
+      "integrity": "sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==",
+      "dev": true
+    },
+    "require-directory": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz",
+      "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
+    },
+    "require-main-filename": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-2.0.0.tgz",
+      "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+    },
+    "requires-port": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz",
+      "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
+      "dev": true
+    },
+    "resize-detector": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmmirror.com/resize-detector/-/resize-detector-0.3.0.tgz",
+      "integrity": "sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ=="
+    },
+    "reusify": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz",
+      "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+      "dev": true
+    },
+    "rollup": {
+      "version": "3.29.4",
+      "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
+      "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
+      "devOptional": true,
+      "requires": {
+        "fsevents": "~2.3.2"
+      }
+    },
+    "run-parallel": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
+      "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+      "dev": true,
+      "requires": {
+        "queue-microtask": "^1.2.2"
+      }
+    },
+    "scule": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz",
+      "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==",
+      "dev": true
+    },
+    "set-blocking": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz",
+      "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
+    },
+    "sortablejs": {
+      "version": "1.15.1",
+      "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.1.tgz",
+      "integrity": "sha512-P5Cjvb0UG1ZVNiDPj/n4V+DinttXG6K8n7vM/HQf0C25K3YKQTQY6fsr/sEGsJGpQ9exmPxluHxKBc0mLKU1lQ=="
+    },
+    "source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+    },
+    "source-map-js": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
+      "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
+    },
+    "ssf": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",
+      "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
+      "requires": {
+        "frac": "~1.1.2"
+      }
+    },
+    "string-width": {
+      "version": "4.2.3",
+      "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+      "requires": {
+        "emoji-regex": "^8.0.0",
+        "is-fullwidth-code-point": "^3.0.0",
+        "strip-ansi": "^6.0.1"
+      }
+    },
+    "strip-ansi": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+      "requires": {
+        "ansi-regex": "^5.0.1"
+      }
+    },
+    "strip-literal": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz",
+      "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==",
+      "dev": true,
+      "requires": {
+        "js-tokens": "^9.0.0"
+      }
+    },
+    "sweetalert2": {
+      "version": "11.10.7",
+      "resolved": "https://registry.npmmirror.com/sweetalert2/-/sweetalert2-11.10.7.tgz",
+      "integrity": "sha512-5Jlzrmaitay6KzU+2+LhYu9q+L4v/dZ8oZyEDH14ep0C/QilCnFLHmqAyD/Lhq/lm5DiwsOs6Tr58iv8k3wyGg=="
+    },
+    "to-fast-properties": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+      "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog=="
+    },
+    "to-regex-range": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+      "requires": {
+        "is-number": "^7.0.0"
+      }
+    },
+    "tslib": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
+      "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
+    },
+    "ufo": {
+      "version": "1.5.3",
+      "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.3.tgz",
+      "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==",
+      "dev": true
+    },
+    "undici-types": {
+      "version": "5.26.5",
+      "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz",
+      "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+      "dev": true
+    },
+    "unimport": {
+      "version": "3.7.2",
+      "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.7.2.tgz",
+      "integrity": "sha512-91mxcZTadgXyj3lFWmrGT8GyoRHWuE5fqPOjg5RVtF6vj+OfM5G6WCzXjuYtSgELE5ggB34RY4oiCSEP8I3AHw==",
+      "dev": true,
+      "requires": {
+        "@rollup/pluginutils": "^5.1.0",
+        "acorn": "^8.11.3",
+        "escape-string-regexp": "^5.0.0",
+        "estree-walker": "^3.0.3",
+        "fast-glob": "^3.3.2",
+        "local-pkg": "^0.5.0",
+        "magic-string": "^0.30.10",
+        "mlly": "^1.7.0",
+        "pathe": "^1.1.2",
+        "pkg-types": "^1.1.1",
+        "scule": "^1.3.0",
+        "strip-literal": "^2.1.0",
+        "unplugin": "^1.10.1"
+      },
+      "dependencies": {
+        "estree-walker": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz",
+          "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+          "dev": true,
+          "requires": {
+            "@types/estree": "^1.0.0"
+          }
+        },
+        "local-pkg": {
+          "version": "0.5.0",
+          "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz",
+          "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
+          "dev": true,
+          "requires": {
+            "mlly": "^1.4.2",
+            "pkg-types": "^1.0.3"
+          }
+        }
+      }
+    },
+    "unplugin": {
+      "version": "1.10.1",
+      "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.10.1.tgz",
+      "integrity": "sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==",
+      "requires": {
+        "acorn": "^8.11.3",
+        "chokidar": "^3.6.0",
+        "webpack-sources": "^3.2.3",
+        "webpack-virtual-modules": "^0.6.1"
+      }
+    },
+    "unplugin-auto-import": {
+      "version": "0.17.6",
+      "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.17.6.tgz",
+      "integrity": "sha512-dmX0Pex5DzMzVuALkexboOZvh51fL/BD6aoPO7qHoTYGlQp0GRKsREv2KMF1lzYI9SXKQiRxAjwzbQnrFFNydQ==",
+      "dev": true,
+      "requires": {
+        "@antfu/utils": "^0.7.8",
+        "@rollup/pluginutils": "^5.1.0",
+        "fast-glob": "^3.3.2",
+        "local-pkg": "^0.5.0",
+        "magic-string": "^0.30.10",
+        "minimatch": "^9.0.4",
+        "unimport": "^3.7.1",
+        "unplugin": "^1.10.1"
+      },
+      "dependencies": {
+        "local-pkg": {
+          "version": "0.5.0",
+          "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz",
+          "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
+          "dev": true,
+          "requires": {
+            "mlly": "^1.4.2",
+            "pkg-types": "^1.0.3"
+          }
+        }
+      }
+    },
+    "vite": {
+      "version": "4.4.11",
+      "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz",
+      "integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==",
+      "dev": true,
+      "requires": {
+        "esbuild": "^0.18.10",
+        "fsevents": "~2.3.2",
+        "postcss": "^8.4.27",
+        "rollup": "^3.27.1"
+      }
+    },
+    "vue": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz",
+      "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==",
+      "requires": {
+        "@vue/compiler-dom": "3.3.4",
+        "@vue/compiler-sfc": "3.3.4",
+        "@vue/runtime-dom": "3.3.4",
+        "@vue/server-renderer": "3.3.4",
+        "@vue/shared": "3.3.4"
+      }
+    },
+    "vue-draggable-plus": {
+      "version": "0.5.0",
+      "resolved": "https://registry.npmmirror.com/vue-draggable-plus/-/vue-draggable-plus-0.5.0.tgz",
+      "integrity": "sha512-A5TT5+M5JceROSjPO9aDZTsrSN1TetEs419czPlboomarSiGIBIxTp2WD7XH53EHMrbO7Qo+leRiHWV/rMlyjA==",
+      "requires": {
+        "@types/sortablejs": "^1.15.8"
+      }
+    },
+    "vue-echarts": {
+      "version": "6.7.3",
+      "resolved": "https://registry.npmmirror.com/vue-echarts/-/vue-echarts-6.7.3.tgz",
+      "integrity": "sha512-vXLKpALFjbPphW9IfQPOVfb1KjGZ/f8qa/FZHi9lZIWzAnQC1DgnmEK3pJgEkyo6EP7UnX6Bv/V3Ke7p+qCNXA==",
+      "requires": {
+        "resize-detector": "^0.3.0",
+        "vue-demi": "^0.13.11"
+      },
+      "dependencies": {
+        "vue-demi": {
+          "version": "0.13.11",
+          "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz",
+          "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
+          "requires": {}
+        }
+      }
+    },
+    "vue-i18n": {
+      "version": "11.0.0-rc.1",
+      "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-11.0.0-rc.1.tgz",
+      "integrity": "sha512-qbdCbA537HEdr2yXQ4ec/OMDsoHjod1DwnWbrf+l4Cu/O7CYTCKsOyITUm3RmrCJgRnoVycuR6i/JWdNTJvD5g==",
+      "requires": {
+        "@intlify/core-base": "11.0.0-rc.1",
+        "@intlify/shared": "11.0.0-rc.1",
+        "@vue/devtools-api": "^6.5.0"
+      }
+    },
+    "vue-print-nb": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmmirror.com/vue-print-nb/-/vue-print-nb-1.7.5.tgz",
+      "integrity": "sha512-iNbNyUVRWz0Ha1UTiCKxMPtHLUDGgNI8e8xmD3xqm9RlXIUeX9bT7DgNAfY8vPzqyFRHqGjxLI1rycKH366ziQ==",
+      "requires": {
+        "vue": "^2.6.11"
+      },
+      "dependencies": {
+        "@vue/compiler-sfc": {
+          "version": "2.7.16",
+          "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz",
+          "integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==",
+          "requires": {
+            "@babel/parser": "^7.23.5",
+            "postcss": "^8.4.14",
+            "prettier": "^1.18.2 || ^2.0.0",
+            "source-map": "^0.6.1"
+          }
+        },
+        "vue": {
+          "version": "2.7.16",
+          "resolved": "https://registry.npmmirror.com/vue/-/vue-2.7.16.tgz",
+          "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==",
+          "requires": {
+            "@vue/compiler-sfc": "2.7.16",
+            "csstype": "^3.1.0"
+          }
+        }
+      }
+    },
+    "vue-router": {
+      "version": "4.0.13",
+      "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.0.13.tgz",
+      "integrity": "sha512-LmXrC+BkDRLak+d5xTMgUYraT3Nj0H/vCbP+7usGvIl9Viqd1UP6AsP0i69pSbn9O0dXK/xCdp4yPw21HqV9Jw==",
+      "requires": {
+        "@vue/devtools-api": "^6.0.0"
+      }
+    },
+    "vue3-print-nb": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmmirror.com/vue3-print-nb/-/vue3-print-nb-0.1.4.tgz",
+      "integrity": "sha512-LExI7viEzplR6ZKQ2b+V4U0cwGYbVD4fut/XHvk3UPGlT5CcvIGs6VlwGp107aKgk6P8Pgx4rco3Rehv2lti3A==",
+      "requires": {
+        "vue": "^3.0.5"
+      }
+    },
+    "vxe-table": {
+      "version": "4.5.15",
+      "resolved": "https://registry.npmjs.org/vxe-table/-/vxe-table-4.5.15.tgz",
+      "integrity": "sha512-1QuM27wjTZConQX55u2YbyIA69u9/ny83x1cqyrmkoK622GKrY324wuOO/nsjfnbxXV5C+IDzL/MfdrvKQbznQ==",
+      "requires": {
+        "dom-zindex": "^1.0.1",
+        "xe-utils": "^3.5.14"
+      }
+    },
+    "webpack-sources": {
+      "version": "3.2.3",
+      "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
+      "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w=="
+    },
+    "webpack-virtual-modules": {
+      "version": "0.6.2",
+      "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz",
+      "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ=="
+    },
+    "which-module": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/which-module/-/which-module-2.0.1.tgz",
+      "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
+    },
+    "wmf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
+      "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
+    },
+    "word": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz",
+      "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
+    },
+    "wrap-ansi": {
+      "version": "6.2.0",
+      "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+      "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+      "requires": {
+        "ansi-styles": "^4.0.0",
+        "string-width": "^4.1.0",
+        "strip-ansi": "^6.0.0"
+      }
+    },
+    "xe-utils": {
+      "version": "3.5.14",
+      "resolved": "https://registry.npmjs.org/xe-utils/-/xe-utils-3.5.14.tgz",
+      "integrity": "sha512-Xq6mS8dWwHBQsQUEBXcZYSaBV0KnNLoVWd0vRRDI3nKpbNxfs/LSCK0W21g1edLFnXYfKqg7hh5dakr3RtYY0A=="
+    },
+    "xlsx": {
+      "version": "0.18.5",
+      "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz",
+      "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
+      "requires": {
+        "adler-32": "~1.3.0",
+        "cfb": "~1.2.1",
+        "codepage": "~1.15.0",
+        "crc-32": "~1.2.1",
+        "ssf": "~0.11.2",
+        "wmf": "~1.0.1",
+        "word": "~0.3.0"
+      }
+    },
+    "y18n": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz",
+      "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+    },
+    "yargs": {
+      "version": "15.4.1",
+      "resolved": "https://registry.npmmirror.com/yargs/-/yargs-15.4.1.tgz",
+      "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+      "requires": {
+        "cliui": "^6.0.0",
+        "decamelize": "^1.2.0",
+        "find-up": "^4.1.0",
+        "get-caller-file": "^2.0.1",
+        "require-directory": "^2.1.1",
+        "require-main-filename": "^2.0.0",
+        "set-blocking": "^2.0.0",
+        "string-width": "^4.2.0",
+        "which-module": "^2.0.0",
+        "y18n": "^4.0.0",
+        "yargs-parser": "^18.1.2"
+      }
+    },
+    "yargs-parser": {
+      "version": "18.1.3",
+      "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-18.1.3.tgz",
+      "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+      "requires": {
+        "camelcase": "^5.0.0",
+        "decamelize": "^1.2.0"
+      }
+    },
+    "zrender": {
+      "version": "5.6.0",
+      "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.6.0.tgz",
+      "integrity": "sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg==",
+      "requires": {
+        "tslib": "2.3.0"
+      }
+    }
+  }
+}
diff --git a/UI-Project/package.json b/UI-Project/package.json
new file mode 100644
index 0000000..948610d
--- /dev/null
+++ b/UI-Project/package.json
@@ -0,0 +1,44 @@
+{
+  "name": "northglass-mes",
+  "version": "0.0.0",
+  "private": true,
+  "scripts": {
+    "dev": "vite",
+    "build": "vite build",
+    "preview": "vite preview"
+  },
+  "dependencies": {
+    "@element-plus/icons-vue": "^2.3.1",
+    "@vue-macros/reactivity-transform": "^0.3.23",
+    "axios": "^1.6.8",
+    "chart.js": "^4.4.3",
+    "dayjs": "^1.11.13",
+    "echarts": "^5.5.1",
+    "element-plus": "^2.9.9",
+    "moment": "^2.30.1",
+    "northglass-mes": "file:",
+    "pinia": "^2.1.6",
+    "pinia-plugin-persistedstate": "^3.2.0",
+    "qrcode": "^1.5.4",
+    "sortablejs": "^1.15.1",
+    "sweetalert2": "^11.10.7",
+    "vue": "^3.3.4",
+    "vue-draggable-plus": "^0.5.0",
+    "vue-echarts": "^6.7.3",
+    "vue-i18n": "^11.0.0-rc.1",
+    "vue-print-nb": "^1.7.5",
+    "vue-router": "^4.0.13",
+    "vue3-print-nb": "^0.1.4",
+    "vxe-table": "^4.5.15",
+    "xe-utils": "^3.5.14",
+    "xlsx": "^0.18.5"
+  },
+  "devDependencies": {
+    "@types/sortablejs": "^1.15.7",
+    "@vitejs/plugin-vue": "^4.6.2",
+    "babel-polyfill": "^6.26.0",
+    "http-proxy-middleware": "^3.0.0",
+    "unplugin-auto-import": "^0.17.6",
+    "vite": "^4.4.9"
+  }
+}
diff --git a/UI-Project/public/favicon.ico b/UI-Project/public/favicon.ico
new file mode 100644
index 0000000..1d83994
--- /dev/null
+++ b/UI-Project/public/favicon.ico
Binary files differ
diff --git a/UI-Project/public/vuefavicon.ico b/UI-Project/public/vuefavicon.ico
new file mode 100644
index 0000000..df36fcf
--- /dev/null
+++ b/UI-Project/public/vuefavicon.ico
Binary files differ
diff --git a/UI-Project/src/App.vue b/UI-Project/src/App.vue
new file mode 100644
index 0000000..85d5b3e
--- /dev/null
+++ b/UI-Project/src/App.vue
@@ -0,0 +1,21 @@
+<template>
+  <router-view></router-view>
+</template>
+<script setup>
+import {onMounted} from 'vue'
+import DevicePixelRatio from '@/utils/evicePixelRatio.js';
+// 瀹氫箟涓�涓嚱鏁版潵璋冩暣 body 鐨勭缉鏀炬瘮渚�
+// function bodyScale() {
+//   const deviceheight = document.documentElement.clientHeight;
+//   const scale = deviceheight / 740;
+//   document.body.style.zoom = scale;
+// }
+// 鍦ㄧ粍浠舵寕杞芥椂鎵ц
+// onMounted(() => {
+//   new DevicePixelRatio().init();
+//   bodyScale();
+// });
+</script>
+<style scoped>
+/* 浣犵殑鏍峰紡鍐呭 */
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/assets/1.png b/UI-Project/src/assets/1.png
new file mode 100644
index 0000000..eea5301
--- /dev/null
+++ b/UI-Project/src/assets/1.png
Binary files differ
diff --git a/UI-Project/src/assets/11.png b/UI-Project/src/assets/11.png
new file mode 100644
index 0000000..46f9af1
--- /dev/null
+++ b/UI-Project/src/assets/11.png
Binary files differ
diff --git a/UI-Project/src/assets/2.png b/UI-Project/src/assets/2.png
new file mode 100644
index 0000000..470e6eb
--- /dev/null
+++ b/UI-Project/src/assets/2.png
Binary files differ
diff --git a/UI-Project/src/assets/3.png b/UI-Project/src/assets/3.png
new file mode 100644
index 0000000..4900b6c
--- /dev/null
+++ b/UI-Project/src/assets/3.png
Binary files differ
diff --git a/UI-Project/src/assets/88.png b/UI-Project/src/assets/88.png
new file mode 100644
index 0000000..365e1ad
--- /dev/null
+++ b/UI-Project/src/assets/88.png
Binary files differ
diff --git a/UI-Project/src/assets/9.png b/UI-Project/src/assets/9.png
new file mode 100644
index 0000000..3e37ece
--- /dev/null
+++ b/UI-Project/src/assets/9.png
Binary files differ
diff --git a/UI-Project/src/assets/C1.png b/UI-Project/src/assets/C1.png
new file mode 100644
index 0000000..388f062
--- /dev/null
+++ b/UI-Project/src/assets/C1.png
Binary files differ
diff --git a/UI-Project/src/assets/aaa.png b/UI-Project/src/assets/aaa.png
new file mode 100644
index 0000000..be775d6
--- /dev/null
+++ b/UI-Project/src/assets/aaa.png
Binary files differ
diff --git a/UI-Project/src/assets/background.jpg b/UI-Project/src/assets/background.jpg
new file mode 100644
index 0000000..4c726c9
--- /dev/null
+++ b/UI-Project/src/assets/background.jpg
Binary files differ
diff --git a/UI-Project/src/assets/base.css b/UI-Project/src/assets/base.css
new file mode 100644
index 0000000..0656895
--- /dev/null
+++ b/UI-Project/src/assets/base.css
@@ -0,0 +1,119 @@
+/* color palette from <https://github.com/vuejs/theme> */
+:root {
+  --vt-c-white: #ffffff;
+  --vt-c-white-soft: #f8f8f8;
+  --vt-c-white-mute: #f2f2f2;
+
+  --vt-c-black: #181818;
+  --vt-c-black-soft: #222222;
+  --vt-c-black-mute: #282828;
+
+  --vt-c-indigo: #2c3e50;
+
+  --vt-c-divider-light-1: rgba(60, 60, 60, 0.29);
+  --vt-c-divider-light-2: rgba(60, 60, 60, 0.12);
+  --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);
+  --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);
+
+  --vt-c-text-light-1: var(--vt-c-indigo);
+  --vt-c-text-light-2: rgba(60, 60, 60, 0.66);
+  --vt-c-text-dark-1: var(--vt-c-white);
+  --vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
+}
+
+/* semantic color variables for this project */
+:root {
+  --color-background: var(--vt-c-white);
+  --color-background-soft: var(--vt-c-white-soft);
+  --color-background-mute: var(--vt-c-white-mute);
+
+  --color-border: var(--vt-c-divider-light-2);
+  --color-border-hover: var(--vt-c-divider-light-1);
+
+  --color-heading: var(--vt-c-text-light-1);
+  --color-text: var(--vt-c-text-light-1);
+
+  --section-gap: 160px;
+}
+
+@media (prefers-color-scheme: dark) {
+  :root {
+    --color-background: var(--vt-c-black);
+    --color-background-soft: var(--vt-c-black-soft);
+    --color-background-mute: var(--vt-c-black-mute);
+
+    --color-border: var(--vt-c-divider-dark-2);
+    --color-border-hover: var(--vt-c-divider-dark-1);
+
+    --color-heading: var(--vt-c-text-dark-1);
+    --color-text: var(--vt-c-text-dark-2);
+  }
+}
+
+*,
+*::before,
+*::after {
+  box-sizing: border-box;
+  margin: 0;
+  font-weight: normal;
+}
+
+body {
+  min-height: 100vh;
+  color: var(--color-text);
+  background: var(--color-background);
+  transition:
+    color 0.5s,
+    background-color 0.5s;
+  line-height: 1.6;
+  font-family:
+    Inter,
+    -apple-system,
+    BlinkMacSystemFont,
+    'Segoe UI',
+    Roboto,
+    Oxygen,
+    Ubuntu,
+    Cantarell,
+    'Fira Sans',
+    'Droid Sans',
+    'Helvetica Neue',
+    sans-serif;
+  font-size: 15px;
+  text-rendering: optimizeLegibility;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+/*婊氬姩鏉℃暣浣撻儴鍒�*/
+.mytable-scrollbar ::-webkit-scrollbar {
+  width: 10px;
+  height: 10px;
+}
+/*婊氬姩鏉$殑杞ㄩ亾*/
+.mytable-scrollbar ::-webkit-scrollbar-track {
+  background-color: #FFFFFF;
+}
+/*婊氬姩鏉¢噷闈㈢殑灏忔柟鍧楋紝鑳藉悜涓婂悜涓嬬Щ鍔�*/
+.mytable-scrollbar ::-webkit-scrollbar-thumb {
+  background-color: transparent;
+  border-radius: 5px;
+  border: 0 solid #F1F1F1;
+  /*box-shadow: inset 0 0 6px rgba(0,0,0,.3);*/
+}
+.mytable-scrollbar ::-webkit-scrollbar-thumb:hover {
+  background-color: #ffffff;
+  box-shadow: inset 0 0 6px rgba(0,0,0,.3);
+}
+.mytable-scrollbar ::-webkit-scrollbar-thumb:active {
+  background-color: white;
+}
+/*杈硅锛屽嵆涓や釜婊氬姩鏉$殑浜ゆ眹澶�*/
+.mytable-scrollbar ::-webkit-scrollbar-corner {
+  background-color: #FFFFFF;
+}
+.vxe-grid{
+  background-color: white;
+}
+
+
+
diff --git a/UI-Project/src/assets/bigcar01.png b/UI-Project/src/assets/bigcar01.png
new file mode 100644
index 0000000..98a0a0e
--- /dev/null
+++ b/UI-Project/src/assets/bigcar01.png
Binary files differ
diff --git a/UI-Project/src/assets/cangchu1.png b/UI-Project/src/assets/cangchu1.png
new file mode 100644
index 0000000..d0b1453
--- /dev/null
+++ b/UI-Project/src/assets/cangchu1.png
Binary files differ
diff --git a/UI-Project/src/assets/cangchu2.png b/UI-Project/src/assets/cangchu2.png
new file mode 100644
index 0000000..d92a9f4
--- /dev/null
+++ b/UI-Project/src/assets/cangchu2.png
Binary files differ
diff --git a/UI-Project/src/assets/cp.png b/UI-Project/src/assets/cp.png
new file mode 100644
index 0000000..e3272b2
--- /dev/null
+++ b/UI-Project/src/assets/cp.png
Binary files differ
diff --git a/UI-Project/src/assets/d1.png b/UI-Project/src/assets/d1.png
new file mode 100644
index 0000000..c903c4b
--- /dev/null
+++ b/UI-Project/src/assets/d1.png
Binary files differ
diff --git a/UI-Project/src/assets/d1a.png b/UI-Project/src/assets/d1a.png
new file mode 100644
index 0000000..b031d4b
--- /dev/null
+++ b/UI-Project/src/assets/d1a.png
Binary files differ
diff --git a/UI-Project/src/assets/d2.png b/UI-Project/src/assets/d2.png
new file mode 100644
index 0000000..de73a96
--- /dev/null
+++ b/UI-Project/src/assets/d2.png
Binary files differ
diff --git a/UI-Project/src/assets/d3.png b/UI-Project/src/assets/d3.png
new file mode 100644
index 0000000..1651775
--- /dev/null
+++ b/UI-Project/src/assets/d3.png
Binary files differ
diff --git a/UI-Project/src/assets/dipan.png b/UI-Project/src/assets/dipan.png
new file mode 100644
index 0000000..923b811
--- /dev/null
+++ b/UI-Project/src/assets/dipan.png
Binary files differ
diff --git a/UI-Project/src/assets/dlpl.png b/UI-Project/src/assets/dlpl.png
new file mode 100644
index 0000000..818a0a2
--- /dev/null
+++ b/UI-Project/src/assets/dlpl.png
Binary files differ
diff --git a/UI-Project/src/assets/dlpl9.png b/UI-Project/src/assets/dlpl9.png
new file mode 100644
index 0000000..fc78fde
--- /dev/null
+++ b/UI-Project/src/assets/dlpl9.png
Binary files differ
diff --git a/UI-Project/src/assets/dlpla.png b/UI-Project/src/assets/dlpla.png
new file mode 100644
index 0000000..9aa315e
--- /dev/null
+++ b/UI-Project/src/assets/dlpla.png
Binary files differ
diff --git a/UI-Project/src/assets/dpxsa.png b/UI-Project/src/assets/dpxsa.png
new file mode 100644
index 0000000..c444062
--- /dev/null
+++ b/UI-Project/src/assets/dpxsa.png
Binary files differ
diff --git a/UI-Project/src/assets/emi.png b/UI-Project/src/assets/emi.png
new file mode 100644
index 0000000..815024a
--- /dev/null
+++ b/UI-Project/src/assets/emi.png
Binary files differ
diff --git a/UI-Project/src/assets/ganghuaqian.png b/UI-Project/src/assets/ganghuaqian.png
new file mode 100644
index 0000000..58cda94
--- /dev/null
+++ b/UI-Project/src/assets/ganghuaqian.png
Binary files differ
diff --git a/UI-Project/src/assets/img.png b/UI-Project/src/assets/img.png
new file mode 100644
index 0000000..3b0ee2b
--- /dev/null
+++ b/UI-Project/src/assets/img.png
Binary files differ
diff --git a/UI-Project/src/assets/logo.svg b/UI-Project/src/assets/logo.svg
new file mode 100644
index 0000000..7565660
--- /dev/null
+++ b/UI-Project/src/assets/logo.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 261.76 226.69"><path d="M161.096.001l-30.225 52.351L100.647.001H-.005l130.877 226.688L261.749.001z" fill="#41b883"/><path d="M161.096.001l-30.225 52.351L100.647.001H52.346l78.526 136.01L209.398.001z" fill="#34495e"/></svg>
diff --git a/UI-Project/src/assets/lp.png b/UI-Project/src/assets/lp.png
new file mode 100644
index 0000000..fac27df
--- /dev/null
+++ b/UI-Project/src/assets/lp.png
Binary files differ
diff --git a/UI-Project/src/assets/lp9.png b/UI-Project/src/assets/lp9.png
new file mode 100644
index 0000000..a976458
--- /dev/null
+++ b/UI-Project/src/assets/lp9.png
Binary files differ
diff --git a/UI-Project/src/assets/lpa.png b/UI-Project/src/assets/lpa.png
new file mode 100644
index 0000000..fac27df
--- /dev/null
+++ b/UI-Project/src/assets/lpa.png
Binary files differ
diff --git a/UI-Project/src/assets/lpa9.png b/UI-Project/src/assets/lpa9.png
new file mode 100644
index 0000000..f7f2204
--- /dev/null
+++ b/UI-Project/src/assets/lpa9.png
Binary files differ
diff --git a/UI-Project/src/assets/lpl.jpg b/UI-Project/src/assets/lpl.jpg
new file mode 100644
index 0000000..d66b84d
--- /dev/null
+++ b/UI-Project/src/assets/lpl.jpg
Binary files differ
diff --git a/UI-Project/src/assets/lpla.jpg b/UI-Project/src/assets/lpla.jpg
new file mode 100644
index 0000000..d66b84d
--- /dev/null
+++ b/UI-Project/src/assets/lpla.jpg
Binary files differ
diff --git a/UI-Project/src/assets/main.css b/UI-Project/src/assets/main.css
new file mode 100644
index 0000000..e9c78e5
--- /dev/null
+++ b/UI-Project/src/assets/main.css
@@ -0,0 +1,54 @@
+@import './base.css';
+
+#app {
+  margin: 0 auto;
+  padding: 0;
+  /* background-color: #D5EAFF; */
+  font-weight: normal;
+  height: 100%;
+  width: 100%;
+  /* min-width: 1536px; */
+  /* min-height: 730px; */
+  /* background-image: url("../../src/assets/background.jpg"); */
+}
+
+a,
+.green {
+  text-decoration: none;
+  color: hsla(160, 100%, 37%, 1);
+  transition: 0.4s;
+}
+
+@media (hover: hover) {
+  a:hover {
+    background-color: hsla(160, 100%, 37%, 0.2);
+  }
+}
+
+@media (min-width: 1024px) {
+  body {
+    display: flex;
+    place-items: center;
+  }
+
+  #app {
+    display: grid;
+    grid-template-columns: 1fr 1fr;
+
+  }
+}
+*{
+  margin: 0;
+  padding: 0;
+
+}
+.mainDiv{
+  height: 100vh;
+  width: 100vw;
+}
+html,body{
+  height: 100%;
+  width: 100%;
+  margin: 0;
+  padding: 0;
+}
\ No newline at end of file
diff --git a/UI-Project/src/assets/northGlass.ico b/UI-Project/src/assets/northGlass.ico
new file mode 100644
index 0000000..470e6eb
--- /dev/null
+++ b/UI-Project/src/assets/northGlass.ico
Binary files differ
diff --git a/UI-Project/src/assets/s.png b/UI-Project/src/assets/s.png
new file mode 100644
index 0000000..2caf181
--- /dev/null
+++ b/UI-Project/src/assets/s.png
Binary files differ
diff --git a/UI-Project/src/assets/screen.png b/UI-Project/src/assets/screen.png
new file mode 100644
index 0000000..28ece70
--- /dev/null
+++ b/UI-Project/src/assets/screen.png
Binary files differ
diff --git a/UI-Project/src/assets/screen2.png b/UI-Project/src/assets/screen2.png
new file mode 100644
index 0000000..1e9dd42
--- /dev/null
+++ b/UI-Project/src/assets/screen2.png
Binary files differ
diff --git a/UI-Project/src/assets/shangpian.png b/UI-Project/src/assets/shangpian.png
new file mode 100644
index 0000000..71152cc
--- /dev/null
+++ b/UI-Project/src/assets/shangpian.png
Binary files differ
diff --git a/UI-Project/src/assets/shangpianji.png b/UI-Project/src/assets/shangpianji.png
new file mode 100644
index 0000000..fb645ca
--- /dev/null
+++ b/UI-Project/src/assets/shangpianji.png
Binary files differ
diff --git a/UI-Project/src/assets/sz.png b/UI-Project/src/assets/sz.png
new file mode 100644
index 0000000..fc3e92b
--- /dev/null
+++ b/UI-Project/src/assets/sz.png
Binary files differ
diff --git a/UI-Project/src/assets/taimian.png b/UI-Project/src/assets/taimian.png
new file mode 100644
index 0000000..81e0723
--- /dev/null
+++ b/UI-Project/src/assets/taimian.png
Binary files differ
diff --git a/UI-Project/src/assets/user.png b/UI-Project/src/assets/user.png
new file mode 100644
index 0000000..7c774be
--- /dev/null
+++ b/UI-Project/src/assets/user.png
Binary files differ
diff --git a/UI-Project/src/assets/woshihuancun.png b/UI-Project/src/assets/woshihuancun.png
new file mode 100644
index 0000000..25fb5fb
--- /dev/null
+++ b/UI-Project/src/assets/woshihuancun.png
Binary files differ
diff --git a/UI-Project/src/assets/xiaoche.png b/UI-Project/src/assets/xiaoche.png
new file mode 100644
index 0000000..f1fdf46
--- /dev/null
+++ b/UI-Project/src/assets/xiaoche.png
Binary files differ
diff --git a/UI-Project/src/assets/xmjc.png b/UI-Project/src/assets/xmjc.png
new file mode 100644
index 0000000..dee5f48
--- /dev/null
+++ b/UI-Project/src/assets/xmjc.png
Binary files differ
diff --git a/UI-Project/src/assets/xmjclzh.png b/UI-Project/src/assets/xmjclzh.png
new file mode 100644
index 0000000..5935f14
--- /dev/null
+++ b/UI-Project/src/assets/xmjclzh.png
Binary files differ
diff --git a/UI-Project/src/assets/ypcaac.png b/UI-Project/src/assets/ypcaac.png
new file mode 100644
index 0000000..fdca249
--- /dev/null
+++ b/UI-Project/src/assets/ypcaac.png
Binary files differ
diff --git a/UI-Project/src/assets/ypcc.png b/UI-Project/src/assets/ypcc.png
new file mode 100644
index 0000000..8820e9b
--- /dev/null
+++ b/UI-Project/src/assets/ypcc.png
Binary files differ
diff --git a/UI-Project/src/assets/ypccche.png b/UI-Project/src/assets/ypccche.png
new file mode 100644
index 0000000..96f75d0
--- /dev/null
+++ b/UI-Project/src/assets/ypccche.png
Binary files differ
diff --git a/UI-Project/src/assets/zhongkong.png b/UI-Project/src/assets/zhongkong.png
new file mode 100644
index 0000000..20f1c19
--- /dev/null
+++ b/UI-Project/src/assets/zhongkong.png
Binary files differ
diff --git a/UI-Project/src/hook/index.js b/UI-Project/src/hook/index.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/UI-Project/src/hook/index.js
diff --git a/UI-Project/src/lang/companyInfo.js b/UI-Project/src/lang/companyInfo.js
new file mode 100644
index 0000000..cdbfc7b
--- /dev/null
+++ b/UI-Project/src/lang/companyInfo.js
@@ -0,0 +1,85 @@
+import {defineStore} from "pinia";
+
+export default defineStore('companyInfo', {
+
+    state: () => ({
+        companyName: '甯稿窞甯傚悏鍒╃幓鐠冩湁闄愬叕鍙�',
+        address:'甯稿窞甯傚ぉ瀹佸尯閮戦檰闀囧ぇ鏄庡崡璺�8鍙�',
+        telephone:'022-59280088',
+        fax:'022-59280066',
+        widHeiLength:{//璁㈠崟瀹介珮闀垮害
+            regexp:/^(\d{1,4})$/,//姝e垯鍥涗綅鏁存暟
+            //regexp:/^(0|[1-9][0-9]{0,3}([.][0-9]{1,2})?)$/,//姝e垯0.00-9999.99
+            msg:'basicData.msg.range9999Dec'
+        },
+        orderIdType:'month',//鍚庣鐢熸垚璁㈠崟鍙风被鍨嬶紝day:姣忓ぉ鐢熸垚锛宮onth:姣忔湀鐢熸垚
+        deliveryIdType:'month',//鍚庣鐢熸垚鍙戣揣鍗曞彿绫诲瀷锛宒ay:姣忓ぉ鐢熸垚锛宮onth:姣忔湀鐢熸垚
+        columnName:'寮傚舰鍙傛暟',
+        selectOrderReviewShow:false, //璁㈠崟棣栭〉鍔犲伐鍗曞鏍告寜閽槸鍚︽樉绀�
+        productName:"product_abbreviation", //浜у搧鍒涘缓鏌ラ噸瀛楁
+        decValue:2,//璁㈠崟淇濆瓨闈㈢Н浣嶆暟
+        label:2,//鏍囩绫诲瀷
+        calculateType:2,//璁㈠崟璁$畻鏂瑰紡
+
+        //澶╂触
+        printLabel: {
+            custom: (item1) => {
+                return `<div class="row3" style="text-align: center;font-weight: bolder;">
+                  <label style="font-weight: bolder;font-size: 22px;margin-top: 28px;">W:${item1.width}</label>
+                  &nbsp;&nbsp;&nbsp;
+                  <label style="font-weight: bolder;font-size: 22px;margin-top: 28px;">H:${item1.height}</label>
+                </div>`
+            },
+            customSemi: (item1) => {
+                return `<div class="row3" style="text-align: center;font-weight: bolder;">
+                  <label style="font-weight: bolder;font-size: 10px;margin-top: 28px;">W:${item1.width}</label>
+                  &nbsp;&nbsp;&nbsp;
+                  <label style="font-weight: bolder;font-size: 10px;margin-top: 28px;">H:${item1.height}</label>
+                </div>`
+            },
+            labelType: '鎴愬搧鏍囩2',
+            labelValue:2,
+            labelType3: '鎴愬搧鏍囩3',
+            labelValue3:3,
+            printFlowCard: {
+                patch:'姝�',
+                lackOf:'娆�',
+                processingNote: (itemtextarea) => {
+                    return  `${itemtextarea.processing_note}`
+                },
+            },
+            hideButton:'false',
+            getSelectFlowCard:2,//鎵撳嵃娴佺▼鍗℃煡璇㈢姸鎬�
+            className:{
+                custom:{
+                    printFlowCardName: () => {
+                        return `printFlowCard_finished`
+                    },
+                    entiretyName: () => {
+                        return `entirety_finished`
+                    },
+                    contentRowName: () => {
+                        return `contentRow`
+                    }
+                },
+                semi:{
+                    printFlowCardName: () => {
+                        return `printFlowCard_semi`
+                    },
+                    entiretyName: () => {
+                        return `entirety_semi`
+                    },
+                    contentRowName: () => {
+                        return `contentRow`
+                    }
+                }
+
+            }
+        }
+
+
+    }),
+    actions: {
+        //
+    }
+})
\ No newline at end of file
diff --git a/UI-Project/src/lang/en.js b/UI-Project/src/lang/en.js
new file mode 100644
index 0000000..ec50530
--- /dev/null
+++ b/UI-Project/src/lang/en.js
@@ -0,0 +1,925 @@
+export default {
+    "northglassMESsystem": "NorthGlass MES System",
+    login: {
+        userErr: 'Please enter account number',
+        pwErr: 'Please input a password',
+        user: 'Account number',
+        password: 'Password',
+        login: 'Log on',
+        loginSuccessful: 'Log on was successful锛�',
+        register: 'Register',
+        namea: 'Name cannot be empty',
+        len: 'The length cannot exceed 16',
+        passnull: 'Password cannot be empty',
+        leng: 'The password length cannot be less than 6 or more than 16',
+        spwn: 'Confirm password cannot be empty',
+        depass: 'The two passwords are not the same',
+    },
+    register: {
+        registerSuccessful: 'login was successful',
+        newuserregister: 'New user register',
+        name: 'Full name锛�',
+        inputname: 'Please enter your name',
+        password: 'Password:',
+        pwErr: 'Please input a password',
+        passwordation: 'Confirm password:',
+        pwErration: 'Please confirm password',
+        registration: 'Registration Confirm',
+        false: 'Cancel',
+    },
+    main: {
+        connectErr: 'The server connection is abnormal. Please try again later',
+        titleFirst: "Welcome ",
+        titleLast: ' to use NorthGlass MES system锛�',
+        quit: "Exit",
+    },
+    basicData: {
+        untask: 'No task',
+        tonumber: 'Total number of films uploaded',
+        finishnumber: 'Completed quantity',
+        rackreset: 'Rack reset',
+        prackreset: 'Is the rack reset锛�',
+        printing: 'automatic printing',
+        laserprinting: 'Laser printing machine ready status锛�',
+        cuttingmachine: 'Cutting machine ready status锛�',
+        machine: 'Online status of the loading table锛�',
+        machineaa: 'Manual state of the loading table锛�',
+        selectproject: "Select project",
+        startloading: 'Start loading',
+        stop: 'Pause',
+        yes: 'Confirm',
+        change: 'Switch',
+        projectnumber: 'Project number',
+        glasswidth: 'Glass width',
+        glassheight: 'Glass height',
+        coatingtypes: 'Coating types',
+        coatingtypesa: 'Coating types锛�',
+        quantity: 'Quantity',
+        quantitya: 'Quantity锛�',
+        thickness: 'Thickness',
+        thicknessa: 'Thickness锛�',
+        startstatus: 'Start status',
+        pass: 'Pass',
+        waiting: 'Waiting',
+        up: 'Loading',
+        finish: 'Completed',
+        project: 'Project ',
+        plselectproject: 'Please select project',
+        confirm: 'Confirm',
+        cancel: 'Cancel',
+        startfilm: 'Whether start loading锛�',
+        whetherpause: 'Whether pause锛�',
+        station: 'Station',
+        width: 'Width',
+        widtha: 'Width锛�',
+        height: 'Height',
+        heighta: 'Height锛�',
+        operate: 'Operate',
+        add: 'Increase',
+        delete: 'Delete',
+        addglass: 'Add glass',
+        selectwidth: 'Please select width',
+        selectheight: 'Please select high',
+        selectcoatingtypes: 'Please select the coating types',
+        selectthickness: 'Please select thickness',
+        selectquantity: 'Please enter the quantity',
+        pause: 'The height of the second and fourth rows must be greater than 2700 in order to save锛�',
+        pausea: 'Please confirm the ready status of marking machine and cutting machine锛�',
+        infonull: 'Project number cannot be empty锛�',
+        updatanull: 'This project has not been saved to the loading list锛�',
+        glassnull: 'An error occurred while updating the glass status',
+        deletemessage: 'Do you want to delete this message?',
+        layoutSequence: 'Serial Number',
+    },
+    sorter: {
+        onesort: 'Line breaking pieces',
+        twosort: 'Second line breaking piece',
+        inPlace: 'In place',
+        ninPlace: 'Not in place',
+        emptymissions: 'Empty task',
+        advancetask: 'Film entry task',
+        outputtasks: 'Production task',
+        schedulingtasks: 'Scheduling tasks',
+        advancerequests: 'Film entry request',
+        releaserequest: 'Production request',
+        straighttasks: 'Direct Task',
+        endingtask: 'end',
+        another: 'other',
+        taskRunning: 'task request',
+        updateTime: 'update time',
+        id: 'Edge grinding pre conditioning cage table ID',
+        remainWidth: 'remaining',
+        place: 'Is it in place',
+        layernow: 'Current floor number',
+        gridnumber: 'Grid number',
+        glassnumber: 'Glass number',
+        width: 'Width',
+        height: 'Height',
+        startstatus: 'Start status',
+        disable: 'Disabled',
+        start: 'Enabled',
+        deficiencieste: 'Report deficiencies',
+        updown: 'Artificial filming',
+        operate: 'Operate',
+        prompt: 'Prompt',
+        information: 'Is the missing information reported锛�',
+        infor: 'Whether to manually download this information锛�',
+        yes: 'Yes',
+        cancel: 'Cancel',
+    },
+    order: {
+        projectnumber: 'Please enter the project number',
+        dilapidation: 'Breakage',
+        takeaway: 'Manual removal',
+        takeawaya: 'Should the information be manually taken away锛�',
+        takeon: 'The arrangement is complete',
+    },
+    searchOrder: {
+        furnaces:'Number of full furnaces',
+        furnfullTemp: 'Total amount of glass',
+        startCell: 'Target layer number',
+        endCell: 'Reserved layer number',
+        begin: 'start',
+        finish: 'complete',
+        uncar: 'Not getting on the car yet',
+        inkage: 'Enter the film',
+        successfullyprocessed: 'Task successfully processed',
+        psuccessfullyprocessed: 'Whether the task has been successfully processed锛�',
+        taskfailure: 'Task failure handling',
+        ptaskfailure: 'Should task failure be handled锛�',
+        totallogarithms: 'Total logarithm',
+        numberpairs: 'pairing number',
+        numberoccupied: 'Number of occupied cells',
+        totalfurnaces: 'Total number of furnaces',
+        cagesnumber: 'Quantity inside the cage',
+        slotnumber: 'Number of occupied cells',
+        progress: 'progress%',
+        whethersame: 'Are they the same',
+        same: 'the same',
+        notsame: 'different',
+        partask: 'Task reset',
+        partasks: 'Do you want to reset the task锛�',
+        empty: 'Default empty task',
+        historicaltasks: 'historical tasks',
+        cagedetails: 'Cage Details',
+        inkageEntity: 'Online status of film entry锛�',
+        requestEntity: 'Entry request status锛�',
+        mesReplyEntity: 'start command锛�',
+        outInkageEntity: 'Online status of film release锛�',
+        outRequestEntity: 'Production request status锛�',
+        breakagn: 'unbroken',
+        lacknumber: 'Number of missing pieces',
+        processcard: 'Specify process card',
+        filminformation: 'Manually downloading information',
+        currentglassinformation: 'Scan the current glass information of the barcode scanner',
+        printlabels: 'print label',
+        deleteTask: 'End of project',
+        pdeleteTask: 'Whether to end the project锛�',
+        searchlayout: 'Non-tempered process card inquiry',
+        fullfurnaces: 'Number of full furnaces',
+        specifiedproject: 'The currently specified project',
+        undesignate: 'Cancel tempered steel',
+        allnumber: 'Total quantity',
+        numbercages: 'Number of cages',
+        missingquantity: 'Missing quantity',
+        breakquantity: 'Breakage/Take Away quantity',
+        ceng: 'layer',
+        cageinformation: 'Sorter information',
+        productionqueue: 'Production queue',
+        outputglassID: 'Output glass ID',
+        startposition: 'Start position',
+        targetlocation: 'Target Position',
+        trips: 'Train number',
+        number: 'Serial Number',
+        taskstatus: 'Task state',
+        filmenter: 'Waiting for input glass',
+        infilm: 'In progress',
+        endtask: 'End task',
+        completetask: 'Complete the task',
+        intoglassid: 'Input glass ID',
+        line: 'Wire',
+        Usage: 'Usage rate',
+        free: 'Free(pieces)',
+        addcage: 'Add information on sorter',
+        glassIDa: 'Glass ID锛�',
+        glassID: 'Glass ID',
+        inglassID: 'Please enter the glass ID',
+        pieceingrid: 'The order of small pieces within the grid',
+        pieceingrida: 'The order of small pieces within the grid锛�',
+        inpieceingrid: 'Please enter the order of small pieces within the grid',
+        cardnumber: 'Process card number',
+        cardnumbera: 'Process card number锛�',
+        incardnumber: 'Please enter the process card number',
+        typeglass: 'Glass type',
+        typeglassa: 'Glass type锛�',
+        intypeglass: 'Please enter the glass type',
+        width: 'Width',
+        widtha: 'Width锛�',
+        inwidth: 'Please enter width',
+        height: 'Height',
+        heighta: 'Height锛�',
+        inheight: 'Please enter height',
+        coatingtypes: 'Coating types',
+        thickness: 'Thickness',
+        thicknessa: 'Thickness锛�',
+        inthickness: 'Please enter the thickness',
+        layoutID: 'Drawing ID of loading for tempering furnace',
+        layoutIDa: 'Drawing ID of loading for tempering furnace锛�',
+        inlayoutID: 'Please enter the drawing ID of loading for tempering furnace',
+        picturesequence: 'Drawing sequence of loading for tempering furnace',
+        picturesequencea: 'Drawing sequence of loading for tempering furnace锛�',
+        inpicturesequence: 'Please enter the drawing sequence of loading for tempering furnace',
+        startstatus: 'Start status',
+        startstatusa: 'Start status锛�',
+        instartstatus: 'Please enter the enabled status',
+        glassgaps: 'Glass gap',
+        glassgapsa: 'Glass gap锛�',
+        inglassgaps: 'Please enter the glass gap',
+        sure: 'Confirm',
+        cancel: 'Cancel',
+        operate: 'Operate',
+        breakage: 'Breakage',
+        delete: 'Delete',
+        outfilm: 'Output glass',
+        cagetableID: 'Sorter table ID',
+        cagenumber: 'Sorter number',
+        gridnumber: 'Grid number',
+        gridnumbera: 'Grid number锛�',
+        grid: 'Please enter a grid number',
+        enable: 'Enabled',
+        disable: 'Disabled',
+        remainingwidth: 'Remaining width',
+        add: 'Add',
+        sheetID: 'Tempered small piece information table ID',
+        processcards: 'Process card',
+        processcardtype: 'Process card glass type',
+        acceptshorizontal: 'Does tempering accept horizontal placement',
+        xcoordinates: 'x coordinate',
+        ycoordinates: 'Y coordinate',
+        rotationangle: 'Rotation angle (counterclockwise)',
+        state: 'Status',
+        takeout: 'Take away',
+        deletemessage: 'Do you want to delete this message?',
+        prompt: 'Prompt',
+        yes: 'Yes',
+        accept: 'Accept',
+        noaccept: 'Not accept',
+        filmcomplete: 'Glass output completed',
+        waiting: 'Waiting',
+        broke: 'Is this information damaged锛�',
+        brokeb: 'Do you need to delete the message锛�',
+        outfil: 'Whether the film is released or not锛�',
+        inputid: 'Please enter the glass ID',
+        search: 'Search',
+        tabid: 'Dali film cage details table ID',
+        tid: 'Device ID',
+        tida: 'Device ID锛�',
+        fin: 'Whether or not the task was completed锛�',
+        sureadd: 'Confirm the addition',
+        sureadda: 'Whether to confirm the addition锛�',
+        zailong: 'In a cage',
+        rengongxp: 'Artificial filming',
+        up: 'Previous',
+        down: 'Next',
+        now: 'The current page is displayed',
+        tit: 'data',
+        temperingqueries: 'Tempering queries',
+        specifytempering: 'Specify a furnace',
+        specifyout: 'Designate manual film production',
+        specifyengineerid: 'Specify the project',
+        projectnumber: 'Project number',
+        layoutnumber: 'Drawing number of loading for tempering furnace',
+        numberglasses: 'Number of glasses',
+        specifytemperinga: 'Please confirm if the device has turned off MES online connection锛�',
+        temperedswitch: 'Tempered switch',
+        dutyinformation: 'Duty information',
+        process: 'Process',
+        team: 'Team',
+        basic: 'equipment',
+        makesure: 'Confirm the save',
+        temperingtotal: 'Number of tempering furnaces锛�',
+        glasstotal: 'Total number of glasses锛�',
+        Labelprinting: 'label printing',
+        Schedulingswitch: 'Dispatch switch',
+    },
+    workOrder: {
+        upnumber: 'Upper position number',
+        coatingtypesbe: 'Original film system',
+        glassID: 'Glass ID',
+        height: 'Height',
+        width: 'Width',
+        thickness: 'Thickness',
+        coatingtypes: 'Coating types',
+        productionsequence: 'Production sequence',
+        cardnumber: 'Process card number',
+        operate: 'Operate',
+        messagedamaged: 'Is this information damaged?',
+        prompt: 'Prompt',
+        yes: 'Yes',
+        cancel: 'Cancel',
+        takemessage: 'Do you need to delete the message锛�',
+        breakage: 'Breakage',
+        takeout: 'Take away',
+        glasstype: 'Glass type',
+        line: 'Wire',
+        status: 'Status',
+        time: 'Time period',
+        cway: 'Please select a route',
+        cstate: 'Please select a status',
+        edgingone: 'Edging a line',
+        edgingtwo: 'Edging two lines',
+        nedging: 'Unedging',
+        edging: 'Edging',
+        finedging: 'has been edging',
+    },
+    processCard: {
+        intofurnace: 'Entering the furnace',
+        beforefurnace: 'Before entering the furnace',
+        outfurnace: 'Glass finished from tempering furnace',
+        print: 'Take away the print',
+        printing: 'print',
+        projectnumber: 'Please enter the project number',
+        inquire: 'Inquire',
+        project: 'Project number',
+        awayprocess: 'Take away the process',
+        awayequipment: 'Take away the equipment',
+        awayteam: 'Take away the crew',
+        flowcard: 'Process card',
+        layer: 'Layer number',
+        temperinglayout: 'Heat number',
+        temperingfeed: 'Preface',
+        width: 'Width',
+        height: 'Height',
+        thickness: 'Thickness',
+        glasstakeout: 'Glass take away list',
+        layoutID: 'Drawing ID of loading for tempering furnace',
+        glassID: 'Glass ID',
+    },
+    reportWork: {
+        details: 'Drop off details',
+        filming: 'Artificial filming',
+        printing: 'Automatic printing',
+        cenumber: 'Number of layers',
+        artificialorder: 'The number of pieces under artificial order',
+        processcard: 'Print the process card',
+        printlabels: 'Print labels',
+        information: 'Landing information',
+        cstation: 'Please select a desk',
+        all: 'all',
+        timeperiod: 'Time period',
+        stationnumber: 'Station number',
+        order: 'order',
+        filminformation: 'Manual film information',
+        glassmation: 'Artificial film current glass information',
+        barcodescanner: 'The current glass information of the barcode scanner',
+        lowerbit: 'Unloading station',
+        shelfnumber: 'Rack number',
+        cardnumber: 'Process card number',
+        totalquantity: 'Total quantity',
+        beendropped: 'Quantity of unloaded glass',
+        state: 'Status',
+        devicenumber: 'Equipment No.',
+        startstatus: 'Start status',
+        enable: 'Start',
+        unenable: 'Unstart',
+        operate: 'Operate',
+        bindingshelves: 'Assigned rack',
+        clear: 'Clear',
+        workstation: 'Station No.',
+        shelfnumbera: 'Rack number锛�',
+        cardnumbera: 'Process card number锛�',
+        incardnumber: 'Please select the process card number',
+        clearglass: 'Clear the glass on the shelf',
+        sure: 'Operate',
+        cancel: 'Cancel',
+        glassinformation: 'Glass information',
+        glassID: 'Glass ID',
+        coatingtypes: 'Coating types',
+        thickness: 'Thickness',
+        width: 'Width',
+        height: 'Height',
+    },
+    productStock: {
+        configName: 'configure name',
+        configNamea:'configure name锛�',
+        configCode: 'Configuration Code',
+        configValue: 'Configuration value',
+        addusers: 'Add user',
+        username: 'User name',
+        usernamea: 'User name锛�',
+        inusername: 'Enter one user name',
+        role: 'Role',
+        rolea: 'Role锛�',
+        inrole: 'Please select a role',
+        test: 'Test',
+        admin: 'Administrator',
+        operate: 'Operate',
+        resetpassword: 'Reset password',
+        exit: 'Edit',
+        delete: 'Delete',
+        prompt: 'Prompt',
+        repassword: 'Do you want to reset the user password锛�',
+        yes: 'Yes',
+        cancel: 'Cancel',
+        reusername: 'Modify Users',
+        addusername: 'Add user',
+        password: 'Password锛�',
+        sure: 'Confirm',
+        inpassword: 'Please input a password',
+        deusername: 'Do you want to delete the user锛�',
+    },
+    customer: {
+        addmenua: 'Add secondary menus',
+        addmenu: 'Add a first-level menu',
+        firstmenu: 'First level menu bar',
+        firstmenuname: 'The name of the first-level menu:',
+        link: 'Link',
+        inlink: 'Please enter the link',
+        linka: 'Link锛�',
+        sort: 'Sort',
+        insort: 'Please enter sorting',
+        sorta: 'Sort锛�',
+        operate: 'Operate',
+        exit: 'Edit',
+        delete: 'Delete',
+        semenu: 'Secondary menu bar',
+        semenuname: 'Secondary menu name:',
+        menu: 'Menu bar锛�',
+        inmenu: 'Please enter a menu name',
+        sure: 'Confirm',
+        cancel: 'Cancel',
+        exmene: 'Modify the first-level menu',
+        exmenea: 'Modify the secondary menu',
+        yes: 'Yes',
+        demenu: 'Do you want to delete this menu锛�',
+        prompt: 'Prompt',
+    },
+    delivery: {
+        addrole: 'Add Role',
+        editrole: 'Modify role',
+        role: 'Role',
+        rolea: 'Role锛�',
+        inrole: 'Please enter the role',
+        operate: 'Operate',
+        edit: 'Edit',
+        delete: 'Delete',
+        yes: 'Yes',
+        sure: 'Confirm',
+        cancel: 'Cancel',
+        derole: 'Do you want to delete this role',
+        prompt: 'Prompt',
+        choice: 'Menu permissions锛�',
+        inchoice: 'Please select Menu Permissions',
+    },
+    replenish: {
+        patchManagement: 'Mesh management',
+    },
+    rework: {
+        reworkManagement: 'Rework management',
+        addRework: "Rework added ",
+    },
+    role: {
+        id: 'ID',
+        characterHomepage: 'Character Home',
+    },
+    user: {
+        userId: 'User ID',
+        userHomepage: 'User Home',
+    },
+    orderBasicData: {
+        order: 'orders',
+        orderType: 'The type of order',
+    },
+    machine: {
+        basicId: 'Device number',
+        basicName: 'The name of the device',
+        basicCategory: 'The process in which it is located',
+        tempering: 'Steel',
+    },
+    report: {
+        productionReport: 'Production reports',
+        workInProgressReport: 'WIP report',
+    },
+    productionBasicData: {
+        basicDataQuery: 'Basic data query',
+    },
+    mainIngredient: {
+        materialInformation: 'Material information',
+    },
+    mainIngredientStock: {
+        materialName: 'The name of the item',
+        createTime: 'Return date',
+    },
+    large: {
+        slice:'slice',
+        load: 'load',
+        edg: 'edg',
+        temp: 'temp',
+        hollow: 'hollow',
+        oneFinish: 'oneFinish',
+        twoFinish: 'twoFinish',
+        oneunFinish: 'oneunFinish',
+        twounFinish: 'twounFinish',
+        ondDamage: 'ondDamage',
+        percent: 'Percent',
+        time: 'The time of the break',
+        tionnumber: 'Order number',
+        jobnumber: 'Job number',
+        productionnumber: 'The production order number',
+        cardnumber: 'Process card number',
+        projectname: 'The name of the project',
+        batch: 'batch',
+        detailID: 'Detail ID',
+        building: 'Building No',
+        serialnumber: 'Order serial number',
+        productname: 'Product name',
+        serial: 'Process validation number',
+        slicemarker: 'Frame marker (position)',
+        numberpatches: 'Number of patches',
+        width: 'Width',
+        height: 'Height',
+        shape: 'Shape',
+        responsibleprocess: 'Responsible process',
+        process: 'This process',
+        numberfractions: 'The number of unfilled fractions',
+        breakreason: 'The reason for the break',
+        breaktype: 'Sub-break type',
+        responsiblepersonnel: 'Responsible Personnel',
+        responsiblequipment: 'Responsible Equipment',
+        responsibleteam: 'Responsible team',
+        area: 'Sub-broken area',
+        inspector: 'Quality inspector',
+        operate: 'Operate',
+        mes: 'Detail',
+        projectnumber: 'The project order number',
+        brokeno: 'The report is broken and not filled',
+        close: 'Shut down',
+        orderId: 'Order ID',
+        order: 'Order details',
+        customerName: 'The name of the customer',
+        project: 'The name of the project',
+        are: 'are',
+        quantity: 'quantity',
+        warehousing: 'State',
+        deliveryDate: 'Delivery time',
+        notstocked: 'Not yet in stock',
+        inboundstatus: 'Partial inventory status',
+        allstatus: 'All in stock status',
+        completedquantity: 'Completed quantity',
+        scrapquantity: 'Scrap Quantity',
+        number: 'Quantity',
+        method: 'Processing method',
+        innumber: 'Quantity already entered',
+        productstatus: 'Production status',
+        right: 'normal',
+        stop: 'termination',
+        inquire: 'query',
+        starttime: 'Start Time',
+        endtime: 'End Time',
+        loading: 'In the process of uploading锛�',
+        brokenNum: 'brokenNum',
+        inventory: 'inventory',
+        inventoryarea: 'inventoryarea',
+        shippedQuantity: 'shippedQuantity',
+        reportWorkQuantity: 'reportWorkQuantity',
+        reportWorkQuantityCount: 'reporting_work_num_count',
+        processId: 'processId',
+        historicaltasks1: 'historicaltasks1',
+        historicaltasks2: 'historicaltasks2',
+        historicaltasks3: 'historicaltasks3',
+        historicaltasks4: 'historicaltasks4',
+        historicaltasks5: 'historicaltasks5',
+        historicaltasks6: 'historicaltasks6',
+        historicaltasks7: 'historicaltasks7',
+        order: 'order',
+        date: 'date',
+        countOutOne: 'countOutOne',
+        totalAreaOutOne: 'totalAreaOutOne',
+        countOutTwo: 'countOutTwo',
+        totalAreaOutTwo: 'totalAreaOutTwo',
+        countIn: 'countIn',
+        totalAreaIn: 'totalAreaIn',
+        countOut: 'countOut',
+        totalAreaOut: 'totalAreaOut',
+        hollowCountOutOne: 'hollowCountOutOne',
+        hollowTotalAreaOutOne: 'hollowTotalAreaOutOne',
+        countOut: 'countOut',
+        hollowCountOutTwo: 'hollowCountOutTwo',
+    },
+    reportmanage: {
+        productiontime: 'production time',
+        starttime: 'Start Time',
+        endtime: 'End Time',
+        ctype: 'Please select type',
+        cstate: 'Please select the status',
+        cprocess: 'Please select the process',
+        all: 'All',
+        completed: 'Completed',
+        broke: 'Damaged',
+        takeout: 'Takeout',
+        dreportwork: 'Unreported work',
+        pendingwork: 'Pending job application',
+        reportwork: 'Reported work',
+        reportworked: 'Reported worked',
+        incise: 'slicing',
+        edging: 'edging',
+        steel: 'toughened',
+        inquire: 'query',
+        signingwork: 'Reporting for work',
+        reporteam: 'Report work team',
+        reportingequipment: 'Reporting equipment',
+        line: 'line',
+        process: 'production processes',
+        glassID: 'Glass ID',
+        projectnumber: 'Project number',
+        layoutID: 'Tempered layout ID',
+        type: 'type',
+        state: 'state',
+        processcards: 'Flow Card',
+        number: 'Serial Number',
+        layer: 'storey',
+        typebreakage: 'Damage type',
+        ptypebreakage: ' Please select the type of damage',
+        causebreakage: 'Reason for damage',
+        pcausebreakage: 'Please select the reason for the damage',
+        responsibleprocess: 'Responsibility Process',
+        responsiblepersonnel: 'Responsible personnel',
+        presponsiblepersonnel: 'Please enter the responsible personnel',
+        responsibleteam: 'Responsible team',
+        presponsibleteam: 'Please select the responsible team',
+        responsibleequipment: 'Responsible equipment',
+        presponsibleequipment: 'Please select the responsible device',
+        remark: 'notes',
+        premark: 'Please enter a note',
+    },
+    film: {
+        resetnumber: 'Shelf number',
+        fail: 'fail',
+        mes: 'Original film storage details',
+        warehousing: 'store',
+        pwarehousing: 'Inventory request',
+        wareout: 'Original film outbound',
+        information: 'Whether to release this information from the warehouse锛�',
+        pwareout: 'Outbound request',
+        position: 'Lifting position锛�',
+        cposition: 'Please select the lifting position',
+        position1: 'Lifting position 1',
+        position2: 'Lifting position 2',
+        addglass: 'Original film information',
+        operate: 'Operate',
+        exit: 'Edit',
+        delete: 'Delete',
+        outbound: 'Outbound',
+        deviceid: 'device ID',
+        enablestatea: 'Enable tagging',
+        disable: 'Disable',
+        start: 'Enable',
+        startslot: 'Start workstation',
+        endslot: 'Target workstation',
+        slotid: 'Grid ID',
+        slot: 'Grid number',
+        width: 'Width',
+        widtha: 'Width锛�',
+        inwidth: 'Please enter width',
+        height: 'Height',
+        inheight: 'Please enter height',
+        heighta: 'Height锛�',
+        thickness: 'Thickness',
+        inthickness: 'Please enter thickness',
+        thicknessa: 'Thickness锛�',
+        films: 'Films',
+        infilms: 'Please enter films',
+        filmsa: 'Films锛�',
+        createtime: 'Creation time',
+        remainquantity: 'Remaining Quantity',
+        thickremainquant: 'Remaining quantity of original film (sheets)',
+        thickremainquantity: 'Remaining quantity of original film (sheets)锛�',
+        inquantity: 'Please enter the quantity',
+        quantitya: 'Number锛�',
+        enableid: 'Task ID',
+        originateslot: 'Starting grid',
+        endoriginateslot: 'Target grid',
+        patternquantity: 'Number',
+        enabletype: 'Task Type',
+        enablestate: 'Workstation status',
+        finish: 'Completed',
+        unfinish: 'Incomplete',
+        dedelete: 'Do you want to delete this content锛�',
+        dedisable: 'Do you want to disable this content锛�',
+        deoutbound: 'Whether to release the content of this item from the warehouse锛�',
+        selectwarehousing: 'Please select the lifting position',
+        inwarehousing: 'Lifting position锛�',
+        warehousing1: 'Lifting position 1',
+        warehousing2: 'Lifting position 2',
+        starttime: 'Start Time',
+        endtime: 'End Time',
+        taskstatus: 'Status',
+        built: 'newly built',
+        execution: 'In progress',
+        tasktype: 'Task Type',
+        stocke: 'store',
+        dispatch: 'dispatch',
+        inquire: 'query',
+        station: 'station',
+    },
+    Mounting: {
+        previewproject: 'Select Preview Project',
+        loadinglinea: 'Upper film line',
+        loadingline: 'Upper film line锛�',
+        inloadingline: 'Please select the upper film line',
+        oneloadingline: 'Line 1 on film',
+        twoloadingline: 'Line 2 on film',
+        waiting: 'Waiting',
+        pass: 'Pass',
+        setparameters: 'Set parameters',
+        project: 'Project number',
+        projecta: 'Project number锛�',
+        width: 'Width',
+        height: 'Height',
+        thickness: 'Thickness',
+        projectnumber: 'Project original piece number',
+        state: 'state',
+        createtime: 'Creation time',
+        all: 'Select All',
+        removalmethod: 'Please choose the membrane removal method',
+        removalmethodp: 'Membrane removal method',
+        removalmethoda: 'Membrane removal method锛�',
+        noremoval: 'The film is not removed',
+        removal: 'Membrane removal',
+        coarselyground: 'Rough grinding',
+        finegrinding: 'Fine grinding',
+    },
+    hellow: {
+        clickmakesure: 'Whether or not to confirm the click锛�',
+        logarithm: 'logarithm锛�',
+        totalPairQuantitya: 'Total number of task allocation pairs',
+        pairQuantitya: 'Number of deployed pairs',
+        waitingout: 'Waiting for the release of the film',
+        finishout: 'Film release completed',
+        hollowSequence: 'Hollow sequence',
+        isPair: 'Whether to pair or not',
+        no: 'deny',
+        listFormula: 'Formula information',
+        HollowGlass: 'Queue information',
+        totalLayer: 'Total number of floors',
+        totalPairQuantity: 'Total number of pairs',
+        pairQuantity: 'Completed pairing quantity',
+        isForceList: 'Is it mandatory',
+        yesisForceList: 'force',
+        noisForceList: 'optional',
+        hollowCountOutOne: 'Quantity of insulated first-line glass',
+        hollowCountOutTwo: 'Quantity of hollow second-line glass',
+        hollowTotalAreaOutOne: 'Hollow first-line glass area',
+        hollowTotalAreaOutTwo: 'Hollow second-line glass area',
+        countIn: 'Quantity of large cage glass before tempering',
+        countOut: 'Quantity of tempered glass',
+        countOutOne: 'Quantity of glass cut along the cutting line',
+        countOutTwo: 'Quantity of cutting second-line glass',
+        totalAreaIn: 'Area of large cage glass before tempering',
+        totalAreaOut: 'Tempered glass area',
+        totalAreaOutOne: 'Cut the area of glass along the cutting line',
+        totalAreaOutTwo: 'Cut the area of second-line glass',
+        freeone: 'First line idle state锛�',
+        freetwo: 'Second line idle state锛�',
+        freethree: 'Third line idle state锛�',
+        casFour: 'Gas 4',
+        casFourb: 'Gas 4锛�',
+        casFoura: 'Please select gas 4',
+        casOne: 'Gas 1',
+        casOneb: 'Gas 1锛�',
+        casOnea: 'Please select gas 1',
+        casThree: 'Gas 3',
+        casThreeb: 'Gas 3锛�',
+        casThreea: 'Please select gas 3',
+        casTwo: 'Gas 2',
+        casTwob: 'Gas 2锛�',
+        casTwoa: 'Please select gas 2',
+        Y: 'have',
+        F: 'not have',
+        frameFour: 'Spacer board 4',
+        frameFourb: 'Spacer board 4锛�',
+        frameFoura: 'Please enter the spacing board 4',
+        frameOne: 'Spacer board 1',
+        frameOneb: 'Spacer board 1锛�',
+        frameOnea: 'Please enter the spacing board 1',
+        frameThree: 'Spacer board 3',
+        frameThreeb: 'Spacer board 3锛�',
+        frameThreea: 'Please enter the spacing board 3',
+        frameTwo: 'Spacer board 2',
+        frameTwob: 'Spacer board 2锛�',
+        frameTwoa: 'Please enter the spacing board 2',
+        intervalFrameHeightOne: 'Interval frame height 1',
+        intervalFrameHeightTwo: 'Interval frame height 2',
+        intervalFrameHeightThree: 'Interval frame height 3',
+        intervalFrameHeightFour: 'Interval frame height 4',
+        intervalFrameHeightaOne: 'Please enter the interval box height 1',
+        intervalFrameHeightaTwo: 'Please enter the interval box height 2',
+        intervalFrameHeightaThree: 'Please enter the interval box height 3',
+        intervalFrameHeightaFour: 'Please enter the interval box height 4',
+        intervalFrameHeightbOne: 'Interval frame height 1锛�',
+        intervalFrameHeightbTwo: 'Interval frame height 2锛�',
+        intervalFrameHeightbThree: 'Interval frame height 3锛�',
+        intervalFrameHeightbFour: 'Interval frame height 4锛�',
+        intervalFrameTypeOne: 'Interval box type 1',
+        intervalFrameTypeTwo: 'Interval box type 2',
+        intervalFrameTypeThree: 'Interval box type 3',
+        intervalFrameTypeFour: 'Interval box type 4',
+        intervalFrameTypecOne: 'Please select interval box type 1',
+        intervalFrameTypecTwo: 'Please select interval box type 2',
+        intervalFrameTypecThree: 'Please select interval box type 3',
+        intervalFrameTypecFour: 'Please select interval box type 4',
+        intervalFrameTypedOne: 'Interval box type 1锛�',
+        intervalFrameTypedTwo: 'Interval box type 2锛�',
+        intervalFrameTypedThree: 'Interval box type 3锛�',
+        intervalFrameTypedFour: 'Interval box type 4锛�',
+        intervalFrameTypea: 'TPS adhesive',
+        intervalFrameTypeb: 'Aluminum spacer strip',
+        intervalFrameWidthOne: 'Interval frame width 1',
+        intervalFrameWidthTwo: 'Interval frame width 2',
+        intervalFrameWidthThree: 'Interval frame width 3',
+        intervalFrameWidthFour: 'Interval frame width 4',
+        intervalFrameWidthaOne: 'Please enter the width of the interval box as 1',
+        intervalFrameWidthaTwo: 'Please enter the width of the interval box as 2',
+        intervalFrameWidthaThree: 'Please enter the width of the interval box as 3',
+        intervalFrameWidthaFour: 'Please enter the width of the interval box as 4',
+        intervalFrameWidthbOne: 'Interval frame width 1锛�',
+        intervalFrameWidthbTwo: 'Interval frame width 2锛�',
+        intervalFrameWidthbThree: 'Interval frame width 3锛�',
+        intervalFrameWidthbFour: 'Interval frame width 4锛�',
+        sealInsert: 'Sealed embedding',
+        sealInsertb: 'Sealed embedding锛�',
+        sealInserta: 'Please enter sealed embedding',
+        hollowformula: 'Hollow formula',
+        hollowformuldet: 'Do you want to delete this hollow formula锛�',
+        hollowtaskdet: 'Do you want to delete this task锛�',
+        taskdet: 'Delete Task',
+        edithollowformula: 'Modify the hollow formula',
+        phollowformula: 'Please choose a hollow formula',
+        hollowformulp: 'Hollow formula锛�',
+        bottomRemove: 'Lower side film removal amount锛�',
+        bottomRemovep: 'Lower side film removal amount',
+        bottomRemovea: 'Please enter the amount of film removal on the lower side',
+        topRemove: 'Upper side membrane removal amount锛�',
+        topRemovep: 'Upper side membrane removal amount',
+        topRemovea: 'Please enter the amount of film removal on the upper side',
+        leftRemove: 'Left side membrane removal amount锛�',
+        leftRemovep: 'Left side membrane removal amount',
+        leftRemovea: 'Please enter the amount of membrane removal on the left side',
+        rightRemove: 'Right side membrane removal amount锛�',
+        rightRemovep: 'Right side membrane removal amount',
+        rightRemovea: 'Please enter the amount of membrane removal on the right side',
+        formulaNamep: 'Recipe Name',
+        formulaName: 'Recipe Name锛�',
+        formulaNamea: 'Please enter the formula name',
+        stopproject: 'Pause Task',
+        pstopproject: 'Do you want to pause the task锛�',
+        reviewproject: 'Preview project',
+        line: 'line',
+        linea: 'line锛�',
+        line1: 'Line 1',
+        line2: 'Line 2',
+        line3: 'Line 3',
+        createtask: 'Create task',
+        starttask: 'Start Task',
+        pstarttask: 'Do you want to start the task锛�',
+        stoptask: 'stop task',
+        pstoptask: 'Do you want to stop the task锛�',
+        currenttask: 'Current task锛�',
+        claimednumber: 'Received pairing quantity锛�',
+        linenumber: 'Number of lines entering the airspace锛�',
+        order: 'Production order',
+        flowCardId: 'Flow Card',
+        thickness: 'thickness',
+        coatingtypes: 'films',
+        layer: 'Number of layers',
+        height: 'long',
+        width: 'width',
+        state: 'state',
+        cardnumber: 'Process card number',
+        cardnumbera: 'Process card number锛�',
+        layernumber: 'Layer number',
+        totalnumber: 'Total number of films',
+        pairsnumber: 'Matched quantity',
+        missingnumber: 'Number of missing pieces',
+        damagenumber: 'A quantity broken.',
+        operate: 'operate',
+        claimquest: 'Collecting tasks',
+        pclaimquest: 'Do you want to receive the task锛�',
+        missingfilms: 'Missing chip details',
+        forcedfilming: 'Compulsory film release',
+        pforcedfilming: 'Is it mandatory to release the film锛�',
+        brokenpieces: 'Number of damaged pieces',
+        realpieces: 'Actual number of films',
+        route: 'route锛�',
+        croute: 'Please choose a route',
+        ptotalpairQuantity: 'Total number of pairs锛�',
+        cpairQuantity: 'Please enter the total number of pairs',
+        schedulingswitch: 'Dispatch switch',
+    },
+    screendisplay: {
+        pchoice: 'Please select',
+        pwidth: 'Please enter the width',
+        pheight: 'Please enter the height',
+        upnumber: 'Number of films uploaded',
+    }
+}
\ No newline at end of file
diff --git a/UI-Project/src/lang/index.js b/UI-Project/src/lang/index.js
new file mode 100644
index 0000000..b2d76c4
--- /dev/null
+++ b/UI-Project/src/lang/index.js
@@ -0,0 +1,20 @@
+
+import { createI18n}  from 'vue-i18n'
+import zh from "./zh"
+import py from "./py"
+import en from "./en"
+
+let messages = {
+    zh:zh,
+    py:py,
+    en: en
+}
+
+const i18n = createI18n({
+    locale: localStorage.getItem('lang') || 'zh', // 璁剧疆褰撳墠璇█绫诲瀷
+    legacy: false, // 濡傛灉瑕佹敮鎸乧ompositionAPI锛屾椤瑰繀椤昏缃负false;
+    globalInjection: true, // 鍏ㄥ眬娉ㄥ唽$t鏂规硶
+    messages
+})
+
+export default i18n
\ No newline at end of file
diff --git a/UI-Project/src/lang/py.js b/UI-Project/src/lang/py.js
new file mode 100644
index 0000000..b10e566
--- /dev/null
+++ b/UI-Project/src/lang/py.js
@@ -0,0 +1,886 @@
+export default {
+    "northglassMESsystem": '小懈褋褌械屑邪 "NorthGlass MES"',
+    login: {
+        userErr: '袙胁械写懈褌械 薪芯屑械褉 褋褔械褌邪.',
+        pwErr: '袙胁械写懈褌械 锌邪褉芯谢褜.',
+        user: '袗泻泻邪褍薪褌',
+        password: '袣芯写',
+        login: '袟邪谢芯谐懈薪',
+        loginSuccessful: '袙褏芯写 胁 褋懈褋褌械屑褍 胁褘锌芯谢薪械薪 褍褋锌械褕薪芯锛�',
+        register: '袟邪褉械谐懈褋褌褉懈褉芯胁邪',
+        namea: '袠屑褟 薪械 屑芯卸械褌 斜褘褌褜 锌褍褋褌褘屑',
+        len: '袛谢懈薪邪 薪械 写芯谢卸薪邪 锌褉械胁褘褕邪褌褜 16',
+        passnull: '袩邪褉芯谢褜 薪械 屑芯卸械褌 斜褘褌褜 锌褍褋褌褘屑',
+        leng: '袛谢懈薪邪 锌邪褉芯谢褟 薪械 写芯谢卸薪邪 斜褘褌褜 屑械薪褜褕械 6 懈谢懈 斜芯谢褜褕械 16.',
+        spwn: '袩邪褉芯谢褜 锌芯写褌胁械褉卸写械薪懈褟 薪械 屑芯卸械褌 斜褘褌褜 锌褍褋褌褘屑',
+        depass: '袛胁邪 褉邪蟹薪褘褏 锌邪褉芯谢褟.',
+    },
+    register: {
+        registerSuccessful: '袪械谐懈褋褌褉邪褑懈褟 褍褋锌械褕薪芯',
+        newuserregister: '袧芯胁褘泄 褉械械褋褌褉 锌芯谢褜蟹芯胁邪褌械谢械泄',
+        name: '袠屑褟锛�',
+        inputname: '袙胁械写懈褌械 懈屑褟',
+        password: '袣芯写:',
+        pwErr: '袙胁械写懈褌械 锌邪褉芯谢褜.',
+        passwordation: '袩芯写褌胁械褉写懈褌械 锌邪褉芯谢褜:',
+        pwErration: '袩芯卸邪谢褍泄褋褌邪, 锌芯写褌胁械褉褌懈褌械 锌邪褉芯谢褜',
+        registration: '袩芯写褌胁械褉卸写械薪懈械 芯 褉械谐懈褋褌褉邪褑懈懈',
+        false: '袨褌屑械薪邪',
+    },
+    main: {
+        connectErr: '袧械芯斜褘褔薪芯械 锌芯写泻谢褞褔械薪懈械 泻 褋械褉胁械褉褍, 锌芯锌褉芯斜褍泄褌械 锌芯蟹卸械',
+        titleFirst: "袛芯斜褉芯 锌芯卸邪谢芯胁邪褌褜 ",
+        titleLast: ' 胁 褋懈褋褌械屑褍 NorthGlass MES锛�',
+        quit: "袙褘褏芯写",
+    },
+    basicData: {
+        untask:'鏃犱换鍔�',
+        tonumber:'涓婄墖鎬绘暟閲�',
+        finishnumber:'宸插畬鎴愭暟閲�',
+        rackreset:'鏋跺瓙澶嶄綅',
+        prackreset:'鏄惁鏋跺瓙澶嶄綅锛�',
+        laserprinting: '袦邪褕懈薪邪 谢邪蟹械褉薪芯泄 屑邪褉泻懈褉芯胁泻懈 谐芯褌芯胁邪锛�',
+        cuttingmachine: '袦邪褕懈薪邪 写谢褟 褉械蟹泻懈 谐芯褌芯胁邪锛�',
+        machine: '小芯褋褌芯褟薪懈械 褋褌邪薪芯泻 蟹邪谐褉褍蟹泻懈 胁 褉械卸懈屑械 芯薪谢邪泄薪锛�',
+        machineaa: '袪褍褔薪芯械 褋芯褋褌芯褟薪懈械 褋褌邪薪芯泻 蟹邪谐褉褍蟹泻懈:',
+        selectproject: "袙褘斜械褉懈褌械 锌褉芯械泻褌",
+        startloading: '袧邪褔邪谢芯 蟹邪谐褉褍蟹泻懈',
+        stop: '袩邪褍蟹邪',
+        yes: '锌芯写褌胁械褉写',
+        change: '锌械褉械泻谢褞褔邪',
+        projectnumber: '袧芯屑械褉 锌褉芯械泻褌邪',
+        glasswidth: '楔懈褉懈薪邪 褋褌械泻谢邪',
+        glassheight: '袙褘褋芯褌邪 褋褌械泻谢邪',
+        coatingtypes: '孝懈锌褘 锌芯泻褉褘褌懈泄',
+        coatingtypesa: '孝懈锌褘 锌芯泻褉褘褌懈泄锛�',
+        quantity: '袣芯谢懈褔械褋褌胁芯',
+        quantitya: '袣芯谢懈褔械褋褌胁芯锛�',
+        thickness: '孝芯谢褖懈薪邪',
+        thicknessa: '孝芯谢褖懈薪邪锛�',
+        startstatus: '小褌邪褌褍褋 薪邪褔邪谢邪 芯锌械褉邪褑懈懈',
+        pass: '效械褉械蟹',
+        waiting: '袞写械屑.',
+        up: '袟邪谐褉褍蟹泻邪',
+        finish: '袟邪胁械褉褕械薪芯',
+        project: '懈薪卸械薪械褉懈褟',
+        plselectproject: '袩芯卸邪谢褍泄褋褌邪, 胁褘斜械褉懈褌械 锌褉芯械泻褌.',
+        confirm: '锌芯写褌胁械褉写',
+        cancel: '袨褌屑械薪邪',
+        startfilm: '袧邪褔懈薪邪褌褜 懈谢懈 薪械褌锛�',
+        whetherpause: '袩邪褍蟹邪 懈谢懈 薪械褌锛�',
+        station: '袪邪斜芯褔械械 屑械褋褌芯',
+        width: '楔懈褉懈薪邪',
+        widtha: '楔懈褉懈薪邪锛�',
+        height: '袙褘褋芯褌邪',
+        heighta: '袙褘褋芯褌邪锛�',
+        operate: '袨锌械褉邪褑懈褟',
+        add: '袛芯斜邪胁谢褟',
+        delete: '校写邪谢',
+        addglass: '袛芯斜邪胁懈褌褜 褋褌械泻谢芯',
+        selectwidth: '袙褘斜懈褉懈褌械 褕懈褉懈薪褍',
+        selectheight: '袙褘斜懈褉懈褌械 胁褘褋芯褌褍',
+        selectcoatingtypes: '袙褘斜械褉懈褌械 褌懈锌褘 锌芯泻褉褘褌懈泄',
+        selectthickness: '袙褘斜械褉懈褌械 褌芯谢褖懈薪褍',
+        selectquantity: '袙胁械写懈褌械 泻芯谢褜褔械褋褌胁芯.',
+        pause: '袙褌芯褉邪褟 懈 褔械褌胁械褉褌邪褟 褋褌褉芯泻懈 写芯谢卸薪褘 斜褘褌褜 胁褘褕械 2700 写谢褟 褋芯褏褉邪薪械薪懈褟!',
+        pausea: '袩芯卸邪谢褍泄褋褌邪, 褍斜械写懈褌械褋褜, 褔褌芯 屑邪褉泻懈褉芯胁芯褔薪邪褟 懈 褉械卸褍褖邪褟 屑邪褕懈薪褘 谐芯褌芯胁褘!',
+        infonull: '袧芯屑械褉 锌褉芯械泻褌邪 薪械 屑芯卸械褌 斜褘褌褜 锌褍褋褌褘屑!',
+        updatanull: '袩褉芯械泻褌 薪械 褋芯褏褉邪薪懈谢懈褋褜 薪邪 谢懈褋褌械 蟹邪谐褉褍蟹泻懈!',
+        glassnull: '袨褕懈斜泻邪 锌褉懈 芯斜薪芯胁谢械薪懈懈 褋褌械泻谢邪',
+        deletemessage:'校写邪谢懈褌褜 褝褌褍 懈薪褎芯褉屑邪褑懈褞 懈谢懈 薪械褌?',
+        layoutSequence:'小械褉懈泄薪 薪芯屑械褉',
+    },
+    sorter: {
+        onesort:'涓�绾挎幇鐗�',
+        twosort:'浜岀嚎鎺扮墖',
+        inPlace:'鍒颁綅',
+        ninPlace:'鏈埌浣�',
+        emptymissions:'绌轰换鍔�',
+        advancetask:'杩涚墖浠诲姟',
+        outputtasks:'鍑虹墖浠诲姟',
+        schedulingtasks:'璋冨害浠诲姟',
+        advancerequests:'杩涚墖璇锋眰',
+        releaserequest:'鍑虹墖璇锋眰',
+        straighttasks:'鐩撮�氫换鍔�',
+        endingtask:'缁撴潫',
+        another:'鍏朵粬',
+        taskRunning:'浠诲姟璇锋眰',
+        remainWidth:'鍓╀綑',
+        id:'纾ㄨ竟鍓嶇悊鐗囩琛↖D',
+        updateTime:'鏇存柊鏃堕棿',
+        place:'鏄惁鍒颁綅',
+        layernow:'褰撳墠灞傚彿',
+        gridnumber: '携褔械械泻 褋械褌泻谢邪',
+        glassnumber: '袧芯屑械褉 褋褌邪泻谢邪',
+        width: '楔懈褉懈薪邪',
+        height: '袙褘褋芯褌邪',
+        startstatus: '小褌邪褌褍褋 薪邪褔邪谢邪 芯锌械褉邪褑懈懈',
+        disable: '袨褌泻谢褞褔',
+        start: '袧邪褔邪谢芯',
+        deficiencieste: '袧械写芯褋褌邪褌泻懈 胁 芯褌褔械褌薪芯褋褌懈',
+        updown:'浜哄伐涓嬬墖',
+        operate: '袨锌械褉邪褑懈褟',
+        prompt: '袩芯写褋泻邪蟹泻',
+        information: '小谢械写褍械褌 谢懈 褋芯芯斜褖邪褌褜 薪械写芯褋褌邪褞褖褍褞 懈薪褎芯褉屑邪褑懈褞锛�',
+        infor:'鏄惁浜哄伐涓嬬墖璇ユ潯淇℃伅锛�',
+        yes: '袛邪',
+        cancel: '袨褌屑械薪邪',
+    },
+    order: {
+        projectnumber:'璇疯緭鍏ュ伐绋嬪彿',
+        takeon:'鎽嗙墖瀹屾垚',
+        dilapidation: '袩芯胁褉械卸写械薪懈械',
+        takeawaya:'鏄惁浜哄伐鎷胯蛋璇ユ潯淇℃伅锛�',
+        takeaway: '袙蟹褟褌褜 胁褉褍褔薪褍褞',
+    },
+    searchOrder: {
+        furnaces:'婊$倝鐐夋暟',
+        furnfullTemp:'鐜荤拑鎬婚噺',
+        startCell:'鐩爣灞傚彿',
+        endCell:'棰勭暀灞傚彿',
+        begin:'寮�濮�',
+        finish:'瀹屾垚',
+        uncar:'鏈笂杞�',
+        inkage:'杩涚墖',
+        successfullyprocessed:'浠诲姟鎴愬姛澶勭悊',
+        psuccessfullyprocessed:'鏄惁杩涜浠诲姟鎴愬姛澶勭悊锛�',
+        taskfailure:'浠诲姟澶辫触澶勭悊',
+        ptaskfailure:'鏄惁杩涜浠诲姟澶辫触澶勭悊锛�',
+        totallogarithms:'鎬诲鏁�',
+        numberpairs:'閰嶅鏁�',
+        numberoccupied:'鍗犵敤鏍煎瓙鏁�',
+        totalfurnaces:'鎬荤倝鏁�',
+        cagesnumber:'绗煎唴鏁伴噺',
+        slotnumber:'鍗犳湁鏍煎瓙鏁�',
+        progress:'杩涘害%',
+        whethersame:'鏄惁鐩稿悓',
+        same:'鐩稿悓',
+        notsame:'涓嶇浉鍚�',
+        partasks:'鏄惁浠诲姟閲嶇疆锛�',
+        empty:'榛樿绌轰换鍔�',
+        partask:'浠诲姟閲嶇疆',
+        historicaltasks:'鍘嗗彶浠诲姟',
+        cagedetails:'绗煎唴璇︽儏',
+        inkageEntity:'杩涚墖鑱旀満鐘舵�侊細',
+        requestEntity:'杩涚墖璇锋眰鐘舵�侊細',
+        mesReplyEntity:'鍚姩鍛戒护锛�',
+        outInkageEntity:'鍑虹墖鑱旀満鐘舵�侊細',
+        outRequestEntity:'鍑虹墖璇锋眰鐘舵�侊細',
+        breakagn:'鏈牬鎹�',
+        lacknumber:'缂虹墖鏁伴噺',
+        processcard:'鎸囧畾娴佺▼鍗�',
+        filminformation:'浜哄伐涓嬬墖淇℃伅',
+        currentglassinformation:'鎵爜鏋綋鍓嶇幓鐠冧俊鎭�',
+        printlabels:'鎵撳嵃鏍囩',
+        deleteTask:'缁撴潫宸ョ▼',
+        pdeleteTask:'鏄惁缁撴潫宸ョ▼锛�',
+        searchlayout:'袟邪锌褉芯褋 薪械褌械屑锌械褉懈褉芯胁邪薪薪芯泄 褌械褏薪芯谢芯谐懈褔械褋泻芯泄 泻邪褉褌褘',
+        fullfurnaces:'袣芯谢懈褔械褋褌胁芯 锌芯谢薪褘褏 锌械褔械泄',
+        specifiedproject:'校泻邪蟹邪薪薪褘泄 胁 写邪薪薪褘泄 屑芯屑械薪褌 锌褉芯械泻褌',
+        undesignate:'鍙栨秷閽㈠寲',
+        allnumber:'袨斜褖械械 泻芯谢懈褔械褋褌胁芯',
+        numbercages:'袣芯谢懈褔械褋褌胁芯 褋械锌邪褉邪褌芯褉芯胁',
+        missingquantity:'袧械写芯褋褌邪褞褖械械 泻芯谢懈褔械褋褌胁芯',
+        breakquantity:'袣芯谢懈褔械褋褌胁芯 袩芯谢芯屑泻邪/袙褘薪芯褋',
+        ceng:'褋谢芯泄',
+        cageinformation: '袠薪褎芯褉屑邪褑懈褟 斜褍褎械褉邪',
+        productionqueue: '袩褉芯懈蟹胁芯写褋褌胁械薪薪邪褟 芯褔械褉械写褜',
+        outputglassID: '袙褘褏芯写薪芯械 褋褌械泻谢芯 ID',
+        startposition: '袟邪薪褟褌褜 锌芯蟹懈褑懈懈',
+        targetlocation: '袩芯蟹懈褑懈褟 褑械谢懈',
+        trips: '鈩� 锌芯械蟹写邪',
+        number: '小械褉懈泄薪 薪芯屑械褉',
+        taskstatus: '小芯褋褌芯褟薪懈械 蟹邪写邪褔懈',
+        filmenter: '袨卸懈写邪薪懈械 褋褌械泻谢褟薪薪芯泄 胁褏芯写',
+        infilm: '袙 薪邪褋褌芯褟褖械械 胁褉械屑褟',
+        endtask: '袟邪写邪褔邪 薪邪 泻芯薪械褑',
+        completetask: '袙褘锌芯谢薪械薪懈械 蟹邪写邪薪懈褟',
+        intoglassid: '袙褏芯写薪芯泄 褋褌械泻谢褟薪薪褘泄 ID',
+        line: '袥懈薪懈褟',
+        Usage: '小泻芯褉芯褋褌褜 懈褋锌芯谢褜蟹芯胁邪薪懈褟',
+        free: '袘械褋锌谢邪褌薪芯 (褟褔械械泻)',
+        addcage: '袛芯斜邪胁懈褌褜 懈薪褎芯褉屑邪褑懈褞 芯 斜褍褎械褉械',
+        glassIDa: '小褌械泻谢褟薪薪褘泄 ID锛�',
+        glassID: '小褌械泻谢褟薪薪褘泄 ID',
+        inglassID: '袙胁械写懈褌械 褋褌械泻谢芯 ID',
+        pieceingrid: '袩芯褉褟写芯泻 褉邪褋锌芯谢芯卸械薪懈褟 屑邪谢械薪褜泻懈褏 褋褌械泻谢褟薪薪褘褏 锌谢邪褋褌懈薪 胁 泻谢械褌泻械',
+        pieceingrida: '袩芯褉褟写芯泻 褉邪褋锌芯谢芯卸械薪懈褟 屑邪谢械薪褜泻懈褏 褋褌械泻谢褟薪薪褘褏 锌谢邪褋褌懈薪 胁 泻谢械褌泻械锛�',
+        inpieceingrid: '袙胁械写懈褌械 锌芯褉褟写芯泻 褉邪褋锌芯谢芯卸械薪懈褟 褋褌械泻谢褟薪薪褘褏 谢懈褋褌芯胁 胁 褟褔械械泻械',
+        cardnumber: '袧芯屑械褉 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪',
+        cardnumbera: '袧芯屑械褉 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪锛�',
+        incardnumber: '袙胁械写懈褌械 薪芯屑械褉 锌褉芯褑械褋褋邪 .',
+        typeglass: '孝懈锌 褋褌械泻谢邪',
+        typeglassa: '孝懈锌 褋褌械泻谢邪锛�',
+        intypeglass: '袙胁械写懈褌械 褌懈锌 褋褌械泻谢邪',
+        coatingtypes: '孝懈锌褘 锌芯泻褉褘褌懈泄',
+        width: '楔懈褉懈薪邪',
+        widtha: '楔懈褉懈薪邪锛�',
+        inwidth: '袙胁械写懈褌械 褕懈褉懈薪褍',
+        height: '袙褘褋芯褌邪',
+        heighta: '袙褘褋芯褌邪锛�',
+        inheight: '袙胁械写懈褌械 胁褘褋芯褌褍',
+        thickness: '孝芯谢褖懈薪邪',
+        thicknessa: '孝芯谢褖懈薪邪锛�',
+        inthickness: '袙胁械写懈褌械 褌芯谢褖懈薪褍.',
+        layoutID: '效械褉褌械卸 ID 蟹邪谐褉褍蟹泻懈 锌械褔懈 写谢褟 蟹邪泻邪谢泻懈',
+        layoutIDa: '效械褉褌械卸 ID 蟹邪谐褉褍蟹泻懈 锌械褔懈 写谢褟 蟹邪泻邪谢泻懈锛�',
+        inlayoutID: '袙胁械写懈褌械 褔械褉褌械卸 蟹邪泻邪谢泻懈 ID',
+        picturesequence: '效械褉褌械卸 褋械褉懈泄薪 薪芯屑械褉 蟹邪谐褉褍蟹泻懈 锌械褔懈 写谢褟 蟹邪泻邪谢泻懈',
+        picturesequencea: '效械褉褌械卸 褋械褉懈泄薪 薪芯屑械褉 蟹邪谐褉褍蟹泻懈 锌械褔懈 写谢褟 蟹邪泻邪谢泻懈锛�',
+        inpicturesequence: '袙胁械写懈褌械 锌芯褉褟写芯泻 褔械褉褌械卸懈 蟹邪泻邪谢泻懈 褋褌械泻谢邪.',
+        startstatus: '小褌邪褌褍褋 薪邪褔邪谢邪 芯锌械褉邪褑懈懈',
+        startstatusa: '小褌邪褌褍褋 薪邪褔邪谢邪 芯锌械褉邪褑懈懈锛�',
+        instartstatus: '袙胁械写懈褌械 褋芯褋褌芯褟薪懈械 邪泻褌懈胁邪褑懈懈',
+        glassgaps: '小褌械泻谢褟薪薪褘泄 蟹邪蟹芯褉',
+        glassgapsa: '小褌械泻谢褟薪薪褘泄 蟹邪蟹芯褉锛�',
+        inglassgaps: '袙胁械写懈褌械 褋褌械泻谢芯 蟹邪蟹芯褉',
+        sure: '锌芯写褌胁械褉写',
+        cancel: '袨褌屑械薪邪',
+        operate: '袨锌械褉邪褑懈褟',
+        breakage: '袩芯胁褉械卸写械薪懈械',
+        delete: '校写邪谢',
+        outfilm: '袙褘锌褍褋泻 褋褌械泻谢邪',
+        cagetableID: 'ID 斜褍褎械褉薪芯泄 褌邪斜谢懈褑褘',
+        cagenumber: '袘褍褎械褉 薪芯屑械褉邪',
+        gridnumber: '携褔械械泻 褋械褌泻谢邪',
+        gridnumbera:'携褔械械泻 褋械褌泻谢邪锛�',
+        grid:'璇疯緭鍏ユ爡鏍煎彿',
+        enable: '袧邪褔邪谢芯',
+        disable: '袨褌泻谢褞褔',
+        remainingwidth: '袨褋褌邪褌芯褔薪邪褟 褕懈褉懈薪邪',
+        add: '袛芯斜邪胁谢褟',
+        sheetID: '袟邪泻邪谢泻邪 屑邪谢械薪褜泻懈泄 褋褌械泻谢褟薪薪褘泄 ID 褌邪斜谢懈褑褘 懈薪褎芯褉屑邪褑懈懈',
+        processcards: '袣邪褉褌芯褔泻邪 锌褉芯褑械褋褋邪',
+        processcardtype: '孝懈锌 褋褌械泻谢邪 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪',
+        acceptshorizontal: '校屑械褉械薪薪芯械 锌褉懈薪褟褌懈械 谐芯褉懈蟹芯薪褌邪谢懈',
+        xcoordinates: 'X-泻芯芯褉写懈薪邪褌褘',
+        ycoordinates: 'Y-泻芯芯褉写懈薪邪褌褘',
+        rotationangle: '校谐芯谢 胁褉邪褖械薪懈褟 (锌褉芯褌懈胁 褔邪褋芯胁芯泄 褋褌褉械谢泻懈)',
+        state: '小芯褋褌芯褟薪懈械',
+        takeout: '袙蟹褟褌褜',
+        deletemessage: '校写邪谢懈褌褜 褝褌褍 懈薪褎芯褉屑邪褑懈褞 懈谢懈 薪械褌?',
+        prompt: '袩芯写褋泻邪蟹泻',
+        yes: '袛邪',
+        accept: '袩褉懈薪褟褌褜',
+        noaccept: '袧械 锌褉懈薪懈屑邪褌褜',
+        filmcomplete: '小褌械泻谢芯 谐芯褌芯胁芯',
+        waiting: '袞写械屑.',
+        broke:'鏄惁鐮存崯璇ユ潯淇℃伅锛�',
+        brokeb:'鏄惁鎷胯蛋璇ユ潯淇℃伅锛�',
+        outfil:'鏄惁鍑虹墖璇ユ潯淇℃伅锛�',
+        inputid:'袙胁械写懈褌械 褋褌械泻谢芯 ID',
+        search:'鎼滅储',
+        tabid:'澶х悊鐗囩璇︽儏琛╥d',
+        tid:'璁惧id',
+        tida:'璁惧id锛�',
+        fin:'鏄惁瀹屾垚浠诲姟锛�',
+        sureadd:'纭娣诲姞',
+        sureadda:'鏄惁纭娣诲姞锛�',
+        zailong:'鍦ㄧ涓�',
+        rengongxp:'浜哄伐涓嬬墖',
+        up:'涓婁竴椤�',
+        down:'涓嬩竴椤�',
+        now:'褰撳墠椤垫樉绀�',
+        tit:'鏉℃暟鎹�',
+        temperingqueries:'閽㈠寲鏌ヨ',
+        specifytempering:'鎸囧畾涓�鐐�',
+        specifyout:'鎸囧畾浜哄伐鍑虹墖',
+        specifyengineerid:'鎸囧畾宸ョ▼',
+        projectnumber:'袧芯屑械褉 锌褉芯械泻褌邪',
+        layoutnumber:'效械褉褌械卸 薪芯屑械褉 蟹邪谐褉褍蟹泻懈 锌械褔懈 写谢褟 蟹邪泻邪谢泻懈',
+        numberglasses:'鐜荤拑鏁伴噺',
+        specifytemperinga:'璇风‘璁よ澶囨槸鍚﹀凡鍏抽棴MES鑱旀満锛�',
+        temperedswitch:'閽㈠寲寮�鍏�',
+        dutyinformation:'鍊肩彮淇℃伅',
+        process:'宸ュ簭',
+        team:'鐝粍',
+        basic:'璁惧',
+        makesure:'纭淇濆瓨',
+        temperingtotal:'閽㈠寲鐐夋暟锛�',
+        glasstotal:'鐜荤拑鎬绘暟锛�',
+        Labelprinting:'鏍囩鎵撳嵃',
+        Schedulingswitch:'璋冨害寮�鍏�',
+    },
+    workOrder: {
+        upnumber:'涓婄墖浣嶇紪鍙�',
+        coatingtypesbe:'鍘熺墖鑶滅郴',
+        glassID: '小褌械泻谢褟薪薪褘泄 ID',
+        height: '袙褘褋芯褌邪',
+        width: '楔懈褉懈薪邪',
+        thickness: '孝芯谢褖懈薪邪',
+        coatingtypes: '孝懈锌褘 锌芯泻褉褘褌懈泄',
+        productionsequence: '袩芯褋谢械写芯胁邪褌械谢褜薪芯褋褌褜 锌褉芯懈蟹胁芯写褋褌胁邪',
+        cardnumber: '袧芯屑械褉 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪',
+        operate: '袨锌械褉邪褑懈褟',
+        messagedamaged: '袩芯胁褉械卸写械薪芯 谢懈 褋芯芯斜褖械薪懈械锛�',
+        prompt: '袩芯写褋泻邪蟹泻',
+        yes: '袛邪',
+        cancel: '袨褌屑械薪邪',
+        takemessage: '小谢械写褍械褌 谢懈 褍写邪谢褟褌褜 褋芯芯斜褖械薪懈械锛�',
+        breakage: '袩芯胁褉械卸写械薪懈械',
+        takeout: '袙蟹褟褌褜',
+        glasstype:'孝懈锌 褋褌械泻谢邪',
+        line:'绾胯矾',
+        status:'小芯褋褌芯褟薪懈械',
+        time:'袩械褉懈芯写 胁褉械屑械薪懈',
+        cway:'袩芯卸邪谢褍泄褋褌邪, 胁褘斜械褉懈褌械 屑邪褉褕褉褍褌',
+        cstate:'袩芯卸邪谢褍泄褋褌邪, 胁褘斜械褉懈褌械 褋褌邪褌褍褋',
+        edgingone:'袨泻邪薪褌芯胁泻邪 谢懈薪懈懈',
+        edgingtwo:'袨泻邪薪褌芯胁泻邪 写胁褍褏 谢懈薪懈泄',
+        nedging:'袨泻邪薪褌芯胁泻邪',
+        edging:'袣褉邪泄',
+        finedging:'斜褘谢 芯泻邪薪褌芯胁芯褔薪褘屑',
+    },
+    processCard: {
+        intofurnace: '袙 锌械褔褜',
+        beforefurnace: '袛芯 锌械褔泻懈.',
+        outfurnace: '袨泻芯薪褔械薪芯 褋褌械泻谢芯 懈蟹 锌械褔懈 写谢褟 蟹邪泻邪谢泻懈',
+        print:'鎷胯蛋鎵撳嵃',
+        printing:'鎵撳嵃',
+        projectnumber:'璇疯緭鍏ュ伐绋嬪彿',
+        inquire:'鏌ヨ',
+        project:'袧芯屑械褉 锌褉芯械泻褌邪',
+        awayprocess:'鎷胯蛋宸ュ簭',
+        awayequipment:'鎷胯蛋璁惧',
+        awayteam:'鎷胯蛋鐝粍',
+        flowcard:'袣邪褉褌芯褔泻邪 锌褉芯褑械褋褋邪',
+        layer:'灞傚彿',
+        temperinglayout:'鐐夊彿',
+        temperingfeed:'鐗囧簭',
+        width:'楔懈褉懈薪邪',
+        height:'袙褘褋芯褌邪',
+        thickness:'孝芯谢褖懈薪邪',
+        glasstakeout:'鐜荤拑鎷胯蛋娓呭崟',
+        layoutID:'鐗堝浘ID',
+        glassID:'小褌械泻谢褟薪薪褘泄 ID',
+    },
+    reportWork: {
+        details:'小胁械写械薪懈褟 芯 褋写邪褔械',
+        filming:'袠褋泻褍褋褋褌胁械薪薪邪褟 褋褗械屑泻邪',
+        printing:'袗胁褌芯屑邪褌懈褔械褋泻邪褟 锌械褔邪褌褜',
+        cenumber:'袣芯谢懈褔械褋褌胁芯 褋谢芯械胁',
+        artificialorder:'袣芯谢懈褔械褋褌胁芯 褕褌褍泻 锌褉懈 懈褋泻褍褋褋褌胁械薪薪芯屑 蟹邪泻邪蟹械',
+        processcard:'袩械褔邪褌褜 褌械褏薪芯谢芯谐懈褔械褋泻芯泄 泻邪褉褌褘',
+        printlabels:'袩械褔邪褌褜 褝褌懈泻械褌芯泻',
+        information:'袠薪褎芯褉屑邪褑懈褟 芯 锌芯褋邪写泻械',
+        cstation:'袩芯卸邪谢褍泄褋褌邪, 胁褘斜械褉懈褌械 褋褌芯谢',
+        all:'胁褋械',
+        timeperiod:'袩械褉懈芯写 胁褉械屑械薪懈',
+        stationnumber:'袧芯屑械褉 褋褌邪薪褑懈懈',
+        order:'锌芯褉褟写芯泻',
+        filminformation:'袠薪褎芯褉屑邪褑懈褟 芯 锌谢械薪泻械 胁褉褍褔薪褍褞',
+        glassmation:'袠褋泻褍褋褋褌胁械薪薪邪褟 锌谢械薪泻邪 邪泻褌褍邪谢褜薪邪褟 懈薪褎芯褉屑邪褑懈褟 芯 褋褌械泻谢械',
+        barcodescanner:'袗泻褌褍邪谢褜薪邪褟 懈薪褎芯褉屑邪褑懈褟 芯 褋褌械泻谢械 褋泻邪薪械褉邪 褕褌褉懈褏-泻芯写邪',
+        lowerbit: '小褌邪薪褑懈褟 褉邪蟹谐褉褍蟹泻懈',
+        shelfnumber: '袧芯屑械褉 褋褌芯泄泻懈 褉械谐懈褋褌褉邪褑懈懈',
+        cardnumber: '袧芯屑械褉 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪',
+        totalquantity: '袨斜褖械械 泻芯谢懈褔械褋褌胁芯',
+        beendropped: '袣芯谢懈褔械褋褌胁芯 褋褌械泻谢邪 褉邪蟹谐褉褍蟹泻懈',
+        state: '小芯褋褌芯褟薪懈械',
+        devicenumber: '袧芯屑械褉 芯斜芯褉褍写芯胁邪薪懈褟.',
+        startstatus: '小褌邪褌褍褋 薪邪褔邪谢邪 芯锌械褉邪褑懈懈',
+        enable: '袧邪褔邪谢芯',
+        unenable: '袧械 薪邪褔邪褌',
+        operate: '袨锌械褉邪褑懈褟',
+        bindingshelves: '袧邪蟹薪邪褔械薪薪邪褟 褋褌械谢谢邪卸泻邪',
+        clear: '效懈褋褌芯.',
+        workstation: '小褌邪薪褑懈褟 薪芯屑械褉',
+        shelfnumbera:'袧芯屑械褉 褋褌芯泄泻懈 褉械谐懈褋褌褉邪褑懈懈锛�',
+        cardnumbera: '袧芯屑械褉 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪锛�',
+        incardnumber: '袩芯卸邪谢褍泄褋褌邪, 胁褘斜械褉懈褌械 薪芯屑械褉 锌褉芯谐褉邪屑屑褘',
+        clearglass: '袨褔懈褋褌懈褌褜 褋褌械泻谢芯 褋 锌芯谢泻懈',
+        sure: '锌芯写褌胁械褉写',
+        cancel: '袨褌屑械薪邪',
+        glassinformation: '袠薪褎芯褉屑邪褑懈褟 褋褌械泻谢邪',
+        glassID: '小褌械泻谢褟薪薪褘泄 ID',
+        coatingtypes: '孝懈锌褘 锌芯泻褉褘褌懈泄',
+        thickness: '孝芯谢褖懈薪邪',
+        width: '楔懈褉懈薪邪',
+        height: '袙褘褋芯褌邪',
+    },
+    productStock: {
+        configName:'閰嶇疆鍚�',
+        configNamea:'閰嶇疆鍚嶏細',
+        configCode:'閰嶇疆浠g爜',
+        configValue:'閰嶇疆鍊�',
+        addusers: '袛芯斜邪胁褜褌械 锌芯谢褜蟹芯胁邪褌械谢械泄.',
+        username: '袠屑褟 锌芯谢褜蟹芯胁邪褌械谢褟.',
+        usernamea: '袠屑褟 锌芯谢褜蟹芯胁邪褌械谢褟.锛�',
+        inusername: '袙胁械写懈褌械 懈屑褟 锌芯谢褜蟹芯胁邪褌械谢褟',
+        role: '袪芯谢褜',
+        rolea: '袪芯谢褜锛�',
+        inrole: '袙褘斜械褉懈褌械 褉芯谢褜',
+        test: '孝械褋褌',
+        admin: '袗写屑懈薪懈褋褌褉邪褌芯褉.',
+        operate: '袨锌械褉邪褑懈褟',
+        resetpassword: '小斜褉芯褋懈褌褜 锌邪褉芯谢褜',
+        exit: '袪械写邪泻褌芯褉',
+        delete: '校写邪谢',
+        prompt: '袩芯写褋泻邪蟹泻',
+        repassword: '袩械褉械蟹邪谐褉褍蟹泻邪 锌芯谢褜蟹芯胁邪褌械谢褜褋泻芯谐芯 锌邪褉芯谢褟 懈谢懈 薪械褌锛�',
+        yes: '袛邪',
+        cancel: '袨褌屑械薪邪',
+        reusername: '袠蟹屑械薪械薪懈械 锌芯谢褜蟹芯胁邪褌械谢褟',
+        addusername: '袛芯斜邪胁褜褌械 锌芯谢褜蟹芯胁邪褌械谢械泄.',
+        password: '袣芯写锛�',
+        sure: '锌芯写褌胁械褉写',
+        inpassword: '袙胁械写懈褌械 锌邪褉芯谢褜.',
+        deusername: '校写邪谢械薪懈械 锌芯谢褜蟹芯胁邪褌械谢褟 懈谢懈 薪械褌锛�',
+    },
+    customer: {
+        addmenua:'娣诲姞浜岀骇鑿滃崟',
+        addmenu: '袛芯斜邪胁褜褌械 屑械薪褞.',
+        firstmenu: '孝邪斜谢懈褑邪 屑械薪褞 锌械褉胁芯泄 褋褌械锌械薪懈',
+        firstmenuname:'涓�绾ц彍鍗曞悕绉�:',
+        link: '小褋褘谢泻',
+        linka: '小褋褘谢泻锛�',
+        inlink: '袙胁械写懈褌械 褋褋褘谢泻褍',
+        sort: '小芯褉褌懈褉芯胁泻',
+        sorta: '小芯褉褌懈褉芯胁泻锛�',
+        insort: '袙胁械写懈褌械 褋芯褉褌懈褉芯胁泻褍',
+        operate: '袨锌械褉邪褑懈褟',
+        exit: '袪械写邪泻褌芯褉',
+        delete:'校写邪谢',
+        semenu:'孝邪斜谢懈褑邪 屑械薪褞 胁褌芯褉芯泄 褋褌械锌械薪懈',
+        semenuname:'浜岀骇鑿滃崟鍚嶇О:',
+        inmenu: '袙胁械写懈褌械 屑械薪褞',
+        delete: '校写邪谢',
+        menu: '袦械薪褞.锛�',
+        sure: '锌芯写褌胁械褉写',
+        cancel: '袨褌屑械薪邪',
+        exmene: '袠蟹屑械薪械薪懈械 屑械薪褞.',
+        yes: '袛邪',
+        demenu: '校写邪谢懈褌褜 屑械薪褞 懈谢懈 薪械褌锛�',
+        prompt: '袩芯写褋泻邪蟹泻',
+    },
+    delivery: {
+        addrole: '袛芯斜邪胁褜褌械 褉芯谢懈.',
+        editrole: '袠蟹屑械薪械薪懈械 褉芯谢懈.',
+        role: '袪芯谢褜',
+        rolea: '袪芯谢褜锛�',
+        inrole: '袙胁械写懈褌械 褉芯谢懈.',
+        operate: '袨锌械褉邪褑懈褟',
+        edit: '袪械写邪泻褌芯褉',
+        delete: '校写邪谢',
+        sure: '锌芯写褌胁械褉写',
+        cancel: '袨褌屑械薪邪',
+        yes: '袛邪',
+        derole: '校写邪谢懈褌褜 锌械褉褋芯薪邪卸 懈谢懈 薪械褌锛�',
+        prompt: '袩芯写褋泻邪蟹泻',
+        choice:'鑿滃崟鏉冮檺锛�',
+        inchoice:'璇烽�夋嫨鑿滃崟鏉冮檺',
+    },
+    replenish:{
+        patchManagement:'琛ョ墖绠$悊',
+    },
+    rework:{
+        reworkManagement:'杩斿伐绠$悊',
+        addRework:"杩斿伐鏂板 ",
+    },
+    role:{
+        id:'ID',
+        characterHomepage:'瑙掕壊棣栭〉',
+    },
+    user:{
+        userId:'鐢ㄦ埛ID',
+        userHomepage:'鐢ㄦ埛棣栭〉',
+    },
+    orderBasicData:{
+        order:'璁㈠崟',
+        orderType:'璁㈠崟绫诲瀷',
+    },
+    machine:{
+        basicId:'璁惧缂栧彿',
+        basicName:'璁惧鍚嶇О',
+        basicCategory:'鎵�鍦ㄥ伐搴�',
+        tempering:'袟邪泻邪谢泻邪',
+    },
+    report:{
+        productionReport:'鐢熶骇鎶ヨ〃',
+        workInProgressReport:'鍦ㄥ埗鍝佹姤琛�',
+    },
+    productionBasicData:{
+        basicDataQuery :'鍩虹鏁版嵁鏌ヨ',
+    },
+    mainIngredient:{
+        materialInformation :'鐗╂枡璧勬枡',
+    },
+    mainIngredientStock:{
+        materialName :'鐗╂枡鍚嶇О',
+        createTime :'杩斿簱鏃ユ湡',
+    },
+    large:{
+        slice:'鐗�',
+        time: '娆$牬鏃堕棿',
+        tionnumber: '璁㈠崟鍙�',
+        jobnumber: '鎶ュ伐缂栧彿',
+        productionnumber: '鐢熶骇璁㈠崟鍙�',
+        cardnumber: '袧芯屑械褉 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪',
+        projectname: '椤圭洰鍚嶇О',
+        batch: '鎵规',
+        detailID: '鏄庣粏ID',
+        building: '妤煎彿',
+        serialnumber: '璁㈠崟搴忓彿',
+        productname: '浜у搧鍚嶇О',
+        serial: '宸ヨ壓纭搴忓彿',
+        slicemarker: '鐗囨爣璁帮紙浣嶇疆锛�',
+        numberpatches: '琛ョ墖鏁伴噺',
+        width: '楔懈褉懈薪邪',
+        height: '袙褘褋芯褌邪',
+        shape: '褰㈢姸',
+        responsibleprocess: '璐d换宸ュ簭',
+        process: '鏈伐搴�',
+        numberfractions: '娆$牬鏈ˉ鏁伴噺',
+        breakreason: '娆$牬鍘熷洜',
+        breaktype: '娆$牬绫诲瀷',
+        responsiblepersonnel: '璐d换浜哄憳',
+        responsiblequipment: '璐d换璁惧',
+        responsibleteam: '璐d换鐝粍',
+        area: '娆$牬闈㈢Н',
+        inspector: '璐ㄦ鍛�',
+        operate: '袨锌械褉邪褑懈褟',
+        mes: '璇︽儏',
+        projectnumber: '宸ョ▼鍗曞彿',
+        brokeno: '鎶ユ鐮存湭琛�',
+        close: '鍏抽棴',
+        orderId: '璁㈠崟ID',
+        order: '璁㈠崟璇︽儏',
+        customerName: '瀹㈡埛鍚嶇О',
+        project: '椤圭洰鍚嶇О',
+        are: '闈㈢Н',
+        quantity: '袣芯谢懈褔械褋褌胁芯',
+        warehousing: '小芯褋褌芯褟薪懈械',
+        deliveryDate: '閫佽揣鏃堕棿',
+        notstocked: '鏈叆搴�',
+        inboundstatus: '閮ㄥ垎鍏ュ簱鐘舵��',
+        allstatus: '鍏ㄩ儴鍏ュ簱鐘舵��',
+        completedquantity: '瀹屾垚鏁伴噺',
+        scrapquantity: '鎶ュ簾鏁伴噺',
+        number: '袣芯谢懈褔械褋褌胁芯',
+        method: '鍔犲伐鏂瑰紡',
+        innumber: '宸插叆鏁伴噺',
+        productstatus: '鐢熶骇鐘舵��',
+        right: '姝e父',
+        stop: '缁堟',
+        inquire: '鏌ヨ',
+        starttime :'寮�濮嬫椂闂�',
+        endtime :'缁撴潫鏃堕棿',
+        loading :'姝e湪涓婄墖锛�',
+    },
+    reportmanage:{
+        productiontime :'鐢熶骇鏃堕棿',
+        starttime :'寮�濮嬫椂闂�',
+        endtime :'缁撴潫鏃堕棿',
+        ctype :'璇烽�夋嫨绫诲瀷',
+        cstate :'璇烽�夋嫨鐘舵��',
+        cprocess :'璇烽�夋嫨宸ュ簭',
+        all :'鍏ㄩ儴',
+        completed :'瀹屽伐',
+        broke :'袩芯胁褉械卸写械薪懈械',
+        takeout :'袙蟹褟褌褜',
+        dreportwork :'鏈姤宸�',
+        pendingwork :'宸茬幇琛�',
+        reportwork :'宸叉姤宸�',
+        reportworked :'宸插悓姝�',
+        incise :'鍒囧壊',
+        edging :'纾ㄨ竟',
+        steel :'袟邪泻邪谢泻邪',
+        inquire :'鏌ヨ',
+        signingwork :'鎶ュ伐',
+        reporteam :'鎶ュ伐鐝粍',
+        reportingequipment :'鎶ュ伐璁惧',
+        line :'袥懈薪懈褟',
+        process :'宸ュ簭',
+        glassID :'小褌械泻谢褟薪薪褘泄 ID',
+        projectnumber :'袧芯屑械褉 锌褉芯械泻褌邪',
+        layoutID :'效械褉褌械卸 ID 蟹邪谐褉褍蟹泻懈 锌械褔懈 写谢褟 蟹邪泻邪谢泻懈',
+        type :'绫诲瀷',
+        state :'小芯褋褌芯褟薪懈械',
+        processcards :'袣邪褉褌芯褔泻邪 锌褉芯褑械褋褋邪',
+        number :'小械褉懈泄薪 薪芯屑械褉',
+        layer :'灞�',
+        typebreakage :'鐮存崯绫诲瀷',
+        ptypebreakage :' 璇烽�夋嫨鐮存崯绫诲瀷',
+        causebreakage :'鐮存崯鍘熷洜',
+        pcausebreakage :'璇烽�夋嫨鐮存崯鍘熷洜',
+        responsibleprocess :'璐d换宸ュ簭',
+        responsiblepersonnel :'璐d换浜哄憳',
+        presponsiblepersonnel :'璇疯緭鍏ヨ矗浠讳汉鍛�',
+        responsibleteam :'璐d换鐝粍',
+        presponsibleteam :'璇烽�夋嫨璐d换鐝粍',
+        responsibleequipment :'璐d换璁惧',
+        presponsibleequipment :'璇烽�夋嫨璐d换璁惧',
+        remark :'澶囨敞',
+        premark :'璇疯緭鍏ュ娉�',
+    },
+    film:{
+        resetnumber:'鏋跺瓙鍙�',
+        fail:'澶辫触',
+        mes:'鍘熺墖浠撳偍璇︽儏',
+        warehousing:'鍘熺墖鍏ュ簱',
+        pwarehousing:'鍏ュ簱璇锋眰',
+        wareout:'鍘熺墖鍑哄簱',
+        information:'鏄惁鍑哄簱璇ユ潯淇℃伅锛�',
+        pwareout:'鍑哄簱璇锋眰',
+        position:'鍚婅浣嶏細',
+        cposition:'璇烽�夋嫨鍚婅浣�',
+        position1:'鍚婅浣�1',
+        position2:'鍚婅浣�2',
+        addglass:'鍘熺墖淇℃伅',
+        operate: '袨锌械褉邪褑懈褟',
+        exit:'袪械写邪泻褌芯褉',
+        delete:'校写邪谢',
+        outbound:'鍑哄簱',
+        deviceid:'璁惧ID',
+        enablestatea:'鍚敤鏍囪',
+        disable:'袨褌泻谢褞褔',
+        start:'袧邪褔邪谢芯',
+        startslot:'寮�濮嬪伐浣�',
+        endslot:'鐩爣宸ヤ綅',
+        slotid:'鏍煎瓙ID',
+        slot:'鏍煎瓙鍙�',
+        width:'楔懈褉懈薪邪 褋褌械泻谢邪',
+        widtha:'楔懈褉懈薪邪 褋褌械泻谢邪锛�',
+        inwidth:'璇疯緭鍏ュ師鐗囧',
+        height:'袙褘褋芯褌邪 褋褌械泻谢邪',
+        inheight:'璇疯緭鍏ュ師鐗囬珮',
+        heighta:'袙褘褋芯褌邪 褋褌械泻谢邪锛�',
+        thickness:'鍘熺墖鍘氬害',
+        inthickness:'璇疯緭鍏ュ師鐗囧帤搴�',
+        thicknessa:'鍘熺墖鍘氬害锛�',
+        films:'孝懈锌褘 锌芯泻褉褘褌懈泄',
+        infilms:'璇疯緭鍏ヨ啘绯�',
+        filmsa:'孝懈锌褘 锌芯泻褉褘褌懈泄锛�',
+        createtime:'鍒涘缓鏃堕棿',
+        remainquantity:'鍓╀綑鏁伴噺',
+        thickremainquant:'鍘熺墖鍓╀綑鏁伴噺锛堝紶锛�',
+        thickremainquantity:'鍘熺墖鍓╀綑鏁伴噺锛堝紶锛夛細',
+        inquantity:'袙胁械写懈褌械 泻芯谢褜褔械褋褌胁芯.',
+        quantitya:'袣芯谢懈褔械褋褌胁芯锛�',
+        enableid:'浠诲姟ID',
+        originateslot:'璧峰鏍煎瓙',
+        endoriginateslot:'鐩爣鏍煎瓙',
+        patternquantity:'鍘熺墖鏁伴噺',
+        enabletype:'浠诲姟绫诲瀷',
+        enablestate:'宸ヤ綅鐘舵��',
+        finish:'袟邪胁械褉褕械薪芯',
+        unfinish:'鏈畬鎴�',
+        dedelete:'鏄惁鍒犻櫎璇ユ潯鍐呭锛�',
+        dedisable:'鏄惁绂佺敤璇ユ潯鍐呭锛�',
+        deoutbound:'鏄惁鍑哄簱璇ユ潯鍐呭锛�',
+        selectwarehousing:'璇烽�夋嫨鍚婅浣�',
+        inwarehousing:'鍚婅浣嶏細',
+        warehousing1:'鍚婅浣�1',
+        warehousing2:'鍚婅浣�2',
+        starttime :'寮�濮嬫椂闂�',
+        endtime :'缁撴潫鏃堕棿',
+        taskstatus :'小芯褋褌芯褟薪懈械 蟹邪写邪褔懈',
+        built :'鏂板缓',
+        execution :'鎵ц涓�',
+        tasktype :'浠诲姟绫诲瀷',
+        stocke :'鍏ュ簱',
+        dispatch :'璋冨害',
+        inquire :'鏌ヨ',
+        station :'袪邪斜芯褔械械 屑械褋褌芯',
+    },
+    Mounting:{
+        previewproject: '閫夋嫨棰勮宸ョ▼',
+        loadinglinea: '涓婄墖绾�',
+        loadingline: '涓婄墖绾匡細',
+        inloadingline: '璇烽�夋嫨涓婄墖绾�',
+        oneloadingline: '涓�鍙蜂笂鐗囩嚎',
+        twoloadingline: '浜屽彿涓婄墖绾�',
+        waiting: '袞写械屑.',
+        pass: '效械褉械蟹',
+        setparameters: '璁剧疆鍙傛暟',
+        project: '袧芯屑械褉 锌褉芯械泻褌邪',
+        projecta: '袧芯屑械褉 锌褉芯械泻褌邪锛�',
+        width: '楔懈褉懈薪邪 褋褌械泻谢邪',
+        height: '袙褘褋芯褌邪 褋褌械泻谢邪',
+        thickness: '鍘熺墖鍘�',
+        projectnumber: '宸ョ▼鍘熺墖搴忓彿',
+        state: '小芯褋褌芯褟薪懈械',
+        createtime: '鍒涘缓鏃堕棿',
+        all: '鍏ㄩ��',
+        removalmethod: '璇烽�夋嫨闄よ啘鏂瑰紡',
+        removalmethodp: '闄よ啘鏂瑰紡',
+        removalmethoda: '闄よ啘鏂瑰紡锛�',
+        noremoval: '涓嶉櫎鑶�',
+        removal: '闄よ啘',
+        coarselyground: '绮楃(',
+        finegrinding: '绮剧(',
+    },
+    hellow: {
+        clickmakesure: '鏄惁纭鐐瑰嚮锛�',
+        logarithm: '瀵规暟锛�',
+        totalPairQuantitya: '浠诲姟鎬婚厤瀵规暟',
+        pairQuantitya: '宸插嚭閰嶅鏁�',
+        waitingout: '绛夊緟鍑虹墖',
+        finishout: '鍑虹墖瀹屾垚',
+        hollowSequence: '涓┖椤哄簭',
+        isPair: '鏄惁閰嶅',
+        no: '鍚�',
+        listFormula: '閰嶆柟淇℃伅',
+        HollowGlass: '闃熷垪淇℃伅',
+        totalLayer: '鎬诲眰鏁�',
+        totalPairQuantity: '鎬婚厤瀵规暟閲�',
+        pairQuantity: '宸插畬鎴愰厤瀵规暟閲�',
+        isForceList: '鏄惁寮哄埗',
+        yesisForceList: '寮哄埗',
+        noisForceList: '闈炲己鍒�',
+        hollowCountOutOne: '涓┖涓�绾跨幓鐠冩暟閲�',
+        hollowCountOutTwo: '涓┖浜岀嚎鐜荤拑鏁伴噺',
+        hollowTotalAreaOutOne: '涓┖涓�绾跨幓鐠冮潰绉�',
+        hollowTotalAreaOutTwo: '涓┖浜岀嚎鐜荤拑闈㈢Н',
+        countIn: '閽㈠寲鍓嶅ぇ鐞嗙墖绗肩幓鐠冩暟閲�',
+        countOut: '閽㈠寲鐜荤拑鏁伴噺',
+        countOutOne: '鍒囧壊涓�绾跨幓鐠冩暟閲�',
+        countOutTwo: '鍒囧壊浜岀嚎鐜荤拑鏁伴噺',
+        totalAreaIn: '閽㈠寲鍓嶅ぇ鐞嗙墖绗肩幓鐠冮潰绉�',
+        totalAreaOut: '閽㈠寲鐜荤拑闈㈢Н',
+        totalAreaOutOne: '鍒囧壊涓�绾跨幓鐠冮潰绉�',
+        totalAreaOutTwo: '鍒囧壊浜岀嚎鐜荤拑闈㈢Н',
+        freeone: '涓�绾跨┖闂茬姸鎬侊細',
+        freetwo: '浜岀嚎绌洪棽鐘舵�侊細',
+        freethree: '涓夌嚎绌洪棽鐘舵�侊細',
+        casFour: '姘斾綋4',
+        casFourb: '姘斾綋4锛�',
+        casFoura: '璇烽�夋嫨姘斾綋4',
+        casOne: '姘斾綋1',
+        casOneb: '姘斾綋1锛�',
+        casOnea: '璇烽�夋嫨姘斾綋1',
+        casThree: '姘斾綋3',
+        casThreeb: '姘斾綋3锛�',
+        casThreea: '璇烽�夋嫨姘斾綋3',
+        casTwo: '姘斾綋2',
+        casTwob: '姘斾綋2锛�',
+        casTwoa: '璇烽�夋嫨姘斾綋2',
+        Y: '鏈�',
+        F: '鏃�',
+        frameFour: '闂撮殧鏉�4',
+        frameFourb: '闂撮殧鏉�4锛�',
+        frameFoura: '璇疯緭鍏ラ棿闅旀澘4',
+        frameOne: '闂撮殧鏉�1',
+        frameOneb: '闂撮殧鏉�1锛�',
+        frameOnea: '璇疯緭鍏ラ棿闅旀澘1',
+        frameThree: '闂撮殧鏉�3',
+        frameThreeb: '闂撮殧鏉�3锛�',
+        frameThreea: '璇疯緭鍏ラ棿闅旀澘3',
+        frameTwo: '闂撮殧鏉�2',
+        frameTwob: '闂撮殧鏉�2锛�',
+        frameTwoa: '璇疯緭鍏ラ棿闅旀澘2',
+        intervalFrameHeightOne: '闂撮殧妗嗛珮搴�1',
+        intervalFrameHeightTwo: '闂撮殧妗嗛珮搴�2',
+        intervalFrameHeightThree: '闂撮殧妗嗛珮搴�3',
+        intervalFrameHeightFour: '闂撮殧妗嗛珮搴�4',
+        intervalFrameHeightaOne: '璇疯緭鍏ラ棿闅旀楂樺害1',
+        intervalFrameHeightaTwo: '璇疯緭鍏ラ棿闅旀楂樺害2',
+        intervalFrameHeightaThree: '璇疯緭鍏ラ棿闅旀楂樺害3',
+        intervalFrameHeightaFour:  '璇疯緭鍏ラ棿闅旀楂樺害4',
+        intervalFrameHeightbOne: '闂撮殧妗嗛珮搴�1锛�',
+        intervalFrameHeightbTwo: '闂撮殧妗嗛珮搴�2锛�',
+        intervalFrameHeightbThree: '闂撮殧妗嗛珮搴�3锛�',
+        intervalFrameHeightbFour:  '闂撮殧妗嗛珮搴�4锛�',
+        intervalFrameTypeOne: '闂撮殧妗嗙被鍨�1',
+        intervalFrameTypeTwo: '闂撮殧妗嗙被鍨�2',
+        intervalFrameTypeThree: '闂撮殧妗嗙被鍨�3',
+        intervalFrameTypeFour: '闂撮殧妗嗙被鍨�4',
+        intervalFrameTypecOne: '璇烽�夋嫨闂撮殧妗嗙被鍨�1',
+        intervalFrameTypecTwo: '璇烽�夋嫨闂撮殧妗嗙被鍨�2',
+        intervalFrameTypecThree: '璇烽�夋嫨闂撮殧妗嗙被鍨�3',
+        intervalFrameTypecFour: '璇烽�夋嫨闂撮殧妗嗙被鍨�4',
+        intervalFrameTypedOne: '闂撮殧妗嗙被鍨�1锛�',
+        intervalFrameTypedTwo: '闂撮殧妗嗙被鍨�2锛�',
+        intervalFrameTypedThree: '闂撮殧妗嗙被鍨�3锛�',
+        intervalFrameTypedFour: '闂撮殧妗嗙被鍨�4锛�',
+        intervalFrameTypea: 'tps鑳�',
+        intervalFrameTypeb: '閾濋棿闅旀潯',
+        intervalFrameWidthOne: '闂撮殧妗嗗搴�1',
+        intervalFrameWidthTwo: '闂撮殧妗嗗搴�2',
+        intervalFrameWidthThree: '闂撮殧妗嗗搴�3',
+        intervalFrameWidthFour:  '闂撮殧妗嗗搴�4',
+        intervalFrameWidthaOne: '璇疯緭鍏ラ棿闅旀瀹藉害1',
+        intervalFrameWidthaTwo: '璇疯緭鍏ラ棿闅旀瀹藉害2',
+        intervalFrameWidthaThree: '璇疯緭鍏ラ棿闅旀瀹藉害3',
+        intervalFrameWidthaFour:  '璇疯緭鍏ラ棿闅旀瀹藉害4',
+        intervalFrameWidthbOne: '闂撮殧妗嗗搴�1锛�',
+        intervalFrameWidthbTwo: '闂撮殧妗嗗搴�2锛�',
+        intervalFrameWidthbThree: '闂撮殧妗嗗搴�3锛�',
+        intervalFrameWidthbFour:  '闂撮殧妗嗗搴�4锛�',
+        sealInsert: '瀵嗗皝宓屽叆',
+        sealInsertb: '瀵嗗皝宓屽叆锛�',
+        sealInserta: '璇疯緭鍏ュ瘑灏佸祵鍏�',
+        hollowformula: '涓┖閰嶆柟',
+        hollowformuldet: '鏄惁鍒犻櫎璇ヤ腑绌洪厤鏂癸紵',
+        hollowtaskdet: '鏄惁鍒犻櫎璇ヤ换鍔★紵',
+        taskdet: '鍒犻櫎浠诲姟',
+        edithollowformula: '淇敼涓┖閰嶆柟',
+        phollowformula: '璇烽�夋嫨涓┖閰嶆柟',
+        hollowformulp: '涓┖閰嶆柟锛�',
+        bottomRemove: '涓嬩晶闄よ啘閲忥細',
+        bottomRemovep: '涓嬩晶闄よ啘閲�',
+        bottomRemovea: '璇疯緭鍏ヤ笅渚ч櫎鑶滈噺',
+        topRemove: '涓婁晶闄よ啘閲忥細',
+        topRemovep: '涓婁晶闄よ啘閲�',
+        topRemovea: '璇疯緭鍏ヤ笂渚ч櫎鑶滈噺',
+        leftRemove: '宸︿晶闄よ啘閲忥細',
+        leftRemovep: '宸︿晶闄よ啘閲�',
+        leftRemovea: '璇疯緭鍏ュ乏渚ч櫎鑶滈噺',
+        rightRemove: '鍙充晶闄よ啘閲忥細',
+        rightRemovep: '鍙充晶闄よ啘閲�',
+        rightRemovea: '璇疯緭鍏ュ彸渚ч櫎鑶滈噺',
+        formulaNamep: '閰嶆柟鍚�',
+        formulaName: '閰嶆柟鍚嶏細',
+        formulaNamea: '璇疯緭鍏ラ厤鏂瑰悕',
+        stopproject: '鏆傚仠浠诲姟',
+        pstopproject: '鏄惁鏆傚仠浠诲姟锛�',
+        reviewproject: '棰勮宸ョ▼',
+        line: '绾胯矾',
+        linea: '绾胯矾锛�',
+        line1: '绾胯矾涓�',
+        line2: '绾胯矾浜�',
+        line3: '绾胯矾涓�',
+        createtask: '鍒涘缓浠诲姟',
+        starttask: '寮�濮嬩换鍔�',
+        pstarttask: '鏄惁寮�濮嬩换鍔★紵',
+        stoptask: '鍋滄浠诲姟',
+        pstoptask: '鏄惁鍋滄浠诲姟锛�',
+        currenttask: '褰撳墠浠诲姟锛�',
+        claimednumber: '宸查鍙栭厤瀵规暟閲忥細',
+        linenumber: '杩涘叆涓┖绾挎暟閲忥細',
+        order: '鍑虹墖椤哄簭',
+        flowCardId: '娴佺▼鍗�',
+        thickness: '鍘氬害',
+        coatingtypes: '鑶滅郴',
+        layer: '灞傛暟',
+        height: '闀�',
+        width: '瀹�',
+        state: '鐘舵��',
+        cardnumber: '娴佺▼鍗″彿',
+        cardnumbera: '娴佺▼鍗″彿锛�',
+        layernumber: '灞傚彿',
+        totalnumber: '鎬荤墖鏁�',
+        pairsnumber: '宸查厤瀵规暟閲�',
+        missingnumber: '缂虹墖鏁伴噺',
+        damagenumber: '鐮存崯鏁伴噺',
+        operate: '鎿嶄綔',
+        claimquest: '棰嗗彇浠诲姟',
+        pclaimquest: '鏄惁棰嗗彇浠诲姟锛�',
+        missingfilms: '缂虹墖璇︽儏',
+        forcedfilming: '寮哄埗鍑虹墖',
+        pforcedfilming: '鏄惁寮哄埗鍑虹墖锛�',
+        brokenpieces: '鐮存崯鐗囨暟',
+        realpieces: '瀹為檯鐗囨暟',
+        route: '璺嚎锛�',
+        croute: '璇烽�夋嫨璺嚎',
+        ptotalpairQuantity: '鎬婚厤瀵规暟閲忥細',
+        cpairQuantity: '璇疯緭鍏ユ�婚厤瀵规暟閲�',
+        schedulingswitch: '璋冨害寮�鍏�',
+    },
+    screendisplay:{
+        pchoice: '璇烽�夋嫨',
+        pwidth: '璇疯緭鍏ュ搴�',
+        pheight: '璇疯緭鍏ラ珮搴�',
+        upnumber: '涓婄墖鏁伴噺',
+    }
+}
\ No newline at end of file
diff --git a/UI-Project/src/lang/zh.js b/UI-Project/src/lang/zh.js
new file mode 100644
index 0000000..762e03b
--- /dev/null
+++ b/UI-Project/src/lang/zh.js
@@ -0,0 +1,929 @@
+export  default {
+    "northglassMESsystem": "鍖楃幓MES绯荤粺",
+      login:{
+          userErr:'璇疯緭鍏ヨ处鍙�',
+          pwErr:'璇疯緭鍏ュ瘑鐮�',
+          user:'璐﹀彿',
+          password:'瀵嗙爜',
+          login:'鐧诲綍',
+          loginSuccessful:'鐧诲綍鎴愬姛锛�',
+          register:'娉ㄥ唽',
+          namea:'濮撳悕涓嶈兘涓虹┖',
+          len:'闀垮害涓嶈兘瓒呰繃16',
+          passnull:'瀵嗙爜涓嶈兘涓虹┖',
+          leng:'瀵嗙爜闀垮害涓嶈兘浣庝簬6鎴栬秴杩�16',
+          spwn:'纭瀵嗙爜涓嶈兘涓虹┖',
+          depass:'涓ゆ瀵嗙爜涓嶇浉鍚�',
+      },
+      register:{
+          registerSuccessful:'娉ㄥ唽鎴愬姛',
+          newuserregister:'娉ㄥ唽鏂扮敤鎴�',
+          name:'濮撳悕锛�',
+          inputname:'璇疯緭鍏ュ鍚�',
+          password:'瀵嗙爜:',
+          pwErr:'璇疯緭鍏ュ瘑鐮�',
+          passwordation:'纭瀵嗙爜:',
+          pwErration:'璇风‘璁ゅ瘑鐮�',
+          registration:'纭娉ㄥ唽',
+          false:'鍙栨秷',
+      },
+      main:{
+          connectErr:'鏈嶅姟鍣ㄨ繛鎺ュ紓甯革紝璇风◢鍚庡啀璇�',
+          titleFirst:"娆㈣繋 ",
+          titleLast:' 浣跨敤鍖楃幓MES绯荤粺锛�',
+          quit:"閫�鍑�",
+      },
+      basicData:{
+          untask:'鏃犱换鍔�',
+          tonumber:'涓婄墖鎬绘暟閲�',
+          finishnumber:'宸插畬鎴愭暟閲�',
+          rackreset:'鏋跺瓙澶嶄綅',
+          prackreset:'鏄惁鏋跺瓙澶嶄綅锛�',
+          laserprinting:'鎵撴爣鏈哄氨缁姸鎬侊細',
+          cuttingmachine:'鍒囧壊鏈哄氨缁姸鎬侊細',
+          machine:'涓婄墖鏈鸿仈鏈虹姸鎬侊細',
+          machineaa:'涓婄墖鏈烘墜鍔ㄧ姸鎬侊細',
+          selectproject:"閫夋嫨宸ョ▼",
+          startloading:'寮�濮嬩笂鐗�',
+          stop:'鏆傚仠',
+          yes:'纭',
+          change:'鍒囨崲',
+          projectnumber:'宸ョ▼鍙�',
+          glasswidth:'鍘熺墖瀹�',
+          glassheight:'鍘熺墖楂�',
+          coatingtypes:'鑶滅郴',
+          coatingtypesa:'鑶滅郴锛�',
+          quantity:'鏁伴噺',
+          quantitya:'鏁伴噺锛�',
+          thickness:'鍘氬害',
+          thicknessa:'鍘氬害锛�',
+          startstatus:'鍚敤鐘舵��',
+          pass:'閫氳繃',
+          waiting:'绛夊緟涓�',
+          up:'涓婄墖涓�',
+          finish:'宸插畬鎴�',
+          project:'宸ョ▼',
+          plselectproject:'璇烽�夋嫨宸ョ▼',
+          confirm:'纭',
+          cancel:'鍙栨秷',
+          startfilm:'鏄惁寮�濮嬩笂鐗囷紵',
+          whetherpause:'鏄惁鏆傚仠锛�',
+          station:'宸ヤ綅',
+          width:'瀹�',
+          widtha:'瀹斤細',
+          height:'楂�',
+          heighta:'楂橈細',
+          operate:'鎿嶄綔',
+          add:'娣诲姞',
+          delete:'鍒犻櫎',
+          addglass:'娣诲姞鍘熺墖',
+          selectwidth:'璇烽�夋嫨瀹�',
+          selectheight:'璇烽�夋嫨楂�',
+          selectcoatingtypes:'璇烽�夋嫨鑶滅郴',
+          selectthickness:'璇烽�夋嫨鍘氬害',
+          selectquantity:'璇疯緭鍏ユ暟閲�',
+          pause:'绗簩琛屽拰绗洓琛岀殑楂樺繀椤诲ぇ浜�2700鎵嶈兘淇濆瓨锛�',
+          pausea:'璇风‘璁ゆ墦鏍囨満鍜屽垏鍓叉満鐨勫氨缁姸鎬侊紒',
+          infonull:'宸ョ▼鍙蜂笉鑳戒负绌猴紒',
+          updatanull:'璇ュ伐绋嬫湭淇濆瓨鍒颁笂鐗囪〃锛�',
+          glassnull:'鏇存柊鐜荤拑鐘舵�佹椂鍙戠敓閿欒',
+          deletemessage:'鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+          layoutSequence:'搴忓彿',
+      },
+      sorter:{
+          onesort:'涓�绾挎幇鐗�',
+          twosort:'浜岀嚎鎺扮墖',
+          inPlace:'鍒颁綅',
+          ninPlace:'鏈埌浣�',
+          emptymissions:'绌轰换鍔�',
+          advancetask:'杩涚墖浠诲姟',
+          outputtasks:'鍑虹墖浠诲姟',
+          schedulingtasks:'璋冨害浠诲姟',
+          advancerequests:'杩涚墖璇锋眰',
+          releaserequest:'鍑虹墖璇锋眰',
+          straighttasks:'鐩撮�氫换鍔�',
+          endingtask:'缁撴潫',
+          another:'鍏朵粬',
+          id:'纾ㄨ竟鍓嶇悊鐗囩琛↖D',
+          remainWidth:'鍓╀綑',
+          taskRunning:'浠诲姟璇锋眰',
+          updateTime:'鏇存柊鏃堕棿',
+          place:'鏄惁鍒颁綅',
+          layernow:'褰撳墠灞傚彿',
+          gridnumber:'鏍呮牸鍙�',
+          glassnumber:'鐜荤拑缂栧彿',
+          width:'瀹�',
+          height:'楂�',
+          startstatus:'鍚敤鐘舵��',
+          disable:'宸茬鐢�',
+          start:'宸插惎鐢�',
+          deficiencieste:'鎶ョ己',
+          updown:'浜哄伐涓嬬墖',
+          operate:'鎿嶄綔',
+          prompt:'鎻愮ず',
+          information:'鏄惁鎶ョ己璇ユ潯淇℃伅锛�',
+          infor:'鏄惁浜哄伐涓嬬墖璇ユ潯淇℃伅锛�',
+          yes:'鏄�',
+          cancel:'鍙栨秷',
+      },
+      order:{
+          projectnumber:'璇疯緭鍏ュ伐绋嬪彿',
+          dilapidation:'鐮存崯',
+          takeaway:'浜哄伐鎷胯蛋',
+          takeawaya:'鏄惁浜哄伐鎷胯蛋璇ユ潯淇℃伅锛�',
+          takeon:'鎽嗙墖瀹屾垚',
+      },
+      searchOrder:{
+          furnaces:'婊$倝鐐夋暟',
+          furnfullTemp:'鐜荤拑鎬婚噺',
+          startCell:'鐩爣灞傚彿',
+          endCell:'棰勭暀灞傚彿',
+          begin:'寮�濮�',
+          finish:'瀹屾垚',
+          uncar:'鏈笂杞�',
+          inkage:'杩涚墖',
+          successfullyprocessed:'浠诲姟鎴愬姛澶勭悊',
+          psuccessfullyprocessed:'鏄惁杩涜浠诲姟鎴愬姛澶勭悊锛�',
+          taskfailure:'浠诲姟澶辫触澶勭悊',
+          ptaskfailure:'鏄惁杩涜浠诲姟澶辫触澶勭悊锛�',
+          totallogarithms:'鎬诲鏁�',
+          numberpairs:'閰嶅鏁�',
+          numberoccupied:'鍗犵敤鏍煎瓙鏁�',
+          totalfurnaces:'鎬荤倝鏁�',
+          cagesnumber:'绗煎唴鏁伴噺',
+          slotnumber:'鍗犳湁鏍煎瓙鏁�',
+          progress:'杩涘害%',
+          whethersame:'鏄惁鐩稿悓',
+          same:'鐩稿悓',
+          notsame:'涓嶇浉鍚�',
+          partask:'浠诲姟閲嶇疆',
+          partasks:'鏄惁浠诲姟閲嶇疆锛�',
+          empty:'榛樿绌轰换鍔�',
+          historicaltasks:'鍘嗗彶浠诲姟',
+          cagedetails:'绗煎唴璇︽儏',
+          inkageEntity:'杩涚墖鑱旀満鐘舵�侊細',
+          requestEntity:'杩涚墖璇锋眰鐘舵�侊細',
+          mesReplyEntity:'鍚姩鍛戒护锛�',
+          outInkageEntity:'鍑虹墖鑱旀満鐘舵�侊細',
+          outRequestEntity:'鍑虹墖璇锋眰鐘舵�侊細',
+          breakagn:'鏈牬鎹�',
+          lacknumber:'缂虹墖鏁伴噺',
+          processcard:'鎸囧畾娴佺▼鍗�',
+          filminformation:'浜哄伐涓嬬墖淇℃伅',
+          currentglassinformation:'鎵爜鏋綋鍓嶇幓鐠冧俊鎭�',
+          printlabels:'鎵撳嵃鏍囩',
+          deleteTask:'缁撴潫宸ョ▼',
+          pdeleteTask:'鏄惁缁撴潫宸ョ▼锛�',
+          searchlayout:'闈為挗鍖栨祦绋嬪崱鏌ヨ',
+          fullfurnaces:'婊$倝鏁伴噺',
+          specifiedproject:'褰撳墠鎸囧畾宸ョ▼',
+          undesignate:'鍙栨秷閽㈠寲',
+          allnumber:'鎬绘暟閲�',
+          numbercages:'绗煎瓙鍐呮暟閲�',
+          missingquantity:'缂哄皯鏁伴噺',
+          breakquantity:'鐮存崯/鎷胯蛋鏁伴噺',
+          ceng:'灞�',
+          cageinformation:'鐞嗙墖绗间俊鎭�',
+          productionqueue:'鍑虹墖闃熷垪',
+          outputglassID:'鍑虹墖鐜荤拑ID',
+          startposition:'璧峰浣嶇疆',
+          targetlocation:'鐩爣浣嶇疆',
+          trips:'杞︽',
+          number:'搴忓彿',
+          taskstatus:'浠诲姟鐘舵��',
+          filmenter:'绛夊緟杩涚墖',
+          infilm:'杩涜涓�',
+          endtask:'缁撴潫浠诲姟',
+          completetask:'瀹屾垚浠诲姟',
+          intoglassid:'杩涚墖鐜荤拑ID',
+          line:'绾胯矾',
+          Usage:'浣跨敤鐜�',
+          free:'绌洪棽锛堟牸瀛愭暟锛�',
+          addcage:'娣诲姞鐞嗙墖绗间俊鎭�',
+          glassIDa:'鐜荤拑ID锛�',
+          glassID:'鐜荤拑ID',
+          inglassID:'璇疯緭鍏ョ幓鐠僆D',
+          pieceingrid:'灏忕墖鍦ㄦ牸鍐呯殑椤哄簭',
+          pieceingrida:'灏忕墖鍦ㄦ牸鍐呯殑椤哄簭锛�',
+          inpieceingrid:'璇疯緭鍏ュ皬鐗囧湪鏍煎唴鐨勯『搴�',
+          cardnumber:'娴佺▼鍗″彿',
+          cardnumbera:'娴佺▼鍗″彿锛�',
+          incardnumber:'璇疯緭鍏ユ祦绋嬪崱鍙�',
+          typeglass:'鐜荤拑绫诲瀷',
+          typeglassa:'鐜荤拑绫诲瀷锛�',
+          intypeglass:'璇疯緭鍏ョ幓鐠冪被鍨�',
+          width:'瀹�',
+          widtha:'瀹斤細',
+          inwidth:'璇疯緭鍏ュ',
+          height:'楂�',
+          heighta:'楂橈細',
+          inheight:'璇疯緭鍏ラ珮',
+          coatingtypes:'鑶滅郴',
+          thickness:'鍘氬害',
+          thicknessa:'鍘氬害锛�',
+          inthickness:'璇疯緭鍏ュ帤搴�',
+          layoutID:'閽㈠寲鐗堝浘ID',
+          layoutIDa:'閽㈠寲鐗堝浘ID锛�',
+          inlayoutID:'璇疯緭鍏ラ挗鍖栫増鍥綢D',
+          picturesequence:'閽㈠寲鐗堝浘鐗囧簭',
+          picturesequencea:'閽㈠寲鐗堝浘鐗囧簭锛�',
+          inpicturesequence:'璇疯緭鍏ラ挗鍖栫増鍥剧墖搴�',
+          startstatus:'鍚敤鐘舵��',
+          startstatusa:'鍚敤鐘舵�侊細',
+          instartstatus:'璇疯緭鍏ュ惎鐢ㄧ姸鎬�',
+          glassgaps:'鐜荤拑闂撮殭',
+          glassgapsa:'鐜荤拑闂撮殭锛�',
+          inglassgaps:'璇疯緭鍏ョ幓鐠冮棿闅�',
+          sure:'纭',
+          cancel:'鍙栨秷',
+          operate:'鎿嶄綔',
+          breakage:'鐮存崯',
+          delete:'鍒犻櫎',
+          outfilm:'鍑虹墖',
+          cagetableID:'澶х悊鐗囩琛↖D',
+          cagenumber:'鐞嗙墖绗煎彿',
+          gridnumber:'鏍呮牸鍙�',
+          gridnumbera:'鏍呮牸鍙凤細',
+          grid:'璇疯緭鍏ユ爡鏍煎彿',
+          enable:'宸插惎鐢�',
+          disable:'宸茬鐢�',
+          remainingwidth:'鍓╀綑瀹藉害',
+          add:'娣诲姞',
+          sheetID:'閽㈠寲灏忕墖淇℃伅琛↖D',
+          processcards:'娴佺▼鍗�',
+          processcardtype:'娴佺▼鍗$幓鐠冪被鍨�',
+          acceptshorizontal:'閽㈠寲鏄惁鎺ュ彈妯斁',
+          xcoordinates:'x鍧愭爣',
+          ycoordinates:'y鍧愭爣',
+          rotationangle:'鏃嬭浆瑙掑害锛堥�嗘椂閽堬級',
+          state:'鐘舵��',
+          takeout:'鎷胯蛋',
+          deletemessage:'鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+          prompt:'鎻愮ず',
+          yes:'鏄�',
+          accept:'鎺ュ彈',
+          noaccept:'涓嶆帴鍙�',
+          filmcomplete:'鍑虹墖瀹屾垚',
+          waiting:'绛夊緟涓�',
+          broke:'鏄惁鐮存崯璇ユ潯淇℃伅锛�',
+          brokeb:'鏄惁鎷胯蛋璇ユ潯淇℃伅锛�',
+          outfil:'鏄惁鍑虹墖璇ユ潯淇℃伅锛�',
+          inputid:'璇疯緭鍏ョ幓鐠僆D',
+          search:'鎼滅储',
+          tabid:'澶х悊鐗囩璇︽儏琛╥d',
+          tid:'璁惧id',
+          tida:'璁惧id锛�',
+          fin:'鏄惁瀹屾垚浠诲姟锛�',
+          sureadd:'纭娣诲姞',
+          sureadda:'鏄惁纭娣诲姞锛�',
+          zailong:'鍦ㄧ涓�',
+          rengongxp:'浜哄伐涓嬬墖',
+          up:'涓婁竴椤�',
+          down:'涓嬩竴椤�',
+          now:'褰撳墠椤垫樉绀�',
+          tit:'鏉℃暟鎹�',
+          temperingqueries:'閽㈠寲鏌ヨ',
+          specifytempering:'鎸囧畾涓�鐐�',
+          specifyout:'鎸囧畾浜哄伐鍑虹墖',
+          specifyengineerid:'鎸囧畾宸ョ▼',
+          projectnumber:'宸ョ▼鍙�',
+          layoutnumber:'閽㈠寲鐗堝浘鍙�',
+          numberglasses:'鐜荤拑鏁伴噺',
+          specifytemperinga:'璇风‘璁よ澶囨槸鍚﹀凡鍏抽棴MES鑱旀満锛�',
+          temperedswitch:'閽㈠寲寮�鍏�',
+          dutyinformation:'鍊肩彮淇℃伅',
+          process:'宸ュ簭',
+          team:'鐝粍',
+          basic:'璁惧',
+          makesure:'纭淇濆瓨',
+          temperingtotal:'閽㈠寲鐐夋暟锛�',
+          glasstotal:'鐜荤拑鎬绘暟锛�',
+          Labelprinting:'鏍囩鎵撳嵃',
+          Schedulingswitch:'璋冨害寮�鍏�',
+      },
+      workOrder:{
+          upnumber:'涓婄墖浣嶇紪鍙�',
+          glassID:'鐜荤拑ID',
+          height:'楂�',
+          width:'瀹�',
+          thickness:'鍘氬害',
+          coatingtypes:'鑶滅郴',
+          coatingtypesbe:'鍘熺墖鑶滅郴',
+          productionsequence:'鍑虹墖椤哄簭',
+          cardnumber:'娴佺▼鍗″彿',
+          operate:'鎿嶄綔',
+          messagedamaged:'鏄惁鐮存崯璇ユ潯淇℃伅?',
+          prompt:'鎻愮ず',
+          yes:'鏄�',
+          cancel:'鍙栨秷',
+          takemessage:'鏄惁鎷胯蛋璇ユ潯淇℃伅锛�',
+          breakage:'鐮存崯',
+          takeout:'鎷胯蛋',
+          glasstype:'鐜荤拑鑶滅郴',
+          line:'绾胯矾',
+          status:'鐘舵��',
+          time:'鏃堕棿娈�',
+          cway:'璇烽�夋嫨绾胯矾',
+          cstate:'璇烽�夋嫨鐘舵��',
+          edgingone:'纾ㄨ竟涓�绾�',
+          edgingtwo:'纾ㄨ竟浜岀嚎',
+          nedging:'鏈(杈�',
+          edging:'纾ㄨ竟涓�',
+          finedging:'宸茬(杈�',
+      },
+      processCard:{
+          intofurnace:'杩涚倝涓�',
+          beforefurnace:'杩涚倝鍓�',
+          outfurnace:'宸插嚭鐐夌幓鐠�',
+          print:'鎷胯蛋鎵撳嵃',
+          printing:'鎵撳嵃',
+          projectnumber:'璇疯緭鍏ュ伐绋嬪彿',
+          inquire:'鏌ヨ',
+          project:'宸ョ▼鍙�',
+          awayprocess:'鎷胯蛋宸ュ簭',
+          awayequipment:'鎷胯蛋璁惧',
+          awayteam:'鎷胯蛋鐝粍',
+          flowcard:'娴佺▼鍗�',
+          layer:'灞傚彿',
+          temperinglayout:'鐐夊彿',
+          temperingfeed:'鐗囧簭',
+          width:'瀹�',
+          height:'楂�',
+          thickness:'鍘�',
+          glasstakeout:'鐜荤拑鎷胯蛋娓呭崟',
+          layoutID:'鐗堝浘ID',
+          glassID:'鐜荤拑ID',
+      },
+      reportWork:{
+          details:'钀芥灦璇︽儏',
+          filming:'浜哄伐涓嬬墖',
+          printing:'鑷姩鎵撳嵃',
+          cenumber:'灞傛暟',
+          artificialorder:'浜哄伐涓嬬墖鏁�',
+          processcard:'鎵撳嵃娴佺▼鍗�',
+          printlabels:'鎵撳嵃鏍囩',
+          information:'钀芥灦淇℃伅',
+          cstation:'璇烽�夋嫨宸ヤ綅',
+          all:'鍏ㄩ儴',
+          timeperiod:'鏃堕棿娈�',
+          stationnumber:'宸ヤ綅鍙�',
+          order:'椤哄簭',
+          filminformation:'浜哄伐涓嬬墖淇℃伅',
+          glassmation:'浜哄伐涓嬬墖褰撳墠鐜荤拑淇℃伅',
+          barcodescanner:'鎵爜鏋綋鍓嶇幓鐠冧俊鎭�',
+          lowerbit:'涓嬬墖浣�',
+          shelfnumber:'鏋跺彿',
+          cardnumber:'娴佺▼鍗″彿',
+          totalquantity:'鎬绘暟閲�',
+          beendropped:'宸茶惤鏋舵暟閲�',
+          state:'鐘舵��',
+          devicenumber:'璁惧鍙�',
+          startstatus:'鍚敤鐘舵��',
+          enable:'宸插惎鐢�',
+          unenable:'鏈惎鐢�',
+          operate:'鎿嶄綔',
+          bindingshelves:'缁戝畾鏋跺瓙',
+          clear:'娓呯┖',
+          workstation:'鍙峰伐浣�',
+          shelfnumbera:'鏋跺彿锛�',
+          cardnumbera:'娴佺▼鍗″彿锛�',
+          incardnumber:'璇烽�夋嫨娴佺▼鍗″彿',
+          clearglass:'娓呴櫎鏋跺瓙鐜荤拑',
+          sure:'纭',
+          cancel:'鍙栨秷',
+          glassinformation:'鐜荤拑淇℃伅',
+          glassID:'鐜荤拑ID',
+          coatingtypes:'鑶滅郴',
+          thickness:'鍘氬害',
+          width:'瀹藉害',
+          height:'楂樺害',
+      },
+      productStock:{
+          addconfigName:'娣诲姞閰嶇疆',
+          editconfigName:'淇敼閰嶇疆',
+          configName:'閰嶇疆鍚�',
+          configNamea:'閰嶇疆鍚嶏細',
+          configCode:'閰嶇疆浠g爜',
+          configValue:'閰嶇疆鍊�',
+          configValuea:'閰嶇疆鍊硷細',
+          addusers:'娣诲姞鐢ㄦ埛',
+          username:'鐢ㄦ埛鍚�',
+          usernamea:'鐢ㄦ埛鍚嶏細',
+          inusername:'璇疯緭鍏ョ敤鎴峰悕',
+          role:'瑙掕壊',
+          rolea:'瑙掕壊锛�',
+          inrole:'璇烽�夋嫨瑙掕壊',
+          test:'娴嬭瘯',
+          admin:'绠$悊鍛�',
+          operate:'鎿嶄綔',
+          resetpassword:'閲嶇疆瀵嗙爜',
+          exit:'缂栬緫',
+          delete:'鍒犻櫎',
+          prompt:'鎻愮ず',
+          repassword:'鏄惁閲嶇疆鐢ㄦ埛瀵嗙爜锛�',
+          yes:'鏄�',
+          cancel:'鍙栨秷',
+          reusername:'淇敼鐢ㄦ埛',
+          addusername:'娣诲姞鐢ㄦ埛',
+          password:'瀵嗙爜锛�',
+          sure:'纭',
+          inpassword:'璇疯緭鍏ュ瘑鐮�',
+          deusername:'鏄惁鍒犻櫎璇ョ敤鎴凤紵',
+      },
+      customer:{
+          addmenua:'娣诲姞浜岀骇鑿滃崟',
+          addmenu:'娣诲姞涓�绾ц彍鍗�',
+          firstmenu:'涓�绾ц彍鍗曟爮',
+          firstmenuname:'涓�绾ц彍鍗曞悕绉�:',
+          link:'閾炬帴',
+          inlink:'璇疯緭鍏ラ摼鎺�',
+          linka:'閾炬帴锛�',
+          sort:'鎺掑簭',
+          insort:'璇疯緭鍏ユ帓搴�',
+          sorta:'鎺掑簭锛�',
+          operate:'鎿嶄綔',
+          exit:'缂栬緫',
+          delete:'鍒犻櫎',
+          semenu:'浜岀骇鑿滃崟鏍�',
+          semenuname:'浜岀骇鑿滃崟鍚嶇О:',
+          menu:'鑿滃崟鏍忥細',
+          inmenu:'璇疯緭鍏ヨ彍鍗曞悕绉�',
+          sure:'纭',
+          cancel:'鍙栨秷',
+          exmene:'淇敼涓�绾ц彍鍗�',
+          exmenea:'淇敼浜岀骇鑿滃崟',
+          yes:'鏄�',
+          demenu:'鏄惁鍒犻櫎璇ヨ彍鍗曪紵', 
+          prompt:'鎻愮ず',
+      },
+      delivery:{
+          addrole:'娣诲姞瑙掕壊',
+          editrole:'淇敼瑙掕壊',
+          role :'瑙掕壊',
+          rolea :'瑙掕壊锛�',
+          inrole :'璇疯緭鍏ヨ鑹�',
+          operate :'鎿嶄綔',
+          edit :'缂栬緫',
+          delete :'鍒犻櫎',
+          yes:'鏄�',
+          sure :'纭',
+          cancel :'鍙栨秷',
+          derole :'鏄惁鍒犻櫎璇ヨ鑹�',
+          prompt:'鎻愮ず',
+          choice:'鑿滃崟鏉冮檺锛�',
+          inchoice:'璇烽�夋嫨鑿滃崟鏉冮檺',
+      },
+      replenish:{
+          patchManagement:'琛ョ墖绠$悊',
+      },
+      rework:{
+          reworkManagement:'杩斿伐绠$悊',
+          addRework:"杩斿伐鏂板 ",
+      },
+      role:{
+          id:'ID',
+          characterHomepage:'瑙掕壊棣栭〉',
+      },
+      user:{
+          userId:'鐢ㄦ埛ID',
+          userHomepage:'鐢ㄦ埛棣栭〉',
+      },
+      orderBasicData:{
+          order:'璁㈠崟',
+          orderType:'璁㈠崟绫诲瀷',
+      },
+      machine:{
+          basicId:'璁惧缂栧彿',
+          basicName:'璁惧鍚嶇О',
+          basicCategory:'鎵�鍦ㄥ伐搴�',
+          tempering:'閽㈠寲',
+      },
+      report:{
+          productionReport:'鐢熶骇鎶ヨ〃',
+          workInProgressReport:'鍦ㄥ埗鍝佹姤琛�',
+      },
+      productionBasicData:{
+          basicDataQuery :'鍩虹鏁版嵁鏌ヨ',
+      },
+      mainIngredient:{
+          materialInformation :'鐗╂枡璧勬枡',
+      },
+      mainIngredientStock:{
+          materialName :'鐗╂枡鍚嶇О',
+          createTime :'杩斿簱鏃ユ湡',
+      },
+      large:{
+          slice:'鐗�',
+          load:'鍒囧壊',
+          edg:'纾ㄨ竟',
+          temp:'閽㈠寲',
+          hollow:'涓┖',
+          oneFinish:'涓�绾垮畬鎴�',
+          twoFinish:'浜岀嚎瀹屾垚',
+          oneunFinish:'涓�绾挎湭瀹屾垚',
+          twounFinish:'浜岀嚎鏈畬鎴�',
+          ondDamage:'涓�绾跨牬鎹�',
+          percent:'杩涘害鐧惧垎姣�',
+          time: '娆$牬鏃堕棿',
+          tionnumber: '璁㈠崟鍙�',
+          jobnumber: '鎶ュ伐缂栧彿',
+          productionnumber: '鐢熶骇璁㈠崟鍙�',
+          cardnumber: '娴佺▼鍗″彿',
+          projectname: '椤圭洰鍚嶇О',
+          batch: '鎵规',
+          detailID: '鏄庣粏ID',
+          building: '妤煎彿',
+          serialnumber: '璁㈠崟搴忓彿',
+          productname: '浜у搧鍚嶇О',
+          serial: '宸ヨ壓纭搴忓彿',
+          slicemarker: '灞傚彿',
+          numberpatches: '琛ョ墖鏁伴噺',
+          width: '瀹�',
+          height: '楂�',
+          shape: '褰㈢姸',
+          responsibleprocess: '璐d换宸ュ簭',
+          process: '鏈伐搴�',
+          numberfractions: '娆$牬鏈ˉ鏁伴噺',
+          breakreason: '娆$牬鍘熷洜',
+          breaktype: '娆$牬绫诲瀷',
+          responsiblepersonnel: '璐d换浜哄憳',
+          responsiblequipment: '璐d换璁惧',
+          responsibleteam: '璐d换鐝粍',
+          area: '娆$牬闈㈢Н',
+          inspector: '璐ㄦ鍛�',
+          operate: '鎿嶄綔',
+          mes: '璇︽儏',
+          projectnumber: '宸ョ▼鍗曞彿',
+          brokeno: '鎶ユ鐮存湭琛�',
+          close: '鍏抽棴',
+          orderId: '璁㈠崟ID',
+          order: '璁㈠崟璇︽儏',
+          customerName: '瀹㈡埛鍚嶇О',
+          project: '椤圭洰鍚嶇О',
+          are: '闈㈢Н',
+          quantity: '鏁伴噺',
+          warehousing: '鐘舵��',
+          deliveryDate: '閫佽揣鏃堕棿',
+          notstocked: '鏈叆搴�',
+          inboundstatus: '閮ㄥ垎鍏ュ簱鐘舵��',
+          allstatus: '鍏ㄩ儴鍏ュ簱鐘舵��',
+          completedquantity: '瀹屾垚鏁伴噺',
+          scrapquantity: '鎶ュ簾鏁伴噺',
+          number: '鏁伴噺',
+          method: '鍔犲伐鏂瑰紡',
+          innumber: '宸插叆鏁伴噺',
+          productstatus: '鐢熶骇鐘舵��',
+          right: '姝e父',
+          stop: '缁堟',
+          inquire: '鏌ヨ',
+          starttime :'寮�濮嬫椂闂�',
+          endtime :'缁撴潫鏃堕棿',
+          loading :'姝e湪涓婄墖锛�',
+          brokenNum:'鐮存崯鏁伴噺',
+          inventory:'搴撳瓨',
+          inventoryarea:'搴撳瓨闈㈢Н',
+          shippedQuantity:'宸插彂璐ф暟閲�',
+          reportWorkQuantity:'瀹屽伐鏁伴噺',
+          reportWorkQuantityCount:'鐮存崯鏁伴噺',
+          processId:'娴佺▼鍗″彿',
+          historicaltasks1:'鍘熺墖浠撳偍',
+          historicaltasks2:'涓婄墖涓�绾�',
+          historicaltasks3:'涓婄墖浜岀嚎',
+          historicaltasks4:'鍗у紡涓�绾�',
+          historicaltasks5:'鍗у紡浜岀嚎',
+          historicaltasks6:'閽㈠寲澶х悊鐗�',
+          historicaltasks7:'涓┖涓�绾�',
+          historicaltasks8:'涓┖浜岀嚎',
+          historicaltasks9:'涓┖澶х悊鐗�',
+          historicaltasks10:'鐢熶骇缁熻',
+          date:'鏃ユ湡',
+          countOutOne: '鍒囧壊涓�绾挎暟閲�',
+          totalAreaOutOne: '鍒囧壊涓�绾块潰绉�',
+          countOutTwo: '鍒囧壊浜岀嚎鏁伴噺',
+          totalAreaOutTwo: '鍒囧壊浜岀嚎闈㈢Н',
+          countIn: '閽㈠寲鍓嶅ぇ鐞嗙墖鏁伴噺',
+          totalAreaIn: '閽㈠寲鍓嶅ぇ鐞嗙墖闈㈢Н',
+          countOut: '閽㈠寲鏁伴噺',
+          totalAreaOut: '閽㈠寲闈㈢Н',
+          hollowCountOutOne: '涓┖涓�绾挎暟閲�',
+          hollowTotalAreaOutOne: '涓┖涓�绾块潰绉�',
+          hollowCountOutTwo: '涓┖浜岀嚎鏁伴噺',
+          hollowTotalAreaOutTwo: '涓┖浜岀嚎闈㈢Н',
+      },
+      reportmanage:{
+          productiontime :'鐢熶骇鏃堕棿',
+          starttime :'寮�濮嬫椂闂�',
+          endtime :'缁撴潫鏃堕棿',
+          ctype :'璇烽�夋嫨绫诲瀷',
+          cstate :'璇烽�夋嫨鐘舵��',
+          cprocess :'璇烽�夋嫨宸ュ簭',
+          all :'鍏ㄩ儴',
+          completed :'瀹屽伐',
+          broke :'鐮存崯',
+          takeout :'鎷胯蛋',
+          dreportwork :'鏈姤宸�',
+          pendingwork :'宸茬幇琛�',
+          reportwork :'宸叉姤宸�',
+          reportworked :'宸插悓姝�',
+          incise :'鍒囧壊',
+          edging :'纾ㄨ竟',
+          steel :'閽㈠寲',
+          inquire :'鏌ヨ',
+          signingwork :'鎶ュ伐',
+          reporteam :'鎶ュ伐鐝粍',
+          reportingequipment :'鎶ュ伐璁惧',
+          line :'绾胯矾',
+          process :'宸ュ簭',
+          glassID :'鐜荤拑ID',
+          projectnumber :'宸ョ▼鍙�',
+          layoutID :'閽㈠寲鐗堝浘ID',
+          type :'绫诲瀷',
+          state :'鐘舵��',
+          processcards :'娴佺▼鍗�',
+          number :'搴忓彿',
+          layer :'灞�',
+          typebreakage :'鐮存崯绫诲瀷',
+          ptypebreakage :' 璇烽�夋嫨鐮存崯绫诲瀷',
+          causebreakage :'鐮存崯鍘熷洜',
+          pcausebreakage :'璇烽�夋嫨鐮存崯鍘熷洜',
+          responsibleprocess :'璐d换宸ュ簭',
+          responsiblepersonnel :'璐d换浜哄憳',
+          presponsiblepersonnel :'璇疯緭鍏ヨ矗浠讳汉鍛�',
+          responsibleteam :'璐d换鐝粍',
+          presponsibleteam :'璇烽�夋嫨璐d换鐝粍',
+          responsibleequipment :'璐d换璁惧',
+          presponsibleequipment :'璇烽�夋嫨璐d换璁惧',
+          remark :'澶囨敞',
+          premark :'璇疯緭鍏ュ娉�',
+      },
+      film:{
+          resetnumber:'鏋跺瓙鍙�',
+          fail:'澶辫触',
+          mes:'鍘熺墖浠撳偍璇︽儏',
+          warehousing:'鍘熺墖鍏ュ簱',
+          pwarehousing:'鍏ュ簱璇锋眰',
+          wareout:'鍘熺墖鍑哄簱',
+          information:'鏄惁鍑哄簱璇ユ潯淇℃伅锛�',
+          pwareout:'鍑哄簱璇锋眰',
+          position:'鍚婅浣嶏細',
+          cposition:'璇烽�夋嫨鍚婅浣�',
+          position1:'鍚婅浣�1',
+          position2:'鍚婅浣�2',
+          addglass:'鍘熺墖淇℃伅',
+          operate: '鎿嶄綔',
+          exit:'缂栬緫',
+          delete:'鍒犻櫎',
+          outbound:'鍑哄簱',
+          deviceid:'璁惧ID',
+          enablestatea:'鍚敤鏍囪',
+          disable:'绂佺敤',
+          start:'鍚敤',
+          startslot:'寮�濮嬪伐浣�',
+          endslot:'鐩爣宸ヤ綅',
+          slotid:'鏍煎瓙ID',
+          slot:'鏍煎瓙鍙�',
+          width:'鍘熺墖瀹�',
+          widtha:'鍘熺墖瀹斤細',
+          inwidth:'璇疯緭鍏ュ師鐗囧',
+          height:'鍘熺墖楂�',
+          inheight:'璇疯緭鍏ュ師鐗囬珮',
+          heighta:'鍘熺墖楂橈細',
+          thickness:'鍘熺墖鍘氬害',
+          inthickness:'璇疯緭鍏ュ師鐗囧帤搴�',
+          thicknessa:'鍘熺墖鍘氬害锛�',
+          films:'鑶滅郴',
+          infilms:'璇疯緭鍏ヨ啘绯�',
+          filmsa:'鑶滅郴锛�',
+          createtime:'鍒涘缓鏃堕棿',
+          remainquantity:'鍓╀綑鏁伴噺',
+          thickremainquantity:'鍘熺墖鍓╀綑鏁伴噺锛堝紶锛夛細',
+          thickremainquant:'鍘熺墖鍓╀綑鏁伴噺锛堝紶锛�',
+          inquantity:'璇疯緭鍏ユ暟閲�',
+          quantitya:'鏁伴噺锛�',
+          enableid:'浠诲姟ID',
+          originateslot:'璧峰鏍煎瓙',
+          endoriginateslot:'鐩爣鏍煎瓙',
+          patternquantity:'鍘熺墖鏁伴噺',
+          enabletype:'浠诲姟绫诲瀷',
+          enablestate:'宸ヤ綅鐘舵��',
+          finish:'宸插畬鎴�',
+          unfinish:'鏈畬鎴�',
+          dedelete:'鏄惁鍒犻櫎璇ユ潯鍐呭锛�',
+          dedisable:'鏄惁绂佺敤璇ユ潯鍐呭锛�',
+          deoutbound:'鏄惁鍑哄簱璇ユ潯鍐呭锛�',
+          selectwarehousing:'璇烽�夋嫨鍚婅浣�',
+          inwarehousing:'鍚婅浣嶏細',
+          warehousing1:'鍚婅浣�1',
+          warehousing2:'鍚婅浣�2',
+          starttime :'寮�濮嬫椂闂�',
+          endtime :'缁撴潫鏃堕棿',
+          taskstatus :'浠诲姟鐘舵��',
+          built :'鏂板缓',
+          execution :'鎵ц涓�',
+          tasktype :'浠诲姟绫诲瀷',
+          stocke :'鍏ュ簱',
+          dispatch :'璋冨害',
+          inquire :'鏌ヨ',
+          station :'宸ヤ綅',
+      },
+      Mounting:{
+          previewproject: '閫夋嫨棰勮宸ョ▼',
+          loadinglinea: '涓婄墖绾�',
+          loadingline: '涓婄墖绾匡細',
+          inloadingline: '璇烽�夋嫨涓婄墖绾�',
+          oneloadingline: '涓�鍙蜂笂鐗囩嚎',
+          twoloadingline: '浜屽彿涓婄墖绾�',
+          waiting: '绛夊緟涓�',
+          pass: '閫氳繃',
+          setparameters: '璁剧疆鍙傛暟',
+          project: '宸ョ▼鍙�',
+          projecta: '宸ョ▼鍙凤細',
+          width: '鍘熺墖瀹�',
+          height: '鍘熺墖楂�',
+          thickness: '鍘熺墖鍘�',
+          projectnumber: '宸ョ▼鍘熺墖搴忓彿',
+          state: '鐘舵��',
+          createtime: '鍒涘缓鏃堕棿',
+          all: '鍏ㄩ��',
+          removalmethod: '璇烽�夋嫨闄よ啘鏂瑰紡',
+          removalmethodp: '闄よ啘鏂瑰紡',
+          removalmethoda: '闄よ啘鏂瑰紡锛�',
+          noremoval: '涓嶉櫎鑶�',
+          removal: '闄よ啘',
+          coarselyground: '绮楃(',
+          finegrinding: '绮剧(',
+      },
+    hellow: {
+        clickmakesure: '鏄惁纭鐐瑰嚮锛�',
+        logarithm: '瀵规暟锛�',
+        totalPairQuantitya: '浠诲姟鎬婚厤瀵规暟',
+        pairQuantitya: '宸插嚭閰嶅鏁�',
+        waitingout: '绛夊緟鍑虹墖',
+        finishout: '鍑虹墖瀹屾垚',
+        hollowSequence: '涓┖椤哄簭',
+        isPair: '鏄惁閰嶅',
+        no: '鍚�',
+        listFormula: '閰嶆柟淇℃伅',
+        HollowGlass: '闃熷垪淇℃伅',
+        totalLayer: '鎬诲眰鏁�',
+        totalPairQuantity: '鎬婚厤瀵规暟閲�',
+        pairQuantity: '宸插畬鎴愰厤瀵规暟閲�',
+        isForceList: '鏄惁寮哄埗',
+        yesisForceList: '寮哄埗',
+        noisForceList: '闈炲己鍒�', 
+        hollowCountOutOne: '涓┖涓�绾跨幓鐠冩暟閲�',
+        hollowCountOutTwo: '涓┖浜岀嚎鐜荤拑鏁伴噺',
+        hollowTotalAreaOutOne: '涓┖涓�绾跨幓鐠冮潰绉�',
+        hollowTotalAreaOutTwo: '涓┖浜岀嚎鐜荤拑闈㈢Н',
+        countIn: '閽㈠寲鍓嶅ぇ鐞嗙墖绗肩幓鐠冩暟閲�',
+        countOut: '閽㈠寲鐜荤拑鏁伴噺',
+        countOutOne: '鍒囧壊涓�绾跨幓鐠冩暟閲�',
+        countOutTwo: '鍒囧壊浜岀嚎鐜荤拑鏁伴噺',
+        totalAreaIn: '閽㈠寲鍓嶅ぇ鐞嗙墖绗肩幓鐠冮潰绉�',
+        totalAreaOut: '閽㈠寲鐜荤拑闈㈢Н',
+        totalAreaOutOne: '鍒囧壊涓�绾跨幓鐠冮潰绉�',
+        totalAreaOutTwo: '鍒囧壊浜岀嚎鐜荤拑闈㈢Н',
+        freeone: '涓�绾跨┖闂茬姸鎬侊細',
+        freetwo: '浜岀嚎绌洪棽鐘舵�侊細',
+        freethree: '涓夌嚎绌洪棽鐘舵�侊細',
+        casFour: '姘斾綋4',
+        casFourb: '姘斾綋4锛�',
+        casFoura: '璇烽�夋嫨姘斾綋4',
+        casOne: '姘斾綋1',
+        casOneb: '姘斾綋1锛�',
+        casOnea: '璇烽�夋嫨姘斾綋1',
+        casThree: '姘斾綋3',
+        casThreeb: '姘斾綋3锛�',
+        casThreea: '璇烽�夋嫨姘斾綋3',
+        casTwo: '姘斾綋2',
+        casTwob: '姘斾綋2锛�',
+        casTwoa: '璇烽�夋嫨姘斾綋2',
+        Y: '鏈�',
+        F: '鏃�',
+        frameFour: '闂撮殧鏉�4',
+        frameFourb: '闂撮殧鏉�4锛�',
+        frameFoura: '璇疯緭鍏ラ棿闅旀澘4',
+        frameOne: '闂撮殧鏉�1',
+        frameOneb: '闂撮殧鏉�1锛�',
+        frameOnea: '璇疯緭鍏ラ棿闅旀澘1',
+        frameThree: '闂撮殧鏉�3',
+        frameThreeb: '闂撮殧鏉�3锛�',
+        frameThreea: '璇疯緭鍏ラ棿闅旀澘3',
+        frameTwo: '闂撮殧鏉�2',
+        frameTwob: '闂撮殧鏉�2锛�',
+        frameTwoa: '璇疯緭鍏ラ棿闅旀澘2',
+        intervalFrameHeightOne: '闂撮殧妗嗛珮搴�1',
+        intervalFrameHeightTwo: '闂撮殧妗嗛珮搴�2',
+        intervalFrameHeightThree: '闂撮殧妗嗛珮搴�3',
+        intervalFrameHeightFour: '闂撮殧妗嗛珮搴�4',
+        intervalFrameHeightaOne: '璇疯緭鍏ラ棿闅旀楂樺害1',
+        intervalFrameHeightaTwo: '璇疯緭鍏ラ棿闅旀楂樺害2',
+        intervalFrameHeightaThree: '璇疯緭鍏ラ棿闅旀楂樺害3',
+        intervalFrameHeightaFour:  '璇疯緭鍏ラ棿闅旀楂樺害4',
+        intervalFrameHeightbOne: '闂撮殧妗嗛珮搴�1锛�',
+        intervalFrameHeightbTwo: '闂撮殧妗嗛珮搴�2锛�',
+        intervalFrameHeightbThree: '闂撮殧妗嗛珮搴�3锛�',
+        intervalFrameHeightbFour:  '闂撮殧妗嗛珮搴�4锛�',
+        intervalFrameTypeOne: '闂撮殧妗嗙被鍨�1',
+        intervalFrameTypeTwo: '闂撮殧妗嗙被鍨�2',
+        intervalFrameTypeThree: '闂撮殧妗嗙被鍨�3',
+        intervalFrameTypeFour: '闂撮殧妗嗙被鍨�4',
+        intervalFrameTypecOne: '璇烽�夋嫨闂撮殧妗嗙被鍨�1',
+        intervalFrameTypecTwo: '璇烽�夋嫨闂撮殧妗嗙被鍨�2',
+        intervalFrameTypecThree: '璇烽�夋嫨闂撮殧妗嗙被鍨�3',
+        intervalFrameTypecFour: '璇烽�夋嫨闂撮殧妗嗙被鍨�4',
+        intervalFrameTypedOne: '闂撮殧妗嗙被鍨�1锛�',
+        intervalFrameTypedTwo: '闂撮殧妗嗙被鍨�2锛�',
+        intervalFrameTypedThree: '闂撮殧妗嗙被鍨�3锛�',
+        intervalFrameTypedFour: '闂撮殧妗嗙被鍨�4锛�',
+        intervalFrameTypea: 'tps鑳�',
+        intervalFrameTypeb: '閾濋棿闅旀潯',
+        intervalFrameWidthOne: '闂撮殧妗嗗搴�1',
+        intervalFrameWidthTwo: '闂撮殧妗嗗搴�2',
+        intervalFrameWidthThree: '闂撮殧妗嗗搴�3',
+        intervalFrameWidthFour:  '闂撮殧妗嗗搴�4',
+        intervalFrameWidthaOne: '璇疯緭鍏ラ棿闅旀瀹藉害1',
+        intervalFrameWidthaTwo: '璇疯緭鍏ラ棿闅旀瀹藉害2',
+        intervalFrameWidthaThree: '璇疯緭鍏ラ棿闅旀瀹藉害3',
+        intervalFrameWidthaFour:  '璇疯緭鍏ラ棿闅旀瀹藉害4',
+        intervalFrameWidthbOne: '闂撮殧妗嗗搴�1锛�',
+        intervalFrameWidthbTwo: '闂撮殧妗嗗搴�2锛�',
+        intervalFrameWidthbThree: '闂撮殧妗嗗搴�3锛�',
+        intervalFrameWidthbFour:  '闂撮殧妗嗗搴�4锛�',
+        sealInsert: '瀵嗗皝宓屽叆',
+        sealInsertb: '瀵嗗皝宓屽叆锛�',
+        sealInserta: '璇疯緭鍏ュ瘑灏佸祵鍏�',
+        hollowformula: '涓┖閰嶆柟',
+        hollowformuldet: '鏄惁鍒犻櫎璇ヤ腑绌洪厤鏂癸紵',
+        hollowtaskdet: '鏄惁鍒犻櫎璇ヤ换鍔★紵',
+        taskdet: '鍒犻櫎浠诲姟',
+        edithollowformula: '淇敼涓┖閰嶆柟',
+        phollowformula: '璇烽�夋嫨涓┖閰嶆柟',
+        hollowformulp: '涓┖閰嶆柟锛�',
+        bottomRemove: '涓嬩晶闄よ啘閲忥細',
+        bottomRemovep: '涓嬩晶闄よ啘閲�',
+        bottomRemovea: '璇疯緭鍏ヤ笅渚ч櫎鑶滈噺',
+        topRemove: '涓婁晶闄よ啘閲忥細',
+        topRemovep: '涓婁晶闄よ啘閲�',
+        topRemovea: '璇疯緭鍏ヤ笂渚ч櫎鑶滈噺',
+        leftRemove: '宸︿晶闄よ啘閲忥細',
+        leftRemovep: '宸︿晶闄よ啘閲�',
+        leftRemovea: '璇疯緭鍏ュ乏渚ч櫎鑶滈噺',
+        rightRemove: '鍙充晶闄よ啘閲忥細',
+        rightRemovep: '鍙充晶闄よ啘閲�',
+        rightRemovea: '璇疯緭鍏ュ彸渚ч櫎鑶滈噺',
+        formulaNamep: '閰嶆柟鍚�',
+        formulaName: '閰嶆柟鍚嶏細',
+        formulaNamea: '璇疯緭鍏ラ厤鏂瑰悕',
+        stopproject: '鏆傚仠浠诲姟',
+        pstopproject: '鏄惁鏆傚仠浠诲姟锛�',
+        reviewproject: '棰勮宸ョ▼',
+        line: '绾胯矾',
+        linea: '绾胯矾锛�',
+        line1: '绾胯矾涓�',
+        line2: '绾胯矾浜�',
+        line3: '绾胯矾涓�',
+        createtask: '鍒涘缓浠诲姟',
+        starttask: '寮�濮嬩换鍔�',
+        pstarttask: '鏄惁寮�濮嬩换鍔★紵',
+        stoptask: '鍋滄浠诲姟',
+        pstoptask: '鏄惁鍋滄浠诲姟锛�',
+        currenttask: '褰撳墠浠诲姟锛�',
+        claimednumber: '宸查鍙栭厤瀵规暟閲忥細',
+        linenumber: '杩涘叆涓┖绾挎暟閲忥細',
+        order: '鍑虹墖椤哄簭',
+        flowCardId: '娴佺▼鍗�',
+        thickness: '鍘氬害',
+        coatingtypes: '鑶滅郴',
+        layer: '灞傛暟',
+        height: '闀�',
+        width: '瀹�',
+        state: '鐘舵��',
+        cardnumber: '娴佺▼鍗″彿',
+        cardnumbera: '娴佺▼鍗″彿锛�',
+        layernumber: '灞傚彿',
+        totalnumber: '鎬荤墖鏁�',
+        pairsnumber: '宸查厤瀵规暟閲�',
+        missingnumber: '缂虹墖鏁伴噺',
+        damagenumber: '鐮存崯鏁伴噺',
+        operate: '鎿嶄綔',
+        claimquest: '棰嗗彇浠诲姟',
+        pclaimquest: '鏄惁棰嗗彇浠诲姟锛�',
+        missingfilms: '缂虹墖璇︽儏',
+        forcedfilming: '寮哄埗鍑虹墖',
+        pforcedfilming: '鏄惁寮哄埗鍑虹墖锛�',
+        brokenpieces: '鐮存崯鐗囨暟',
+        realpieces: '瀹為檯鐗囨暟',
+        route: '璺嚎锛�',
+        croute: '璇烽�夋嫨璺嚎',
+        ptotalpairQuantity: '鎬婚厤瀵规暟閲忥細',
+        cpairQuantity: '璇疯緭鍏ユ�婚厤瀵规暟閲�',
+        schedulingswitch: '璋冨害寮�鍏�',
+    },
+    screendisplay:{
+        pchoice: '璇烽�夋嫨',
+        pwidth: '璇疯緭鍏ュ搴�',
+        pheight: '璇疯緭鍏ラ珮搴�',
+        upnumber: '涓婄墖鏁伴噺',
+    }
+}
\ No newline at end of file
diff --git a/UI-Project/src/layout/MainErpView.vue b/UI-Project/src/layout/MainErpView.vue
new file mode 100644
index 0000000..d00b2ce
--- /dev/null
+++ b/UI-Project/src/layout/MainErpView.vue
@@ -0,0 +1,470 @@
+<script setup>
+import useUserInfoStore from '@/stores/userInfo'
+import userInfo from '@/stores/userInfo'
+import request from '@/utils/request'
+import {ElMessage} from 'element-plus'
+import {ref, watch, onMounted, onUnmounted } from 'vue'
+import deepClone from '@/utils/deepClone'
+import { useRouter } from 'vue-router';  
+import { useI18n } from 'vue-i18n'
+import { provide } from 'vue';
+// import {host, WebSocketHost} from '@/utils/constants'
+// import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+const globalDate = ref('');
+const { t } = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const store = userInfo()
+const isCollapse = ref(false);  
+// const { $i18n } = useI18n(); // 鑾峰彇 i18n 瀹炰緥  
+const router = useRouter()
+const userStore = useUserInfoStore()
+// const user = userStore.user.userName
+let userInfoStr = window.localStorage.getItem('userInfo')
+// const userInfoStr = localStorage.getItem('userInfo');  
+// let userInfo = userInfoStr.user.token;  
+let token = userInfo; // 鎻愬彇 token  
+// 閫�鍑虹櫥褰曟柟娉�  
+function quit() {  
+  // localStorage.removeItem('token'); 
+  store.$patch({
+              user: null,
+              })
+  router.push('/login')  
+}
+// let socket = null;
+// const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/mainMes`;
+// const handleMessage = (data) => {
+//   if(data.globalDate!=null){
+//     window.localStorage.setItem('getglobalDate', data.globalDate[0])
+//   }else{
+//     globalDate.value = ''
+//       }
+//     }
+  function replaceChineseWithEnglish(menuData) {  
+      // 瀹氫箟涓縿鏂囧鐓у叧绯诲璞�
+       const translation  = {  
+    '涓婄墖鏈�': '小褌芯谢 蟹邪谐褉褍蟹泻懈',
+    '涓婄墖': '袙械褉褏薪褟褟 褔邪褋褌褜',
+    '鎺扮墖/璇嗗埆': '袪邪蟹谢芯屑/懈写械薪褌懈褎懈泻邪褑懈褟',
+    '鍗у紡缂撳瓨': ' 袚芯褉懈蟹芯薪褌邪谢褜薪褘泄 斜褍褎械褉',
+    '纾ㄨ竟鍓嶅崸寮忕紦瀛�': '袚芯褉懈蟹芯薪褌邪谢褜薪褘泄 斜褍褎械褉 锌械褉械写 褕谢懈褎芯胁泻芯泄',
+    '涓嬬墖鍗у紡缂撳瓨': '袚芯褉懈蟹芯薪褌邪谢褜薪褘泄 斜褍褎械褉 褋褌械泻谢邪 褉邪蟹谐褉褍蟹泻懈',
+    '纾ㄨ竟锛堝喎鍔犲伐锛�': '楔谢懈褎芯胁邪褌褜 泻褉邪褟 (褏芯谢芯写薪邪褟 芯斜褉邪斜芯褌泻邪)',
+    '1绾跨(杈�(鍐峰姞宸�)': '楔谢懈褎芯胁邪褌褜 泻褉邪褟 1 谢懈薪懈懈 (褏芯谢芯写薪邪褟 芯斜褉邪斜芯褌泻邪)',
+    '2绾跨(杈�(鍐峰姞宸�)': '楔谢懈褎芯胁邪褌褜 泻褉邪褟 2 谢懈薪懈懈 (褏芯谢芯写薪邪褟 芯斜褉邪斜芯褌泻邪)',
+    '澶х悊鐗囩': '袘褍褎械褉薪邪褟 褋懈褋褌械屑邪',
+    '閽㈠寲': '袟邪泻邪谢泻邪',
+    '閽㈠寲鍓�': '袩械褉械写 蟹邪泻邪谢泻懈',
+    '閽㈠寲鍚�': '袩芯褋谢械 蟹邪泻邪谢泻懈',
+    '涓嬬墖鍙�': '小褌芯谢 褉邪蟹谐褉褍蟹泻懈',
+    '绯荤粺绠$悊': '校锌褉邪胁谢械薪懈械 褋懈褋褌械屑芯泄',
+    '鐢ㄦ埛绠$悊': '校锌褉邪胁谢械薪懈械 锌芯谢褜蟹芯胁邪褌械谢械屑',
+    '鏉冮檺绠$悊': '校锌褉邪胁谢械薪懈械 锌芯谢薪芯屑芯褔懈褟屑懈',
+    '瑙掕壊绠$悊': '校锌褉邪胁谢械薪懈械 褉芯谢褜褞',
+    '鍙鍖栫郴缁�': '袙懈蟹褍邪谢褜薪邪褟 褋懈褋褌械屑邪',
+    '鎶ュ伐绠$悊': '校锌褉邪胁谢械薪懈械 芯褌褔械褌薪芯褋褌褜褞',
+    '浠撳偍涓績': '小泻谢邪写褋泻芯泄 褑械薪褌褉',
+    '鍘熺墖浠撳偍': '小泻谢邪写 褋褘褉褜褟',
+     };  
+  menuData.forEach(menu => {  
+    menu.menuName = translation[menu.menuName] || menu.menuName;  
+    // if (menu.children) {  
+      menu.children && menu.children.forEach(submenu => {  
+        submenu.menuName = translation[submenu.menuName] || submenu.menuName;  
+      });  
+    // }  
+  });  
+} 
+function replaceChineseWithRussian(menuData) {  
+      // 瀹氫箟涓嫳鏂囧鐓у叧绯诲璞�
+   const translation  = {  
+    '涓婄墖鏈�': 'Loading Machine',
+    '涓婄墖涓�绾�': 'First line on film',
+    '涓婄墖浜岀嚎': 'Second line on film',
+    '鎺扮墖/璇嗗埆': 'Breaking /Identification',
+    '鎺扮墖涓�绾�': 'Broken piece line',
+    '鎺扮墖浜岀嚎': 'Broken pieces with two lines',
+    '鍗у紡缂撳瓨': 'Horizontal cache',
+    '鍗у紡缂撳瓨涓�鍙风嚎': 'Horizontal Cache 1',
+    '鍗у紡缂撳瓨浜屽彿绾�': 'Horizontal Cache 2',
+    '纾ㄨ竟鍓嶅崸寮忕紦瀛�': 'Horizontal buffer before edge grinding',
+    '涓嬬墖鍗у紡缂撳瓨': 'Offline horizontal cache',
+    '纾ㄨ竟锛堝喎鍔犲伐锛�': 'Grinding edge (cold processing)',
+    '纾ㄨ竟(鍐峰姞宸�)': 'Grinding edge (cold processing)',
+    '1绾跨(杈�(鍐峰姞宸�)': '1-line edge grinding (cold processing)',
+    '2绾跨(杈�(鍐峰姞宸�)': '2-line edge grinding (cold processing)',
+    '澶х悊鐗囩': 'Dali slice cage',
+    '閽㈠寲': 'Toughened',
+    '閽㈠寲鏌ヨ': 'Tempered steel inquiry',
+    '閽㈠寲鍓�': 'Before Tempering',
+    '閽㈠寲鍚�': 'After Tempering',
+    '涓嬬墖鍙�': 'Next Stage',
+    '绯荤粺绠$悊': 'System Management',
+    '鐢ㄦ埛绠$悊': 'User Management',
+    '鏉冮檺绠$悊': 'Rights Management',
+    '瑙掕壊绠$悊': 'Roles',
+    '绯荤粺閰嶇疆': 'system configuration',
+    '鍙鍖栫郴缁�': 'visualization system',
+    '鎶ュ伐绠$悊': 'Job reporting management',
+    '浠撳偍涓績': 'Storage Center',
+    '鍘熺墖浠撳偍': 'Original film storage',
+    '涓┖': 'Hollow',
+    '涓┖涓�绾�': 'Hollow Line',
+    '涓┖浜岀嚎': 'Hollow Second Line',
+    '涓┖涓夌嚎': 'Hollow three line',
+    '涓┖鐞嗙墖绗�': 'Hollow Film processing cage',
+    '鎶橀摑妗嗕竴绾�': '1 Fold aluminum frame',
+    '鎶橀摑妗嗕簩绾�': '2 Fold aluminum frame',
+    '鎶橀摑妗嗕笁绾�': '3 Fold aluminum frame',
+    '澶у睆鏄剧ず': 'Large Screen Display',
+     };  
+  menuData.forEach(menu => {  
+    menu.menuName = translation[menu.menuName] || menu.menuName;  
+    // if (menu.children) {  
+      menu.children && menu.children.forEach(submenu => {  
+        submenu.menuName = translation[submenu.menuName] || submenu.menuName;  
+      });  
+    // }  
+  });  
+} 
+//鎻愬彇鑿滃崟妯″潡鍒楄〃
+let menuList = $ref([])
+request.get('/loadGlass/sys/menu/getMenuTree').then((res) => {
+  if (res.code == 200) {
+    menuList = res.data
+    // translateMenu(menuList.value, language.value); 
+      if (language.value === 'en') {
+        replaceChineseWithRussian(menuList);
+      }
+      if (language.value === 'py') {
+        replaceChineseWithEnglish(menuList);
+      }
+  } else {
+    ElMessage.warning(res.msg)
+    router.push('/login')
+  }
+})
+request.post('/loadGlass/sys/menu/getNowDate').then((res) => {
+  if (res.code == 200) {
+      window.localStorage.setItem('getglobalDate', res.data)
+  } else {
+    ElMessage.warning(res.msg)
+  }
+})
+const menu = ref(null)
+let indexKey = ref(null)
+function handleOpen(key) {
+  indexKey.value = key
+}
+watch(
+    indexKey,
+    (newVal, oldVal) => {
+      if (oldVal !== newVal && oldVal !== null) {
+        menu.value.close(oldVal)
+      }
+    },
+    {deep: true}
+)
+router.beforeEach((to, from) => {
+  //return false
+})
+let openFlag = $ref(null)
+//鍘熷鑿滃崟鎵撳紑
+const openMenu = (menuID) => {
+  if (menuID === openFlag) {
+    openFlag = null
+  } else {
+    openFlag = menuID
+  }
+}
+function toggleCollapse() {  
+  isCollapse.value = !isCollapse.value;  
+} 
+onMounted(() => {
+  // fetchlack()
+  // socket = initializeWebSocket(socketUrl, handleMessage);
+});
+// const fetchlack = async () => {
+//   try  {
+//     console.log(33333);
+//     const response = await request.post('/loadGlass/sys/menu/getNowDate')
+//     console.log(response.code);
+//     if (response.code == 200) {
+//       console.log(11111);
+//       console.log(response.data);
+//       console.log(2222);
+//       // window.localStorage.setItem('getglobalDate', response.data)
+//     } else {
+//       ElMessage.error(response.message);
+//     }
+// }
+// catch (error) {
+//     // 澶勭悊閿欒
+//   }
+// }
+  let getglobalDate = window.localStorage.getItem('getglobalDate')
+  provide('globalDate', getglobalDate);
+  // onUnmounted(() => {
+    // if (socket) {
+    // closeWebSocket(socket);
+    // }
+    // });
+</script>
+<template>
+  <div id="all">
+    <el-container>
+      <el-header>
+        <div style="height: 100%;width: 100%;display: flex;background-color: #fff;">
+          <img src="../assets/northGlass.ico"
+               alt=""  @click="toggleCollapse"
+               style="max-width: 100%;max-height: 100%">
+          <h3 style="margin: 1rem;font-weight: bold;width: 33vw;"> {{ $t('main.titleFirst') }}{{ userName }}{{ $t('main.titleLast') }}</h3>
+          <span style="height: 70%;width: 78vw;margin-top: 1rem;">
+            <!-- <el-button class="sys-quit"
+                       @click="quit"
+                       round>
+              <el-icon size="large">
+                <SwitchButton size=""/>{{ $t('main.quit') }}
+              </el-icon>
+            </el-button> -->
+            <el-button class="sys-quit"
+                       @click="quit"
+                       round>
+              <el-icon size="large">
+                <SwitchButton size=""/>{{ $t('main.quit') }}
+              </el-icon>
+            </el-button>
+            <!-- <div class="header-left">
+              <el-button @click="toggleCollapse" style="height: 30px;">  
+               <el-icon><Expand /></el-icon>
+              </el-button>  
+          </div> -->
+          </span>
+        </div>
+      </el-header>
+      <div id="line"></div>
+      <el-container>
+      <el-aside :width="isCollapse ? '0px' : '200px'" style="background-color: #fff;">
+        <el-row :span="20">
+            <el-menu :default-active="activePath" class="el-menu-vertical-demo" >
+              <div class="menu">
+            <div v-for="items in menuList">
+              <div class='menu_title' v-show="!isCollapse"
+                   @click="openMenu(items.id)">
+                <span>鈽�</span>
+                {{ items.menuName }}
+              </div>
+              <ul class='enter-x-left'
+                  v-show="openFlag==items.id">
+                <li v-for="menuItem in items.children"
+                    style="margin-bottom:2px">
+                  <router-link :to="{path:menuItem.url}">
+                    {{ menuItem.menuName }}
+                  </router-link>
+                  </li>
+                  </ul>
+                  </div>
+                  </div>
+            </el-menu>
+          </el-row>
+</el-aside>
+<el-main>
+          <div id="main">
+            <router-view></router-view>
+          </div>
+        </el-main>
+      </el-container>
+    </el-container>
+  </div>
+</template>
+<style scoped>
+.el-menu-vertical-demo:not(.el-menu--collapse) {
+  width: 200px;
+  min-height: 400px;
+  text-align: left;
+}
+#all {
+  background-color: #eee;
+  height: 100%;
+}
+.el-container {
+  height: 100vh;
+  width: 99vw;
+}
+* {
+  padding: 0;
+  margin: 0;
+}
+:deep(.sys-quit) {
+  float: right;
+  margin-right: 1rem;
+  width: 5rem;
+}
+/* 妯嚎 */
+#line {
+  float: right;
+  width: 100%;
+  height: 1px;
+  /* margin-top: 0.5em; */
+  margin-bottom: 0.5em;
+  background: #d4c4c4;
+  position: relative;
+  text-align: center;
+}
+:deep(span) {
+  margin-right: 0;
+}
+.el-collapse {
+  font-size: 16px;
+  font-weight: bold;
+}
+#main {
+  width: 99%;
+  float: right;
+  height: 99%;
+  background-color: #fff;
+}
+/*------------*/
+/* .menu div div{
+  width: 138px;
+  height: 35px;
+  line-height: 35px;
+  background: #C6E2FF;
+  color: #000000;
+  font-size: 16px;
+  padding-left: 15px;
+  transition: all 0.3s ease;
+  cursor: pointer;
+  position: relative;
+  font-weight: bold;
+  overflow: hidden;
+  border-bottom: 12px ;
+  margin-bottom:4px;
+  text-align: left;
+  cursor: pointer; */
+/* border-radius:8px; */
+/*   outline: none; */
+/* background-color:#5CADFE; */
+/* box-shadow: 0 8px 16px 0 rgba(0,0,0,0), 0 6px 5px 0 rgba(0,0,0,0.19); */
+/* } */
+.menu {
+  width: 138px;
+  height: 33px;
+  line-height: 25px;
+  color: #000000;
+  font-size: 16px;
+  padding-left: 15px;
+  padding-right: 2px;
+}
+ul {
+  height: auto;
+  margin: 1px auto;
+  text-align: center;
+}
+ul li {
+  height: 28px;
+  width: 180px;
+  line-height: 30px;
+  /* background: rgb(128, 128, 128); */
+  color: #000000;
+  padding-left: 36px;
+  cursor: pointer;
+  overflow: hidden;
+  text-align: left;
+  /* border-radius:8px; */
+  /*   outline: none; */
+  /* background: #5CADFE; */
+  /* box-shadow: 0 8px 16px 0 rgba(0,0,0,0), 0 6px 5px 0 rgba(0,0,0,0.19); */
+}
+ul li:hover {
+  /* background:#5CADFE ; */
+  color: #ffffff;
+}
+ul li a {
+  text-decoration: none;
+  color: #000000;
+  font-size: 14px;
+}
+ul li a:hover {
+  color: #1087ff;
+}
+.item_divider {
+  width: 118px;
+  height: 0px;
+  /* background-color: white;
+  opacity: 0.8; */
+  margin-bottom: 2px;
+}
+.item a {
+  width: 138px;
+  height: 35px;
+  display: block;
+  /* text-align: justify; */
+  text-decoration: none;
+  color: white;
+  font-size: 14px;
+  text-decoration: none;
+}
+.menu_title {
+  width: 180px;
+  /* white-space: nowrap;  
+  overflow: hidden;  
+  text-overflow: ellipsis;   */
+  height: 45px;
+  line-height: 55px;
+  /* background: #fafafa; */
+  color: rgb(43, 42, 42);
+  font-size: 17px;
+  padding-left: 15px;
+  transition: all 0.3s ease;
+  cursor: pointer;
+  position: relative;
+  font-weight: bold;
+  overflow: hidden;
+}
+.menu_title:hover {
+  /* background: #dedede; */
+  color: #3b9af9;
+}
+.indicator {
+  display: block;
+  width: 40px;
+  height: 35px;
+  font-weight: bold;
+  position: absolute;
+  right: 0px;
+  top: 0px;
+  transition: all 0.3s ease;
+  text-align: center;
+}
+/* 鍔ㄧ敾鏁堟灉 */
+.enter-x-left {
+  z-index: 9;
+  opacity: 0;
+  animation: enter-x-left 0.4s ease-in-out 0.3s;
+  animation-fill-mode: forwards;
+  transform: translateX(-50px);
+  transition: all 0.3s ease;
+}
+.enter-x-left:nth-child(1) {
+  animation-delay: 0.1s;
+}
+.enter-x-left:nth-child(2) {
+  animation-delay: 0.2s;
+}
+.enter-x-left:nth-child(3) {
+  animation-delay: 0.3s;
+}
+.enter-x-left:nth-child(4) {
+  animation-delay: 0.4s;
+}
+@keyframes enter-x-left {
+  to {
+    opacity: 1;
+    transform: translateX(0);
+  }
+}
+.header-left{
+  margin-left: -350px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/main.js b/UI-Project/src/main.js
new file mode 100644
index 0000000..ddca56a
--- /dev/null
+++ b/UI-Project/src/main.js
@@ -0,0 +1,34 @@
+import './assets/main.css'
+import {createApp} from 'vue'
+import {createPinia} from 'pinia'
+import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
+import App from './App.vue'
+import router from './router'
+import ElementPlus from 'element-plus'
+import 'element-plus/dist/index.css'
+import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
+import VXETable from 'vxe-table'
+import 'vxe-table/lib/style.css'
+import i18n from '@/lang'
+// import Echarts from "vue-echarts"
+// echarts.registerMap('china', china)
+// Vue.prototype.$echarts = echarts
+// app.component("v-chart", Echarts)
+// app.config.globalProperties.$echarts = echarts
+import * as ElementPlusIconsVue from '@element-plus/icons-vue'
+import 'babel-polyfill'
+const app = createApp(App)
+for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
+  app.component(key, component)
+}
+const pinia = createPinia()
+pinia.use(piniaPluginPersistedstate )
+app.use(VXETable)
+app.use(pinia)
+app.use(router)
+// app.use(ElementPlus)
+app.use(ElementPlus,{
+    locale: zhCn,
+})
+app.use(i18n)
+app.mount('#app')
\ No newline at end of file
diff --git a/UI-Project/src/router/index.js b/UI-Project/src/router/index.js
new file mode 100644
index 0000000..303a623
--- /dev/null
+++ b/UI-Project/src/router/index.js
@@ -0,0 +1,514 @@
+import {createRouter, createWebHashHistory} from 'vue-router'
+// import i18n from '@/utils/lang'
+// import User from '../views/sys/User.vue'
+// import Role from '../views/sys/Role.vue'
+// import Menu from '../views/sys/Menu.vue'
+const router = createRouter({
+  history: createWebHashHistory(),
+  routes: [
+    {
+      path: '/',
+      name: 'home',
+      //component: HomeView
+      component: () => import('../views/LoginView.vue')
+    },
+    {
+      path: '/login',
+      name: 'login',
+      component: () => import('../views/LoginView.vue')
+    },
+    {
+      path: '/new-page', // 鏂板鐨勬棤闇�鐧诲綍鐨勯〉闈�  
+      name: 'newPage',  
+      component: () => import('../views/NewPage.vue')
+    },
+    {
+      path: '/main',
+      name: 'main',
+      component: () => import('../layout/MainErpView.vue'),
+      children:[
+        {
+          path: 'Temperedlayout',
+          name: 'Temperedlayout',
+          component: () => import('../views/TL/Temperedlayout/Temperedlayout.vue'),
+          children:[
+            {
+             path: 'selectLayout',
+              name: 'selectLayout',
+              component: () => import('../views/TL/Temperedlayout/Temperedlayout.vue'),
+            }
+         ]
+        },
+        /*----------- 涓婄墖鏈� ----------------*/
+      {
+        path: 'Returns',
+        name: 'return',
+        component: () => import('../views/Returns/return.vue'),
+        children:[
+          {
+            path: '/Returns/upreturns',
+            name: 'upreturns',
+            component: () => import('../views/Returns/upreturns.vue')
+          },
+          {
+            path: '/Returns/upreturns2',
+            name: 'upreturns2',
+            component: () => import('../views/Returns/upreturns2.vue')
+          },
+          {
+            path: '/Returns/upreturns3',
+            name: 'upreturns3',
+            component: () => import('../views/Returns/upreturns3.vue') 
+          },
+        ]
+      },
+      /*----------- 鎺扮墖/璇嗗埆 ----------------*/
+    {
+      path: 'Identify',
+      name: 'ident',
+      component: () => import('../views/Identify/ident.vue'),
+      children: [
+        {
+          path: '/Identify/identify',
+          name: 'identify',
+          component: () => import('../views/Identify/identify.vue')
+        },
+        {
+          path: '/Identify/identifwu',
+          name: 'identifwu',
+          component: () => import('../views/Identify/identifwu.vue')
+        },
+        {
+          path: '/Identify/identifwutwo',
+          name: 'identifwutwo',
+          component: () => import('../views/Identify/identifwutwo.vue')
+        },
+      ]
+    },
+    /*----------- 鍗у紡缂撳瓨 ----------------*/
+  {
+    path: 'Caching',
+    name: 'Caching',
+    component: () => import('../views/Caching/caching.vue'),
+    children:[
+      {
+        path: '/Caching/cachingbefore',
+        name: 'cachingbefore',
+        component: () => import('../views/Caching/cachingbefore.vue')
+      },
+      {
+        path: '/Caching/cachingun',
+        name: 'cachingun',
+        component: () => import('../views/Caching/cachingun.vue')
+      },
+    ]
+  },
+  /*----------- 纾ㄨ竟锛堝喎鍔犲伐锛� ----------------*/
+{
+  path: 'StockBasicData',
+  name: 'Select',
+  component: () => import('../views/StockBasicData/Select.vue'),
+  children:[
+    {
+      path: '/StockBasicData/stockBasicData',
+      name: 'stockBasicData',
+      component: () => import('../views/StockBasicData/stockBasicData.vue')
+    },
+    {
+      path: '/StockBasicData/stockBasicDatatwo',
+      name: 'stockBasicDatatwo',
+      component: () => import('../views/StockBasicData/stockBasicDatatwo.vue')
+    },
+    {
+      path: '/StockBasicData/stockBasicyiwu',
+      name: 'stockBasicyiwu',
+      component: () => import('../views/StockBasicData/stockBasicyiwu.vue')
+    },
+  ]
+},
+/*----------- 澶х悊鐗囩 ----------------*/
+{
+path: 'Slicecage',
+name: 'Slicecage',
+component: () => import('../views/Slicecage/slicecage.vue'),
+children:[
+  {
+    path: '/Slicecage/slicecage',
+    name: 'slicecage',
+    component: () => import('../views/Slicecage/slicecage.vue')
+  },
+  
+]
+
+// {
+//   path: '/slicecagehistory',  
+//   name: 'slicecagehistory',  
+//   component: () => import('../views/slicecagehistory.vue')
+// },
+},
+/*----------- 閽㈠寲 ----------------*/
+{
+path: 'PurchaseReturn',
+name: 'purchase',
+component: () => import('../views/PurchaseReturn/purchase.vue'),
+children:[
+  {
+    path: '/PurchaseReturn/purchaseReturn',
+    name: 'purchaseReturn',
+    component: () => import('../views/PurchaseReturn/purchaseReturn.vue')
+  },
+  {
+    path: '/PurchaseReturn/purchaseStorage',
+    name: 'purchaseStorage',
+    component: () => import('../views/PurchaseReturn/purchaseStorage.vue')
+  },
+]
+},
+         /*----------- 浠撳偍涓績 ----------------*/
+         {
+          path: 'GlassStorage',
+          name: 'GlassStorage',
+          component: () => import('../views/GlassStorage/GlassStorage.vue'),
+          children:[
+            {
+              path: '/GlassStorage/MaterialRackManagement',
+              name: 'MaterialRackManagement',
+              component: () => import('../views/GlassStorage/MaterialRackManagement.vue')
+            },
+            {
+              path: '/GlassStorage/rawfilmstorage',
+              name: 'rawfilmstorage',
+              component: () => import('../views/GlassStorage/rawfilmstorage.vue')
+            },
+            {
+              path: '/GlassStorage/rawfilmstorage2',
+              name: 'rawfilmstorage2',
+              component: () => import('../views/GlassStorage/rawfilmstorage2.vue')
+            }
+          ]
+        },
+ 
+         /*----------- 鍙鍖栫郴缁� ----------------*/
+         {
+          path: 'Visualization',
+          name: 'screen',
+          component: () => import('../views/Visualization/screen.vue'),
+          children:[
+            {
+              path: '/Visualization/screenone',
+              name: 'screenone',
+              component: () => import('../views/Visualization/screenone.vue')
+            },
+            {
+              path: '/Visualization/screentwo',
+              name: 'screentwo',
+              component: () => import('../views/Visualization/screentwo.vue')
+            },
+            {
+              path: '/Visualization/screenthree',
+              name: 'screenthree',
+              component: () => import('../views/Visualization/screenthree.vue')
+            }
+          ]
+         },
+/*----------- 绯荤粺绠$悊 ----------------*/
+{
+  path: 'User',
+  name: 'user',
+  component: () => import('../views/User/user.vue'),
+  children:[
+    {
+      path: '/User/userlist',
+      name: 'userlist',
+      component: () => import('../views/User/userlist.vue')
+    },
+    {
+      path: '/User/rolelist',
+      name: 'rolelist',
+      component: () => import('../views/User/rolelist.vue')
+    },
+    {
+      path: '/User/permissions',
+      name: 'permissions',
+      component: () => import('../views/User/permissions.vue')
+    },
+    {
+      path: '/User/userpageNo',
+      name: 'userpageNo',
+      component: () => import('../views/User/userpageNo.vue')
+    }
+  ]
+ },
+  /*----------- 鏄剧ず ----------------*/
+  {
+    path: 'largescreen',
+    name: 'largescreen',
+    component: () => import('../views/largescreen/largescreen.vue'),
+    children:[
+      {
+        path: '/largescreen/largescreen',
+        name: 'largescreen',
+        component: () => import('../views/largescreen/largescreen.vue')
+      },
+    ]
+  },
+  /*----------- 鎶ュ伐绠$悊 ----------------*/
+  {
+    path: 'reportWork',
+    name: 'reportWork',
+    component: () => import('../views/ReportWork/reportWork.vue'),
+    children: [
+      {
+        path: '/ReportWork/reportWork',
+        name: 'reportWork',
+        component: () => import('../views/ReportWork/reportWork.vue')
+      },
+    ]
+  },
+  
+  /*----------- 澶у睆鏄剧ず ----------------*/
+  {
+    path: 'largescreendisplay',
+    name: 'screendisplay',
+    component: () => import('../views/largescreendisplay/screendisplay.vue'),
+    children: [
+      {
+        path: '/largescreendisplay/screendisplay',
+        name: 'screendisplay',
+        component: () => import('../views/largescreendisplay/screendisplay.vue')
+      },
+    ]
+  },
+        /*----------- 涓┖ ----------------*/
+        {
+          path: 'hollow',
+          name: 'hol',
+          component: () => import('../views/hollow/hol.vue'),
+          children: [
+            {
+              path: '/hollow/hollowequipment',
+              name: 'hollowequipment',
+              component: () => import('../views/hollow/hollowequipment.vue')
+            },
+            {
+              path: '/hollow/hollowequipmenttwo',
+              name: 'hollowequipmenttwo',
+              component: () => import('../views/hollow/hollowequipmenttwo.vue')
+            },
+            {
+              path: '/hollow/hollowequipmenthree',
+              name: 'hollowequipmenthree',
+              component: () => import('../views/hollow/hollowequipmenthree.vue')
+            },
+            {
+              path: '/hollow/hollowslicecage',
+              name: 'hollowslicecage',
+              component: () => import('../views/hollow/hollowslicecage.vue')
+            },
+            {
+              path: '/hollow/hollowaluminum',
+              name: 'hollowaluminum',
+              component: () => import('../views/hollow/hollowaluminum.vue')
+            },
+            {
+              path: '/hollow/hollowaluminumtwo',
+              name: 'hollowaluminumtwo',
+              component: () => import('../views/hollow/hollowaluminumtwo.vue')
+            },
+            {
+              path: '/hollow/hollowaluminumthree',
+              name: 'hollowaluminumthree',
+              component: () => import('../views/hollow/hollowaluminumthree.vue')
+            },
+          ]
+        },
+        /*----------- 绠$悊绯荤粺 ----------------*/
+        {
+          path: 'sys',
+          name: 'screen',
+          component: () => import('../views/Visualization/screen.vue'),
+          children: [
+            // {
+            //   path: '/sys/users',
+            //   name: 'SysUser',
+            //   component: User
+            // },
+            // {
+            //   path: '/sys/roles',
+            //   name: 'SysRole',
+            //   component: Role
+            // },
+            // {
+            //   path: '/sys/menus',
+            //   name: 'SysMenu',
+            //   component: Menu
+            // },
+          ]
+        },
+        // {
+        //   path: '',
+        //   redirect: '/hollow/hollowslicecage'
+        // }
+      ]
+    },
+    {
+      path: '/register',
+      name: 'register',
+      component: () => import('../views/RegisterView.vue')
+    },
+    {
+       path: '/slicecagehistory',
+        name: 'slicecagehistory',
+        component: () => import('../views/Slicecage/slicecagehistory.vue'),
+        children: [
+          {
+           path: '/Slicecage/slicecagehistory',
+           name: 'slicecagehistory',
+           component: () => import('../views/Slicecage/slicecagehistory.vue')
+          },
+        ]
+       },
+       {
+          path: '/hellowslicecagehistory',
+           name: 'hellowslicecagehistory',
+           component: () => import('../views/hollow/hellowslicecagehistory.vue'),
+           children: [
+             {
+              path: '/hollow/hellowslicecagehistory',
+              name: 'hellowslicecagehistory',
+              component: () => import('../views/hollow/hellowslicecagehistory.vue')
+             },
+           ]
+          },
+          {
+             path: '/hellowquiphistory',
+              name: 'hellowquiphistory',
+              component: () => import('../views/hollow/hellowquiphistory.vue'),
+              children: [
+                {
+                 path: '/hollow/hellowquiphistory',
+                 name: 'hellowquiphistory',
+                 component: () => import('../views/hollow/hellowquiphistory.vue')
+                },
+              ]
+             },
+             {
+                path: '/hellowquiptwohistory',
+                 name: 'hellowquiptwohistory',
+                 component: () => import('../views/hollow/hellowquiptwohistory.vue'),
+                 children: [
+                   {
+                    path: '/hollow/hellowquiptwohistory',
+                    name: 'hellowquiptwohistory',
+                    component: () => import('../views/hollow/hellowquiptwohistory.vue')
+                   },
+                 ]
+                },
+                {
+                   path: '/hellowquipthreehistory',
+                    name: 'hellowquipthreehistory',
+                    component: () => import('../views/hollow/hellowquipthreehistory.vue'),
+                    children: [
+                      {
+                       path: '/hollow/hellowquipthreehistory',
+                       name: 'hellowquipthreehistory',
+                       component: () => import('../views/hollow/hellowquipthreehistory.vue')
+                      },
+                    ]
+                   },
+          {
+             path: '/cachingbeforehistory',
+              name: 'cachingbeforehistory',
+              component: () => import('../views/Caching/cachingbeforehistory.vue'),
+              children: [
+                {
+                 path: '/Caching/cachingbeforehistory',
+                 name: 'cachingbeforehistory',
+                 component: () => import('../views/Caching/cachingbeforehistory.vue')
+                },
+              ]
+             },
+             {
+              path: '/cachingunhistory',
+               name: 'cachingunhistory',
+               component: () => import('../views/Caching/cachingunhistory.vue'),
+               children: [
+                 {
+                  path: '/Caching/cachingunhistory',
+                  name: 'cachingunhistory',
+                  component: () => import('../views/Caching/cachingunhistory.vue')
+                 },
+               ]
+              },
+              {
+               path: '/rawhistory',
+                name: 'rawhistory',
+                component: () => import('../views/GlassStorage/rawhistory.vue'),
+                children: [
+                  {
+                   path: '/GlassStorage/rawhistory',
+                   name: 'rawhistory',
+                   component: () => import('../views/GlassStorage/rawhistory.vue')
+                  },
+                ]
+               },
+               {
+                path: '/stockhistory',
+                 name: 'stockhistory',
+                 component: () => import('../views/StockBasicData/stockhistory.vue'),
+                 children: [
+                   {
+                    path: '/StockBasicData/stockhistory',
+                    name: 'stockhistory',
+                    component: () => import('../views/StockBasicData/stockhistory.vue')
+                   },
+                 ]
+                },
+                {
+                 path: '/upreturnhistory',
+                  name: 'upreturnhistory',
+                  component: () => import('../views/Returns/upreturnhistory.vue'),
+                  children: [
+                    {
+                     path: '/Returns/upreturnhistory',
+                     name: 'upreturnhistory',
+                     component: () => import('../views/Returns/upreturnhistory.vue')
+                    },
+                  ]
+                 },
+                 {
+                  path: '/upreturnhistory2',
+                   name: 'upreturnhistory2',
+                   component: () => import('../views/Returns/upreturnhistory2.vue'),
+                   children: [
+                     {
+                      path: '/Returns/upreturnhistory2',
+                      name: 'upreturnhistory2',
+                      component: () => import('../views/Returns/upreturnhistory2.vue')
+                     },
+                   ]
+                  },
+                  {
+                   path: '/statistics',
+                    name: 'statistics',
+                    component: () => import('../views/largescreendisplay/statistics.vue'),
+                    children: [
+                      {
+                       path: '/largescreendisplay/statistics',
+                       name: 'statistics',
+                       component: () => import('../views/largescreendisplay/statistics.vue')
+                      },
+                    ]
+                   },
+  ]
+})
+// 瀵艰埅瀹堝崼  
+router.beforeEach((to, from, next) => {  
+  const isAuthenticated = !!localStorage.getItem('authToken'); // 鍋囪杩欐槸浣犵殑鐧诲綍鐘舵�佹鏌ラ�昏緫  
+  if (to.matched.some(record => record.meta.requiresAuth) && !isAuthenticated) {  
+    next({ name: 'login' }); // 濡傛灉闇�瑕佺櫥褰曚絾鏈櫥褰曪紝鍒欓噸瀹氬悜鍒扮櫥褰曢〉闈�  
+  } else {  
+    next(); // 鍚﹀垯缁х画瀵艰埅  
+  }  
+}); 
+export default router
\ No newline at end of file
diff --git a/UI-Project/src/stores/counter.js b/UI-Project/src/stores/counter.js
new file mode 100644
index 0000000..b6757ba
--- /dev/null
+++ b/UI-Project/src/stores/counter.js
@@ -0,0 +1,12 @@
+import { ref, computed } from 'vue'
+import { defineStore } from 'pinia'
+
+export const useCounterStore = defineStore('counter', () => {
+  const count = ref(0)
+  const doubleCount = computed(() => count.value * 2)
+  function increment() {
+    count.value++
+  }
+
+  return { count, doubleCount, increment }
+})
diff --git a/UI-Project/src/stores/sd/product/productGlassType.js b/UI-Project/src/stores/sd/product/productGlassType.js
new file mode 100644
index 0000000..c22e810
--- /dev/null
+++ b/UI-Project/src/stores/sd/product/productGlassType.js
@@ -0,0 +1,11 @@
+import {defineStore} from 'pinia'
+import {ref} from "vue";
+
+export  default defineStore("productGlassType",{
+    state: () =>{
+        let GlassType=$ref(['',''])
+        return {
+            GlassType
+        }
+    }
+})
\ No newline at end of file
diff --git a/UI-Project/src/stores/tableData.js b/UI-Project/src/stores/tableData.js
new file mode 100644
index 0000000..fd4d78a
--- /dev/null
+++ b/UI-Project/src/stores/tableData.js
@@ -0,0 +1,225 @@
+// tableData.js
+
+import { ref } from 'vue';
+
+export const tableData = ref([
+  {
+    location: '1',
+    type: 'Type A',
+    length: '100',
+    height: '50',
+    thickness: '10',
+    quantity: '5',
+    entry_time: '2024-06-19 10:00:00',
+    batchnumber: '444',
+    shelf_status: 1
+  },
+  {
+    location: '2',
+    type: 'Type B',
+    length: '120',
+    height: '60',
+    thickness: '12',
+    quantity: '10',
+    entry_time: '2024-06-19 10:00:00',
+    batchnumber: '444',
+    shelf_status: 0
+  },
+  {
+    location: '3',
+    type: 'Type B',
+    length: '120',
+    height: '60',
+    thickness: '12',
+    quantity: '10',
+    entry_time: '2024-06-19 10:00:00',
+    batchnumber: '444',
+    shelf_status: 1
+  },
+  {
+    location: '4',
+    type: 'Type B',
+    length: '120',
+    height: '60',
+    thickness: '12',
+    quantity: '10',
+    entry_time: '2024-06-19 10:00:00',
+    batchnumber: '444',
+    shelf_status: 1
+  },
+  {
+    location: '5',
+    type: 'Type B',
+    length: '120',
+    height: '60',
+    thickness: '12',
+    quantity: '10',
+    entry_time: '2024-06-19 10:00:00',
+    batchnumber: '444',
+    shelf_status: 1
+  },
+  {
+    location: '1',
+    type: 'Type A',
+    length: '100',
+    height: '50',
+    thickness: '10',
+    quantity: '5',
+    entry_time: '2024-06-19 10:00:00',
+    batchnumber: '444',
+    shelf_status: 1
+  },
+  {
+    location: '2',
+    type: 'Type B',
+    length: '120',
+    height: '60',
+    thickness: '12',
+    quantity: '10',
+    entry_time: '2024-06-19 10:00:00',
+    batchnumber: '444',
+    shelf_status: 0
+  },
+  {
+    location: '3',
+    type: 'Type B',
+    length: '120',
+    height: '60',
+    thickness: '12',
+    quantity: '10',
+    entry_time: '2024-06-19 10:00:00',
+    batchnumber: '444',
+    shelf_status: 1
+  },
+  {
+    location: '4',
+    type: 'Type B',
+    length: '120',
+    height: '60',
+    thickness: '12',
+    quantity: '10',
+    entry_time: '2024-06-19 10:00:00',
+    batchnumber: '444',
+    shelf_status: 1
+  },
+  {
+    location: '5',
+    type: 'Type B',
+    length: '120',
+    height: '60',
+    thickness: '12',
+    quantity: '10',
+    entry_time: '2024-06-19 10:00:00',
+    batchnumber: '444',
+    shelf_status: 1
+  },{
+    location: '1',
+    type: 'Type A',
+    length: '100',
+    height: '50',
+    thickness: '10',
+    quantity: '5',
+    entry_time: '2024-06-19 10:00:00',
+    batchnumber: '444',
+    shelf_status: 1
+  },
+  {
+    location: '2',
+    type: 'Type B',
+    length: '120',
+    height: '60',
+    thickness: '12',
+    quantity: '10',
+    entry_time: '2024-06-19 10:00:00',
+    batchnumber: '444',
+    shelf_status: 0
+  },
+  {
+    location: '3',
+    type: 'Type B',
+    length: '120',
+    height: '60',
+    thickness: '12',
+    quantity: '10',
+    entry_time: '2024-06-19 10:00:00',
+    batchnumber: '444',
+    shelf_status: 1
+  },
+  {
+    location: '4',
+    type: 'Type B',
+    length: '120',
+    height: '60',
+    thickness: '12',
+    quantity: '10',
+    entry_time: '2024-06-19 10:00:00',
+    batchnumber: '444',
+    shelf_status: 1
+  },
+  {
+    location: '5',
+    type: 'Type B',
+    length: '120',
+    height: '60',
+    thickness: '12',
+    quantity: '10',
+    entry_time: '2024-06-19 10:00:00',
+    batchnumber: '444',
+    shelf_status: 1
+  },{
+    location: '1',
+    type: 'Type A',
+    length: '100',
+    height: '50',
+    thickness: '10',
+    quantity: '5',
+    entry_time: '2024-06-19 10:00:00',
+    batchnumber: '444',
+    shelf_status: 1
+  },
+  {
+    location: '2',
+    type: 'Type B',
+    length: '120',
+    height: '60',
+    thickness: '12',
+    quantity: '10',
+    entry_time: '2024-06-19 10:00:00',
+    batchnumber: '444',
+    shelf_status: 0
+  },
+  {
+    location: '3',
+    type: 'Type B',
+    length: '120',
+    height: '60',
+    thickness: '12',
+    quantity: '10',
+    entry_time: '2024-06-19 10:00:00',
+    batchnumber: '444',
+    shelf_status: 1
+  },
+  {
+    location: '4',
+    type: 'Type B',
+    length: '120',
+    height: '60',
+    thickness: '12',
+    quantity: '10',
+    entry_time: '2024-06-19 10:00:00',
+    batchnumber: '444',
+    shelf_status: 1
+  },
+  {
+    location: '5',
+    type: 'Type B',
+    length: '120',
+    height: '60',
+    thickness: '12',
+    quantity: '10',
+    entry_time: '2024-06-19 10:00:00',
+    batchnumber: '444',
+    shelf_status: 1
+  }
+  // Add more data as needed
+]);
diff --git a/UI-Project/src/stores/userInfo.js b/UI-Project/src/stores/userInfo.js
new file mode 100644
index 0000000..bfae4e8
--- /dev/null
+++ b/UI-Project/src/stores/userInfo.js
@@ -0,0 +1,19 @@
+import {defineStore} from 'pinia'
+import {ref} from "vue";
+// import {createWebSocket, global_callback1} from "@/utils/webSocket";
+
+export  default defineStore("userInfo",{
+    state: () =>{
+        let user=ref(null)
+        return {
+            user
+        }
+    },
+    actions:{
+        // createWebSocket(){
+        //     createWebSocket(global_callback1)
+        // }
+
+    },
+    persist: true//鏁版嵁鎸佷箙鍖栵紝闃叉鍒锋柊鏁版嵁娑堝け
+})
\ No newline at end of file
diff --git a/UI-Project/src/utils/WebSocketService.js b/UI-Project/src/utils/WebSocketService.js
new file mode 100644
index 0000000..2a4c9af
--- /dev/null
+++ b/UI-Project/src/utils/WebSocketService.js
@@ -0,0 +1,34 @@
+// WebSocketService.js
+let socket = null;
+export const initializeWebSocket = (socketUrl, messageHandler) => {
+  let messages='' ;
+    if (typeof WebSocket === "undefined") {
+      return null;
+    }
+    const socket = new WebSocket(socketUrl);
+    socket.onopen = function () {
+    };
+    socket.onmessage = (msg) => {
+      if (!msg.data) {
+        return;
+      }
+      const isLastChunk = msg.data.endsWith('<END>');
+      //鏄惁涓烘渶鍚庝竴鍧楁秷鎭�
+      messages += msg.data;
+      if(isLastChunk||msg.data.length<50000) {
+        messages= messages.replace('<END>', '');
+        const obj = JSON.parse(messages);
+        messages='';
+      // 璋冪敤娑堟伅澶勭悊鍑芥暟锛屽皢鏁版嵁浼犻�掔粰 Vue 缁勪欢
+      if (messageHandler) {
+        messageHandler(obj);
+      }
+      }
+    };
+    return socket;
+  };
+  export const closeWebSocket = (socket) => {
+    if (socket && socket.readyState === WebSocket.OPEN) {
+        socket.close();
+    }
+};
\ No newline at end of file
diff --git a/UI-Project/src/utils/api.js b/UI-Project/src/utils/api.js
new file mode 100644
index 0000000..886ffde
--- /dev/null
+++ b/UI-Project/src/utils/api.js
@@ -0,0 +1,205 @@
+// src/services/api.js
+import request from '../utils/request';
+import { ElMessage } from 'element-plus';
+
+ // Replace with your actual backend base URL
+
+// Function to find list of raw usages
+const BASE_URL = 'glassStorage/api/rawUsage';
+const taskBASE_URL = 'glassStorage/api/storageTask';
+
+export const findTasks = () => {
+  const url = `glassStorage/api/storageTask/findTasks`;
+  const options = {
+    method: 'get',
+    url,
+    json: true,
+    
+  };
+ 
+  return new Promise((resolve, reject) => {
+    request(options, (error, response, body) => {
+      if (error) {
+        reject(new Error(error.message));
+      } else {
+        resolve(body);
+      }
+    });
+  });
+};
+
+
+
+export const findList = (params) => {
+  const url = `${BASE_URL}/findList`;
+  const options = {
+    method: 'post',
+    url,
+    json: true,
+    body: params
+  };
+
+  return new Promise((resolve, reject) => {
+    request(options, (error, response, body) => {
+      if (error) {
+        reject(new Error(error.message));
+      } else {
+        resolve(body);
+      }
+    });
+  });
+};
+
+// Function to find raw usage by ID
+export const findById = (id) => {
+  const url = `${BASE_URL}/${id}`;
+  const options = {
+    method: 'get',
+    url,
+    json: true
+  };
+
+  return new Promise((resolve, reject) => {
+    request(options, (error, response, body) => {
+      if (error) {
+        reject(new Error(error.message));
+      } else {
+        resolve(body);
+      }
+    });
+  });
+};
+
+// Function to insert a new raw usage
+export const insertRawUsage = (rawUsage) => {
+  const url = `${BASE_URL}`;
+  const options = {
+    method: 'post',
+    url,
+    json: true,
+    body: rawUsage
+  };
+
+  return new Promise((resolve, reject) => {
+    request(options, (error, response, body) => {
+      if (error) {
+        reject(new Error(error.message));
+      } else {
+        resolve(body);
+      }
+    });
+  });
+};
+
+
+export const updateRawUsage = async (rawUsage) => {
+  try {
+    const response = await request.post(`${BASE_URL}/updaterawUsage`, rawUsage);
+    ElMessage.success('淇敼鎴愬姛');
+    return response.data;
+  } catch (error) {
+    ElMessage.error('淇敼澶辫触');
+    throw error;
+  }
+};
+
+export const deleteRawUsage = async (id) => {
+  try {
+    const response = await request.post(`${BASE_URL}/id`, id);
+    ElMessage.success('鍒犻櫎鍘熷浣跨敤鏁版嵁鎴愬姛');
+    return response.data;
+  } catch (error) {
+    ElMessage.error('鍒犻櫎鍘熷浣跨敤鏁版嵁澶辫触');
+    throw error;
+  }
+};
+
+export const inStorage = async (RawUsageAndShelfRack) => {
+  try {
+    const response = await request.post(`${BASE_URL}/inStorage`, RawUsageAndShelfRack);
+    ElMessage.success('鍏ュ簱鎿嶄綔鎴愬姛');
+    return response.data;
+  } catch (error) {
+    ElMessage.error('鍏ュ簱鎿嶄綔澶辫触');
+    throw error;
+  }
+};
+
+export const outStorage = async (RawUsageAndShelfRack) => {
+  try {
+    const response = await request.post(`${BASE_URL}/outStorage`, RawUsageAndShelfRack);
+    ElMessage.success('鍑哄簱鎿嶄綔鎴愬姛');
+    return response.data;
+  } catch (error) {
+    ElMessage.error('鍑哄簱鎿嶄綔澶辫触');
+    throw error;
+  }
+};
+
+
+
+export const taskUpdate = async (task) => {
+  try {
+    const response = await request.post(`${taskBASE_URL}/taskUpdate`, task);
+
+    return response.data;
+  } catch (error) {
+ 
+    throw error;
+  }
+};
+
+
+
+
+
+
+const API_URL = 'glassStorage/api/shelfRack';  // Adjust this based on your actual API URL
+
+export const shelfRackfindList = (params) => {
+  return request.post(`${API_URL}/findList`, params)
+    .then(response => response.data)
+    .catch(error => {
+      throw error;  // Handle errors appropriately in your frontend
+    });
+};
+
+export const shelfRackfindById = (id) => {
+  return request.get(`${API_URL}/${id}`)
+    .then(response => response.data)
+    .catch(error => {
+      throw error;
+    });
+};
+
+export const insertShelfRack = (shelfRack) => {
+  return request.post(`${API_URL}`, shelfRack)
+    .then(response => response.data)
+    .catch(error => {
+      throw error;
+    });
+};
+
+export const updateShelfRack = (shelfRack) => {
+  return request.put(`${API_URL}`, shelfRack)
+    .then(response => response.data)
+    .catch(error => {
+      throw error;
+    });
+};
+
+export const shelfRackdeleteById = (id) => {
+  return request.delete(`${API_URL}/${id}`)
+    .then(response => response.data)
+    .catch(error => {
+      throw error;
+    });
+};
+
+export const findShelfRack = () => {
+  return request.get(`${API_URL}/findshelfrack`)
+    .then(response => response.data)
+    .catch(error => {
+      throw error;
+    });
+};
\ No newline at end of file
diff --git a/UI-Project/src/utils/constants.js b/UI-Project/src/utils/constants.js
new file mode 100644
index 0000000..32a3ab2
--- /dev/null
+++ b/UI-Project/src/utils/constants.js
@@ -0,0 +1,7 @@
+//  export const WebSocketHost = "192.168.2.100";
+// export const WebSocketHost = "192.168.0.39";
+// export const WebSocketHost = "10.153.19.150";
+// export const WebSocketHost = "10.153.19.47";
+// export const WebSocketHost = "10.153.19.162";
+export const WebSocketHost = "127.0.0.1";
+export const host = "88";
\ No newline at end of file
diff --git a/UI-Project/src/utils/deepClone.js b/UI-Project/src/utils/deepClone.js
new file mode 100644
index 0000000..7ee207f
--- /dev/null
+++ b/UI-Project/src/utils/deepClone.js
@@ -0,0 +1,16 @@
+//娣卞害鎷疯礉锛屼娇鏁版嵁杩涜缁戝畾鏄剧ず
+export default  function deepClone(obj){
+    // 瀵瑰父瑙佺殑鈥滈潪鈥濆�硷紝鐩存帴杩斿洖鍘熸潵鍊�
+    if([null, undefined, NaN, false].includes(obj)) return obj;
+    if(typeof obj !== "object" && typeof obj !== 'function') {
+        //鍘熷绫诲瀷鐩存帴杩斿洖
+        return obj;
+    }
+    var o = Array.isArray(obj) ? [] : {};
+    for(let i in obj) {
+        if(obj.hasOwnProperty(i)){
+            o[i] = typeof obj[i] === "object" ? deepClone(obj[i]) : obj[i];
+        }
+    }
+    return o;
+}
\ No newline at end of file
diff --git a/UI-Project/src/utils/evicePixelRatio.js b/UI-Project/src/utils/evicePixelRatio.js
new file mode 100644
index 0000000..66c63de
--- /dev/null
+++ b/UI-Project/src/utils/evicePixelRatio.js
@@ -0,0 +1,53 @@
+class DevicePixelRatio {
+	constructor() {
+	  this.bodyElement = document.getElementsByTagName('body')[0]; // 缂撳瓨 body 鍏冪礌
+	}
+  
+	// 鍒ゆ柇鏄惁涓� Windows 绯荤粺
+	isWindowsSystem() {
+	  const agent = navigator.userAgent.toLowerCase();
+	  return agent.indexOf("windows") >= 0;
+	}
+  
+	// 閫氱敤浜嬩欢缁戝畾宸ュ叿
+	addHandler(element, type, handler) {
+	  if (element.addEventListener) {
+		element.addEventListener(type, handler, false);
+	  } else if (element.attachEvent) {
+		element.attachEvent("on" + type, handler);
+	  } else {
+		element["on" + type] = handler;
+	  }
+	}
+  
+	// 鏍℃娴忚鍣ㄧ缉鏀炬瘮渚�
+	correctZoom() {
+	  if (this.bodyElement) {
+		// 浣跨敤 1 / window.devicePixelRatio 鏉ヨ皟鏁� zoom
+		this.bodyElement.style.zoom = 1 / window.devicePixelRatio;
+	  }
+	}
+  
+	// 鐩戝惉椤甸潰缂╂斁锛堜娇鐢ㄩ槻鎶栦紭鍖栵級
+	watchResize() {
+	  let timer = null;
+	  this.addHandler(window, 'resize', () => {
+		if (timer) clearTimeout(timer);
+		timer = setTimeout(() => {
+		  this.correctZoom();
+		}, 200); // 寤惰繜 200ms 鎵ц锛岄伩鍏嶉绻佽Е鍙�
+	  });
+	}
+  
+	// 鍒濆鍖栭〉闈㈡瘮渚嬫牎姝�
+	init() {
+	  if (this.isWindowsSystem()) {
+		// 鍒濆鍖栨牎姝�
+		this.correctZoom();
+		// 寮�鍚洃鍚�
+		this.watchResize();
+	  }
+	}
+  }
+  
+  export default DevicePixelRatio;
\ No newline at end of file
diff --git a/UI-Project/src/utils/request.js b/UI-Project/src/utils/request.js
new file mode 100644
index 0000000..7b5da6b
--- /dev/null
+++ b/UI-Project/src/utils/request.js
@@ -0,0 +1,42 @@
+import axios from 'axios'
+import useUserInfoStore from '@/stores/userInfo'
+import {host, WebSocketHost} from '@/utils/constants'
+const userStore=useUserInfoStore()
+const request = axios.create({
+   baseURL: `http://${WebSocketHost}:${host}/api`, // 娉ㄦ剰锛侊紒 杩欓噷鏄叏灞�缁熶竴鍔犱笂浜� 鍚庣鎺ュ彛鍓嶇紑 鍓嶇紑锛屽悗绔繀椤昏繘琛岃法鍩熼厤缃紒
+   timeout: 30000
+})
+//
+// request 鎷︽埅鍣�
+// 鍙互鑷姹傚彂閫佸墠瀵硅姹傚仛涓�浜涘鐞�
+// 姣斿缁熶竴鍔爐oken锛屽璇锋眰鍙傛暟缁熶竴鍔犲瘑
+request.interceptors.request.use(config => {
+   config.headers['Content-Type'] = 'application/json;charset=utf-8';
+   if(userStore.user){
+      config.headers['token'] = userStore.user.token;
+   }
+   // 璁剧疆璇锋眰澶�
+   return config
+}, error => {
+    return Promise.reject(error)
+});
+// response 鎷︽埅鍣�
+// 鍙互鍦ㄦ帴鍙e搷搴斿悗缁熶竴澶勭悊缁撴灉
+request.interceptors.response.use(
+   response => {
+      let res = response.data;
+      // 濡傛灉鏄繑鍥炵殑鏂囦欢
+      if (response.config.responseType === 'blob') {
+          return res
+      }
+      // 鍏煎鏈嶅姟绔繑鍥炵殑瀛楃涓叉暟鎹�
+      if (typeof res === 'string') {
+          res = res ? JSON.parse(res) : res
+      }
+      return res;
+   },
+   error => {
+       return Promise.reject(error)
+   }
+)
+export default request
\ No newline at end of file
diff --git a/UI-Project/src/utils/unloadrequest.js b/UI-Project/src/utils/unloadrequest.js
new file mode 100644
index 0000000..e175ec7
--- /dev/null
+++ b/UI-Project/src/utils/unloadrequest.js
@@ -0,0 +1,48 @@
+import axios from 'axios'
+import config from '../../config';
+import useUserInfoStore from '@/stores/userInfo'
+const userStore=useUserInfoStore()
+const unloadrequest = axios.create({
+    baseURL: `http://${config.serverUrl2}`,  // 娉ㄦ剰锛侊紒 杩欓噷鏄叏灞�缁熶竴鍔犱笂浜� 鍚庣鎺ュ彛鍓嶇紑 鍓嶇紑锛屽悗绔繀椤昏繘琛岃法鍩熼厤缃紒
+    timeout: 5000
+})
+
+//
+
+// request 鎷︽埅鍣�
+// 鍙互鑷姹傚彂閫佸墠瀵硅姹傚仛涓�浜涘鐞�
+// 姣斿缁熶竴鍔爐oken锛屽璇锋眰鍙傛暟缁熶竴鍔犲瘑
+unloadrequest.interceptors.request.use(config => {
+    config.headers['Content-Type'] = 'application/json;charset=utf-8';
+    if(userStore.user){
+        config.headers['token'] = userStore.user.token;
+    }
+      // 璁剧疆璇锋眰澶�
+    return config
+}, error => {
+    return Promise.reject(error)
+});
+
+// response 鎷︽埅鍣�
+// 鍙互鍦ㄦ帴鍙e搷搴斿悗缁熶竴澶勭悊缁撴灉
+unloadrequest.interceptors.response.use(
+    response => {
+        let res = response.data;
+        // 濡傛灉鏄繑鍥炵殑鏂囦欢
+        if (response.config.responseType === 'blob') {
+            return res
+        }
+        // 鍏煎鏈嶅姟绔繑鍥炵殑瀛楃涓叉暟鎹�
+        if (typeof res === 'string') {
+            res = res ? JSON.parse(res) : res
+        }
+        return res;
+    },
+    error => {
+        return Promise.reject(error)
+    }
+)
+
+
+export default unloadrequest
+
diff --git a/UI-Project/src/views/Caching/caching.vue b/UI-Project/src/views/Caching/caching.vue
new file mode 100644
index 0000000..fa4d031
--- /dev/null
+++ b/UI-Project/src/views/Caching/caching.vue
@@ -0,0 +1,44 @@
+<script setup>
+import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
+import {useRouter} from "vue-router";
+let indexFlag=$ref(1)
+function changeRouter(index){
+  indexFlag=index
+}
+</script>
+<template>
+  <!-- <div id="main-div"> -->
+    <div id="main-body">
+      <router-view  />
+    </div>
+  <!-- </div> -->
+</template>
+<style scoped>
+#main-div{
+  width: 100%;
+  height: 100%;
+}
+#div-title{
+  height: 2%;
+  width: 100%;
+}
+#searchButton{
+  margin-top: -5px;
+  margin-left: 1rem;
+}
+/* #searchButton1{
+//margin-left: 10rem;
+} */
+/*main-body鏍峰紡*/
+#main-body{
+  width: 100%;
+  height: 95%;
+  /* margin-top: 1%; */
+}
+#select{
+  margin-left:0.5rem;
+}
+:deep(.indexTag .el-breadcrumb__inner){
+  color: #5CADFE !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Caching/cachingbefore.vue b/UI-Project/src/views/Caching/cachingbefore.vue
new file mode 100644
index 0000000..ddc46f0
--- /dev/null
+++ b/UI-Project/src/views/Caching/cachingbefore.vue
@@ -0,0 +1,548 @@
+<script setup>
+import {onBeforeUnmount, onMounted, onUnmounted, ref, reactive} from "vue";
+import {useRouter} from "vue-router"
+import {host, WebSocketHost} from '@/utils/constants'
+import dayjs from 'dayjs';
+import request from "@/utils/request"
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {ElMessage, ElMessageBox} from 'element-plus'
+import {useI18n} from 'vue-i18n'
+import { inject } from 'vue';
+const globalDate = inject('globalDate');
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const tableDataa = ref([])
+const tableDatab = ref([])
+const tableDatad = ref([])
+const adjustedRects = ref([]);
+const selectValuesa = reactive([]);
+const timeRange = ref([])
+const taskState = ref('')
+const taskStat = ref('')
+const taskType = ref('')
+const glassId = ref('')
+const blindb = ref(false)
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlassOne`;
+const handleMessage = (data) => {
+  const cageInfo = data.taskMessage[0];
+  if (cageInfo && cageInfo.createTime) {
+    cageInfo.formattedCreateTime = formatTimestamp(cageInfo.createTime);
+  }
+  if (cageInfo && cageInfo.updateTime) {
+    cageInfo.formattedupdateTime = formatTimestamp(cageInfo.updateTime);
+  }
+  tableDataa.value = data.EdgStorageCageinfos[0]
+  tableDatab.value = data.taskMessage
+  adjustedRects.value = data.EdgStorageCageinfos[0].map((rect, index) => ({  
+      ...rect,
+      id: rect.id * 9,
+      showRect: !!data.EdgStorageCageinfos[0][index]?.details[0]
+    })); 
+  };
+// 鏍煎紡鍖栧悗绔椂闂村苟璁$畻涓�鍛ㄥ墠鐨勬椂闂�
+const defaultTime = ref<[Date, Date]>([new Date(), new Date()]);
+function parseAndSetTime() {
+  const backendTime = new Date(globalDate);
+  const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 鍑忓幓7澶�
+  oneWeekAgo.setHours(0, 0, 0, 0);
+  timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+  window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+}
+  onMounted(() => {
+  socket = initializeWebSocket(socketUrl, handleMessage);
+  parseAndSetTime();
+});
+// 鍘嗗彶浠诲姟
+const iframeUrl = ref('');
+const handlehistorical = (row) => {
+  blindb.value = true;
+  iframeUrl.value = `${window.location.origin}/#/Caching/cachingbeforehistory`;
+};
+// 鍘嗗彶浠诲姟
+// const historical = async () => {
+//   try { 
+//   let startTime = window.localStorage.getItem('startTime')
+//   var url="/cacheGlass/edgStorageDeviceTaskHistory?deviceId="+1 + "&startTime=" + startTime + "&endTime=" + globalDate + "&glassId=" + '' + "&taskState=" + '' + "&taskType=" + '';
+//       const response = await request.get(url) 
+//       if (response.code == 200) {
+//         ElMessage.success(response.message);
+//         tableDatad.value = response.data;
+//       } else {
+//         ElMessage.error(response.message);
+//     }
+// }
+// catch (error) {
+//     console.error(error);
+//   }
+// }
+const sethistorical = async () => {
+  try { 
+    const params = {
+      deviceId: 1,
+      startTime: (timeRange.value && timeRange.value[0]) || '',
+      endTime: (timeRange.value && timeRange.value[1]) || '',
+      glassId: glassId.value || '',
+      taskState: taskStat.value,
+      taskType: taskType.value || ''
+    };
+    // 鏋勫缓鏌ヨ瀛楃涓�
+    const queryString = new URLSearchParams(params).toString();
+    const url = `/cacheGlass/edgStorageDeviceTaskHistory?${queryString}`;
+      const response = await request.get(url) 
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        tableDatad.value = response.data;
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+// 鐮存崯
+ const handletake = async(row) => { 
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('workOrder.messagedamaged'), 
+      t('workOrder.prompt'),  
+      {  
+        confirmButtonText: t('workOrder.yes'), 
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',  
+      } 
+    );
+    if (confirmResult === 'confirm') {
+      const response = await request.post("/cacheGlass/edgStorageCageDetails/edgDetailsOperate", {
+        glassId: row.glassId,
+        state: 8,
+        line: 1,
+        workingProcedure: '鐞嗙墖绗�',
+    })
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) { 
+  }  
+};  
+// 鎷胯蛋 
+ const handleBindRack = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('workOrder.takemessage'), 
+      t('workOrder.prompt'),  
+      {  
+        confirmButtonText: t('workOrder.yes'), 
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',  
+      } 
+    );
+    if (confirmResult === 'confirm') {
+      const response = await request.post("/cacheGlass/edgStorageCageDetails/edgDetailsOperate", {
+        glassId: row.glassId,
+        state: 9,
+        line: 1,
+        workingProcedure: '鐞嗙墖绗�',
+    })
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+// 浠诲姟閲嶇疆
+const handleptask = async() => { 
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.partasks'), 
+      t('workOrder.prompt'),  
+      {  
+        confirmButtonText: t('workOrder.yes'), 
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',  
+      } 
+    );
+ if (confirmResult === 'confirm') {
+  var url="/cacheGlass/edgStorageDeviceTask/resetTask?deviceId="+ 1;
+      const response = await request.post(url) 
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) { 
+  }  
+};
+// 浠诲姟鎴愬姛澶勭悊
+const successfull = async() => { 
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.psuccessfullyprocessed'), 
+      t('workOrder.prompt'),  
+      {  
+        confirmButtonText: t('workOrder.yes'), 
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',  
+      } 
+    );
+ if (confirmResult === 'confirm') {
+  var url="/cacheGlass/edgStorageDeviceTask/taskSuccess?deviceId="+ 1;
+      const response = await request.post(url) 
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) { 
+  }  
+};
+ // 鍒犻櫎 
+ const handledelete = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.deletemessage'), 
+      t('searchOrder.prompt'),  
+      {  
+        confirmButtonText: t('searchOrder.yes'), 
+        cancelButtonText: t('searchOrder.cancel'),
+        type: 'warning',  
+      } 
+    ); 
+    if (confirmResult === 'confirm') {
+      const response = await request.post("/cacheGlass/edgStorageCageDetails/removeEdgDetails?glassId="+encodeURIComponent(row.glassId))
+    if (response.code === 200) {
+     ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.message);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+const rowClassName = ({ row }) => {
+  // 鏍规嵁 enableState 璁剧疆琛岀殑 CSS 绫�
+  return row.slot % 2 === 0 ? 'success-row' : '';
+};
+// 鏍峰紡閮ㄥ垎
+const styles = `
+  .success-row {
+    --el-table-tr-bg-color: var(--el-color-info-light-9);
+  }
+`;
+// 鍔ㄦ�佹坊鍔犳牱寮忓埌缁勪欢
+const styleElement = document.createElement('style');
+styleElement.textContent = styles;
+document.head.appendChild(styleElement);
+ 
+const optionsa = [
+  {
+    value: 0,
+    label: t('hellow.starttask'),
+  },
+  {
+    value: 1,
+    label: t('searchOrder.endtask'),
+  }
+]
+const optionsb = [
+  {
+    value: 1,
+    label: t('sorter.advancetask'),
+  },
+  {
+    value: 2,
+    label: t('sorter.outputtasks'),
+  },
+  {
+    value: 3,
+    label: t('sorter.straighttasks'),
+  }
+]
+function getStatusTypea(taskType) {
+  switch (taskType) {
+    case 1:
+      return 'info';
+    case 2:
+      return 'success';
+    case 3:
+      return 'danger';
+  }
+}
+function getStatusTexta(taskType) {
+  switch (taskType) {
+    case 1:
+      return t('sorter.advancetask');
+    case 2:
+      return t('sorter.outputtasks');
+    case 3:
+      return t('sorter.straighttasks');
+  }
+}
+function getStatusTypeb(taskState) {
+  switch (taskState) {
+    case 0:
+      return 'info';
+    case 1:
+      return 'success';
+  }
+}
+function getStatusTextb(taskState) {
+  switch (taskState) {
+    case 0:
+      return t('hellow.starttask');
+    case 1:
+      return t('searchOrder.endtask');
+  }
+}
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp) {
+  const date = new Date(timestamp);
+  const year = date.getFullYear();
+  const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+  const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+  const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+  onUnmounted(() => {
+    if (socket) {
+    closeWebSocket(socket);
+    }
+    });
+onBeforeUnmount(() => {
+  closeWebSocket();
+});
+</script>
+<template>
+  <div style="height: 500px;">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;">
+    <el-button style="margin-bottom: 15px;margin-left: 20px;" @click="handlehistorical" type="primary">{{ $t('searchOrder.historicaltasks') }}</el-button>
+    <el-button style="margin-bottom: 15px;margin-left: 20px;" @click="handleptask()" type="warning">{{ $t('searchOrder.partask') }}</el-button>
+    <el-button style="margin-bottom: 15px;margin-left: 20px;" @click="successfull()" type="success">{{ $t('searchOrder.successfullyprocessed') }}</el-button>
+    <div style="position: relative; width: 100%; height: 100%;"> <!-- 娣诲姞鐩稿瀹氫綅 -->
+  <div style="position: absolute; margin-top: 28px; left: 430px; display: flex; z-index: 10;"> <!-- 娣诲姞缁濆瀹氫綅 -->
+    <div>{{ $t('searchOrder.projectnumber') }}</div>
+    <div style="margin-left: 155px;">{{ $t('hellow.flowCardId') }}</div>
+    <div style="margin-left: 152px;">{{ $t('searchOrder.glassID') }}</div>
+    <div style="margin-left: 165px;">{{ $t('searchOrder.width') }}</div>
+    <div style="margin-left: 185px;">{{ $t('searchOrder.height') }}</div>
+    <div style="margin-left: 172px;">{{ $t('searchOrder.thickness') }}</div>
+    <div style="margin-left: 145px;">{{ $t('hellow.operate') }}</div>
+  </div>
+    <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+      <el-table
+      ref="table"
+      style="margin-top: 20px; height: 360px;"
+      :data="tableDataa"
+      :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
+      row-key="id"
+  >
+    <el-table-column prop="slot" align="center" :label="$t('sorter.gridnumber')" min-width="10" />
+          <el-table-column
+            align="center"
+            :label="$t('sorter.startstatus')"
+            min-width="10"
+            prop="enableState"
+          >
+          <template #default="scope">
+            <el-tag
+              :type="scope.row.enableState === 1 ? 'success' : 'warning'"
+            >
+              {{ scope.row.enableState === 1 ? $t('sorter.start') : $t('sorter.disable') }}
+            </el-tag>
+          </template>
+      </el-table-column>
+        <el-table-column>
+    <template #default="props">
+      <el-table 
+      :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
+      :data="props.row.details" style="width: 100%;height: 70px;">
+        <el-table-column prop="engineerId" align="center" min-width="80" />
+          <el-table-column prop="flowCardId" align="center" min-width="80" />
+          <el-table-column prop="glassId" align="center" min-width="80" />
+          <el-table-column prop="width" align="center"  min-width="80" />
+          <el-table-column prop="height" align="center" min-width="80" />
+          <el-table-column prop="thickness" align="center" min-width="80" />
+    <el-table-column fixed="right" align="center" width="150">
+        <template #default="scope">
+          <el-button type="text" plain @click="handletake(scope.row)">{{ $t('searchOrder.breakage') }}</el-button>
+          <el-button type="text" plain @click="handleBindRack(scope.row)">{{ $t('searchOrder.takeout')}} </el-button>
+          <el-button type="text" plain @click="handledelete(scope.row)">{{ $t('searchOrder.delete')}} </el-button>
+        </template>
+      </el-table-column>
+      </el-table>
+      </template>
+    </el-table-column>
+  </el-table>
+ </div>
+</div>
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;margin-top: 15px;">
+        <el-table height="90" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+        <el-table-column prop="glassIdIn" align="center" :label="$t('searchOrder.intoglassid')" min-width="80" />
+      <el-table-column prop="glassIdOut" align="center" :label="$t('searchOrder.outputglassID')" min-width="80" />
+          <el-table-column prop="currentCell" align="center" :label="$t('sorter.layernow')" min-width="80" />
+          <el-table-column prop="startCell" align="center" :label="$t('processCard.layer')" min-width="120" />
+          <el-table-column
+            align="center"
+            :label="$t('film.taskstatus')"
+            min-width="80"
+            prop="taskState"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusTypeb(scope.row.taskState)">  
+          {{ getStatusTextb(scope.row.taskState) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column
+            align="center"
+            :label="$t('film.enabletype')"
+            min-width="80"
+            prop="taskType"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusTypea(scope.row.taskType)">  
+          {{ getStatusTexta(scope.row.taskType) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column prop="formattedCreateTime" align="center" :label="$t('film.createtime')" min-width="120" />
+          <el-table-column prop="formattedupdateTime" align="center" :label="$t('sorter.updateTime')" min-width="120" />
+        </el-table>
+      </div>
+    </el-card>
+  <div class="awatch">
+    <img src="../../assets/woshihuancun.png" alt="" style="width: 50%;height: 70%;margin-left: 30%;margin-top: 20px;position: relative;"> 
+    <div style="position: relative; width: 500px;height: 95px;margin-top: -142px;margin-left: 600px;">
+      <div  
+      v-for="(rect, index) in adjustedRects"
+      v-show="rect.showRect"
+      :key="rect"
+      :style="{ position: 'absolute', 
+      top: `${rect.id}px`, left: `10px`, width: `422px`, height: `3px`,
+      backgroundColor: '#409EFF'
+       }"  
+    >
+  </div>
+  </div>
+</div>
+</div>
+<!-- 鍘嗗彶浠诲姟 -->
+<el-dialog v-model="blindb" top="5vh" width="95%" @close="iframeUrl=''">
+     <iframe 
+     :src="iframeUrl" 
+     marginwidth="2000px"
+     marginheight="2000px"
+     width="100%" 
+     height="750px" 
+     frameborder="0"
+     ></iframe>
+  </el-dialog>
+<!-- <el-dialog v-model="blindb" top="10vh" width="90%">
+  <div style="display: flex;">
+    <el-input v-model="glassId" style="margin-left: 10px;margin-bottom: 10px;width: 270px;" :placeholder="$t('searchOrder.inglassID')" />
+            <el-select 
+            :placeholder="$t('searchOrder.taskstatus')"
+             clearable
+             style="width: 270px;margin-left: 10px;"  
+             v-model="taskStat">
+               <el-option
+                v-for="item in optionsa"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
+          </el-select>
+          <el-select 
+            :placeholder="$t('film.enabletype')"
+             clearable
+             style="width: 270px;margin-left: 10px;"  
+             v-model="taskType">
+               <el-option
+                v-for="item in optionsb"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
+          </el-select>
+          <span class="demonstration" style="margin-left: 20px;margin-top: 3px;">{{ $t('workOrder.time') }}</span>
+            <el-date-picker v-model="timeRange" type="datetimerange" range-separator="鑷�" :start-placeholder="$t('reportmanage.starttime')" 
+             style="margin-left: 15px;" value-format = "YYYY-MM-DD hh:mm:ss"
+              :end-placeholder="$t('reportmanage.endtime')">
+            </el-date-picker>
+          <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="sethistorical()">{{
+        $t('reportmanage.inquire')
+      }}</el-button>
+      </div>
+    <el-table ref="table" style="margin-top: 20px;height: 650px;" :data="tableDatad" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+      <el-table-column prop="glassIdIn" align="center" :label="$t('searchOrder.intoglassid')" min-width="80" />
+      <el-table-column prop="glassIdOut" align="center" :label="$t('searchOrder.outputglassID')" min-width="80" />
+          <el-table-column prop="currentCell" align="center" :label="$t('sorter.layernow')" min-width="80" />
+          <el-table-column prop="startCell" align="center" :label="$t('processCard.layer')" min-width="120" />
+          <el-table-column
+            align="center"
+            :label="$t('film.taskstatus')"
+            min-width="80"
+            prop="taskState"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusTypeb(scope.row.taskState)">  
+          {{ getStatusTextb(scope.row.taskState) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column
+            align="center"
+            :label="$t('film.enabletype')"
+            min-width="80"
+            prop="taskType"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusTypea(scope.row.taskType)">  
+          {{ getStatusTexta(scope.row.taskType) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column prop="createTime" align="center" :label="$t('film.createtime')" min-width="120" />
+          <el-table-column prop="updateTime" align="center" :label="$t('sorter.updateTime')" min-width="120" />
+        </el-table>
+        <template #footer>
+      <div id="dialog-footer">
+        <el-button @click="blindb = false">{{ $t('large.close') }}</el-button>
+      </div>
+    </template>
+  </el-dialog> -->
+</template>
+<style scoped>
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+.awatch{
+  height: 460px;
+  width: 1500px;
+  max-width: 100%;
+}
+</style>
diff --git a/UI-Project/src/views/Caching/cachingbeforehistory.vue b/UI-Project/src/views/Caching/cachingbeforehistory.vue
new file mode 100644
index 0000000..99b8c4f
--- /dev/null
+++ b/UI-Project/src/views/Caching/cachingbeforehistory.vue
@@ -0,0 +1,412 @@
+<template>  
+    <div>  
+  <div style="display: flex;width: 1770px;">
+    <el-input v-model="glassId" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('searchOrder.inglassID')" />
+    <el-select 
+            :placeholder="$t('searchOrder.taskstatus')"
+             clearable
+             style="width: 270px;margin-left: 10px;"  
+             v-model="taskState">
+               <el-option
+                v-for="item in optionsa"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
+          </el-select>
+          <el-select 
+            :placeholder="$t('film.enabletype')"
+             clearable
+             style="width: 270px;margin-left: 10px;"  
+             v-model="taskType">
+               <el-option
+                v-for="item in optionsb"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
+          </el-select>
+          <el-date-picker
+            style="margin-left: 15px;"
+             v-model="timeRange"
+             type="datetimerange"
+             :shortcuts="shortcuts"
+             range-separator="鑷�"
+             :start-placeholder="$t('reportmanage.starttime')"
+             :end-placeholder="$t('reportmanage.endtime')"
+           />
+          <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="handleClick()">{{$t('reportmanage.inquire')}}</el-button>
+     </div>
+     <div style="margin-bottom: 10px;margin-top: 20px;margin-left: 20px;">
+      <el-form>
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="4">
+              <div id="dt" style="font-size: 15px;">
+              <el-form-item :label="$t('hellow.countOutOne')"  style="width: 14vw">
+                {{ countOutOne }}
+              </el-form-item>
+              </div>
+          </el-col>
+          <el-col :span="5">
+            <div id="dta" style="font-size: 15px;">
+          <el-form-item :label="$t('hellow.totalAreaOutOne')" style="width: 14vw">
+                {{ totalAreaOutOne }}
+              </el-form-item>
+              </div>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+        <el-table ref="table" style="margin-top: 20px;height: 580px;width: 1770px;" :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+      <el-table-column prop="glassIdIn" align="center" :label="$t('searchOrder.intoglassid')" min-width="80" />
+      <el-table-column prop="glassIdOut" align="center" :label="$t('searchOrder.outputglassID')" min-width="80" />
+      <el-table-column prop="currentCell" align="center" :label="$t('sorter.layernow')" min-width="80" />
+      <el-table-column prop="startCell" align="center" :label="$t('searchOrder.startCell')" min-width="80" />
+      <!-- <el-table-column prop="endCell" align="center" :label="$t('searchOrder.endCell')" min-width="80" /> -->
+          <el-table-column
+            align="center"
+            :label="$t('film.taskstatus')"
+            min-width="80"
+            prop="taskState"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusTypeb(scope.row.taskState)">  
+          {{ getStatusTextb(scope.row.taskState) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column
+            align="center"
+            :label="$t('film.enabletype')"
+            min-width="80"
+            prop="taskType"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusTypea(scope.row.taskType)">  
+          {{ getStatusTexta(scope.row.taskType) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column prop="createTime" align="center" :label="$t('film.createtime')" min-width="100" />
+          <el-table-column prop="updateTime" align="center" :label="$t('sorter.updateTime')" min-width="100" />
+        </el-table>
+  <div style="margin-top: 20px;margin-left: 40%;">
+        <el-pagination
+          v-model:current-page="currentPage2"
+          :page-size="pageSize"
+          :size="large"
+          :disabled="disabled"
+          layout="prev, pager, next, jumper"
+          :total="totalRecords"
+          @current-change="handlePageChange2"
+          style="margin-top: 10px;"
+      />
+    </div>
+  </div>
+  </template>  
+<script lang="ts" setup>
+import {useI18n} from 'vue-i18n'
+import {useRouter} from "vue-router"
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {ElMessage, ElMessageBox} from 'element-plus'
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+import { inject } from 'vue';
+const globalDate = inject('globalDate');
+const router = useRouter()
+const timeRange = ref([])
+const selectValuesa = reactive([]);
+const tableDatax = ref([])
+const currentPage2 = ref(1)
+const totalRecords = ref(0)
+const totalAreaOutOne = ref(0)
+const countOutOne = ref(0)
+const glassId = ref('');
+const startSlot = ref('');
+const targetSlot = ref('');
+const taskState = ref('');
+const taskType = ref('');
+let getglobalDate = window.localStorage.getItem('getglobalDate')
+const historical = async () => {
+  try {
+  let startTime = window.localStorage.getItem('startTime')
+      const response = await request.post("/cacheGlass/edgStorageDeviceTaskHistory", {
+        deviceId: 1,
+        pageNo: 1,
+        pageSize: 20,
+        glassId: glassId.value,
+        taskState: '',
+        taskType: '',
+        startTime: startTime,
+        endTime: getglobalDate
+    })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        tableDatax.value = response.data.records;
+        totalRecords.value = response.data.total/2 || 0
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+const Daily = async () => {
+  try {
+  let startTime = window.localStorage.getItem('startTime')
+      const response = await request.post("/cacheGlass/edgStorageDeviceTaskHistory/queryEdgDailyProduction", {
+        deviceId: 1,
+        pageNo: 1,
+        pageSize: 20,
+        glassId: glassId.value,
+        taskState: '',
+        taskType: '',
+        startTime: startTime,
+        endTime: getglobalDate
+    })
+      if (response.code == 200) {
+        countOutOne.value = response.data.countOutOne
+        totalAreaOutOne.value = response.data.totalAreaOutOne
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+const handlePageChange2 = (newPage) => {
+  currentPage2.value = newPage;
+  window.localStorage.setItem('pagenumber', currentPage2.value)
+  historicala(currentPage2.value);
+  Dailya(currentPage2.value);
+};
+const historicala = async (page) => {
+  try { 
+  let page = window.localStorage.getItem('pagenumber')
+  let startTime = window.localStorage.getItem('startTime')
+      const response = await request.post("/cacheGlass/edgStorageDeviceTaskHistory", {
+        deviceId: 1,
+        pageNo: page,
+        pageSize: 20,
+        glassId: glassId.value,
+        taskState: taskState.value,
+        taskType: taskType.value,
+        beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+        endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+    })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        tableDatax.value = response.data.records;
+        totalRecords.value = response.data.total/2 || 0
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+const Dailya = async (page) => {
+  try { 
+  let page = window.localStorage.getItem('pagenumber')
+  let startTime = window.localStorage.getItem('startTime')
+      const response = await request.post("/cacheGlass/edgStorageDeviceTaskHistory/queryEdgDailyProduction", {
+        deviceId: 1,
+        pageNo: page,
+        pageSize: 20,
+        glassId: glassId.value,
+        taskState: taskState.value,
+        taskType: taskType.value,
+        beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+        endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+    })
+      if (response.code == 200) {
+        countOutOne.value = response.data.countOutOne
+        totalAreaOutOne.value = response.data.totalAreaOutOne
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+const handleClick = async () => {
+  await sethistorical();
+  await Dailyhistorical();
+};
+// 鍘嗗彶鏌ヨ鐐瑰嚮
+const sethistorical = async () => {
+  try { 
+  let startTime = window.localStorage.getItem('startTime')
+  let page = window.localStorage.getItem('pagenumber')
+  const response = await request.post("/cacheGlass/edgStorageDeviceTaskHistory", {
+        deviceId: 1,
+        pageNo: 1,
+        pageSize: 20,
+        glassId: glassId.value,
+        taskState: taskState.value,
+        taskType: taskType.value,
+        beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+        endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+    })
+      if (response.code == 200) {
+        currentPage2.value = 1;
+        ElMessage.success(response.message);
+        tableDatax.value = response.data.records;
+        totalRecords.value = response.data.total/2 || 0
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+const Dailyhistorical = async () => {
+  try { 
+  let startTime = window.localStorage.getItem('startTime')
+  let page = window.localStorage.getItem('pagenumber')
+  const response = await request.post("/cacheGlass/edgStorageDeviceTaskHistory/queryEdgDailyProduction", {
+        deviceId: 1,
+        pageNo: 1,
+        pageSize: 20,
+        glassId: glassId.value,
+        taskState: taskState.value,
+        taskType: taskType.value,
+        beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+        endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+    })
+      if (response.code == 200) {
+        countOutOne.value = response.data.countOutOne
+        totalAreaOutOne.value = response.data.totalAreaOutOne
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp) {
+  const date = new Date(timestamp);
+  const year = date.getFullYear();
+  const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+  const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+  const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+const shortcuts = [
+  {
+    text: '鏈�杩戜竴鍛�',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setDate(oneWeekAgo.getDate() - 7)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+    },
+  },
+  {
+    text: '鏈�杩戜竴涓湀',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 1)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+    },
+  },
+  {
+    text: '鏈�杩戜笁涓湀',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 3)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+},
+  },
+]
+// 鏍煎紡鍖栧悗绔椂闂村苟璁$畻涓�鍛ㄥ墠鐨勬椂闂�
+const defaultTime = ref<[Date, Date]>([new Date(), new Date()]);
+function parseAndSetTime() {
+  const backendTime = new Date(getglobalDate);
+  const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 鍑忓幓7澶�
+  oneWeekAgo.setHours(0, 0, 0, 0);
+  timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+  window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+}
+function getStatusTypeb(taskState: number) {  
+  switch (taskState) {  
+    case 0:
+      return 'primary';  
+    case 1: 
+      return 'success';  
+  }  
+}
+function getStatusTextb(taskState: number) {
+  switch (taskState) {
+    case 0:  
+      return t('searchOrder.empty');
+    case 1:  
+      return t('searchOrder.endtask');
+  }  
+}
+function getStatusTypea(taskType: number) {  
+  switch (taskType) {  
+    case 1: 
+      return 'primary';  
+    case 2: 
+      return 'success';  
+    case 3:
+      return 'warning';  
+  }  
+}  
+function getStatusTexta(taskType: number) {
+  switch (taskType) {
+    case 1:  
+      return t('sorter.advancetask');
+    case 2:  
+    return t('sorter.outputtasks');
+    case 3:  
+    return t('sorter.straighttasks');
+  }  
+}
+const optionsa = [
+  {
+    value: 0,
+    label: t('searchOrder.empty'),
+  },
+  {
+    value: 1,
+    label: t('searchOrder.endtask'),
+  }
+]
+const optionsb = [
+  {
+    value: 1,
+    label: t('sorter.advancetask'),
+  },
+  {
+    value: 2,
+    label: t('sorter.outputtasks'),
+  },
+  {
+    value: 3,
+    label: t('sorter.straighttasks'),
+  }
+]
+onMounted(() => {
+  parseAndSetTime();
+  historical();
+  Daily()
+});
+  </script>
+  <style scoped>  
+  </style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Caching/cachingun.vue b/UI-Project/src/views/Caching/cachingun.vue
new file mode 100644
index 0000000..5cfea5c
--- /dev/null
+++ b/UI-Project/src/views/Caching/cachingun.vue
@@ -0,0 +1,456 @@
+<script setup>
+import {onBeforeUnmount, onMounted, onUnmounted, ref, reactive} from "vue";
+import {useRouter} from "vue-router"
+import {host, WebSocketHost} from '@/utils/constants'
+import dayjs from 'dayjs';
+import request from "@/utils/request"
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {ElMessage, ElMessageBox} from 'element-plus'
+import {useI18n} from 'vue-i18n'
+import { inject } from 'vue';
+const globalDate = inject('globalDate');
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const tableDataa = ref([])
+const tableDatab = ref([])
+const tableDatad = ref([])
+const adjustedRects = ref([]);
+const selectValuesa = reactive([]);
+const timeRange = ref([])
+const taskState = ref('')
+const taskType = ref('')
+const glassId = ref('')
+const blindb = ref(false)
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlassTwo`;
+const handleMessage = (data) => {
+  const cageInfo = data.taskMessage[0];
+  if (cageInfo && cageInfo.createTime) {
+    cageInfo.formattedCreateTime = formatTimestamp(cageInfo.createTime);
+  }
+  if (cageInfo && cageInfo.updateTime) {
+    cageInfo.formattedupdateTime = formatTimestamp(cageInfo.updateTime);
+  }
+  tableDataa.value = data.EdgStorageCageinfos[0]
+  tableDatab.value = data.taskMessage
+  adjustedRects.value = data.EdgStorageCageinfos[0].map((rect, index) => ({  
+      ...rect,
+      id: rect.id * 9,
+      showRect: !!data.EdgStorageCageinfos[0][index]?.details[0]
+    })); 
+  };
+// 鏍煎紡鍖栧悗绔椂闂村苟璁$畻涓�鍛ㄥ墠鐨勬椂闂�
+const defaultTime = ref<[Date, Date]>([new Date(), new Date()]);
+function parseAndSetTime() {
+  const backendTime = new Date(globalDate);
+  const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 鍑忓幓7澶�
+  oneWeekAgo.setHours(0, 0, 0, 0);
+  timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+  window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+}
+  onMounted(() => {
+  socket = initializeWebSocket(socketUrl, handleMessage);
+  parseAndSetTime();
+});
+// 鍘嗗彶浠诲姟
+const iframeUrl = ref('');
+const handlehistorical = (row) => {
+  blindb.value = true;
+  iframeUrl.value = `${window.location.origin}/#/Caching/cachingunhistory`;
+};
+const sethistorical = async () => {
+  try { 
+    const params = {
+      deviceId: 2,
+      startTime: (timeRange.value && timeRange.value[0]) || '',
+      endTime: (timeRange.value && timeRange.value[1]) || '',
+      glassId: glassId.value || '',
+      taskState: taskState.value,
+      taskType: taskType.value || ''
+    };
+    // 鏋勫缓鏌ヨ瀛楃涓�
+    const queryString = new URLSearchParams(params).toString();
+    const url = `/cacheGlass/edgStorageDeviceTaskHistory?${queryString}`;
+      const response = await request.get(url) 
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        tableDatad.value = response.data;
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+// 鐮存崯
+ const handletake = async(row) => { 
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('workOrder.messagedamaged'), 
+      t('workOrder.prompt'),  
+      {  
+        confirmButtonText: t('workOrder.yes'), 
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',  
+      } 
+    );
+    if (confirmResult === 'confirm') {
+      const response = await request.post("/cacheGlass/edgStorageCageDetails/edgDetailsOperate", {
+        glassId: row.glassId,
+        state: 8,
+        line: 2,
+        workingProcedure: '鐞嗙墖绗�',
+    })
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {
+  }  
+};  
+// 鎷胯蛋 
+ const handleBindRack = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('workOrder.takemessage'), 
+      t('workOrder.prompt'),  
+      {  
+        confirmButtonText: t('workOrder.yes'), 
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',  
+      } 
+    );
+    if (confirmResult === 'confirm') {
+      const response = await request.post("/cacheGlass/edgStorageCageDetails/edgDetailsOperate", {
+        glassId: row.glassId,
+        state: 9,
+        line: 2,
+        workingProcedure: '鐞嗙墖绗�',
+    })
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+// 浠诲姟閲嶇疆
+const handleptask = async() => { 
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.partasks'), 
+      t('workOrder.prompt'),  
+      {  
+        confirmButtonText: t('workOrder.yes'), 
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',  
+      } 
+    );
+ if (confirmResult === 'confirm') {
+  var url="/cacheGlass/edgStorageDeviceTask/resetTask?deviceId="+ 2;
+      const response = await request.post(url) 
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+// 浠诲姟鎴愬姛澶勭悊
+const successfull = async() => { 
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.psuccessfullyprocessed'), 
+      t('workOrder.prompt'),  
+      {  
+        confirmButtonText: t('workOrder.yes'), 
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',  
+      } 
+    );
+ if (confirmResult === 'confirm') {
+  var url="/cacheGlass/edgStorageDeviceTask/taskSuccess?deviceId="+ 2;
+      const response = await request.post(url) 
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {
+  }  
+};
+ // 鍒犻櫎 
+ const handledelete = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.deletemessage'), 
+      t('searchOrder.prompt'),  
+      {  
+        confirmButtonText: t('searchOrder.yes'), 
+        cancelButtonText: t('searchOrder.cancel'),
+        type: 'warning',  
+      } 
+    ); 
+    if (confirmResult === 'confirm') {
+      const response = await request.post("/cacheGlass/edgStorageCageDetails/removeEdgDetails?glassId="+encodeURIComponent(row.glassId))
+    if (response.code === 200) {
+     ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.message);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+const rowClassName = ({ row }) => {
+  // 鏍规嵁 enableState 璁剧疆琛岀殑 CSS 绫�
+  return row.slot % 2 === 0 ? 'success-row' : '';
+};
+// 鏍峰紡閮ㄥ垎
+const styles = `
+  .success-row {
+    --el-table-tr-bg-color: var(--el-color-info-light-9);
+  }
+`;
+// 鍔ㄦ�佹坊鍔犳牱寮忓埌缁勪欢
+const styleElement = document.createElement('style');
+styleElement.textContent = styles;
+document.head.appendChild(styleElement);
+ 
+const optionsa = [
+  {
+    value: 0,
+    label: t('hellow.starttask'),
+  },
+  {
+    value: 1,
+    label: t('searchOrder.endtask'),
+  }
+]
+const optionsb = [
+  {
+    value: 1,
+    label: t('sorter.advancetask'),
+  },
+  {
+    value: 2,
+    label: t('sorter.outputtasks'),
+  },
+  {
+    value: 3,
+    label: t('sorter.straighttasks'),
+  }
+]
+function getStatusTypea(taskType) {
+  switch (taskType) {
+    case 1:
+      return 'info';
+    case 2:
+      return 'success';
+    case 3:
+      return 'danger';
+  }
+}
+function getStatusTexta(taskType) {
+  switch (taskType) {
+    case 1:
+      return t('sorter.advancetask');
+    case 2:
+      return t('sorter.outputtasks');
+    case 3:
+      return t('sorter.straighttasks');
+  }
+}
+function getStatusTypeb(taskState) {
+  switch (taskState) {
+    case 0:
+      return 'info';
+    case 1:
+      return 'success';
+  }
+}
+function getStatusTextb(taskState) {
+  switch (taskState) {
+    case 0:
+      return t('hellow.starttask');
+    case 1:
+      return t('searchOrder.endtask');
+  }
+}
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp) {
+  const date = new Date(timestamp);
+  const year = date.getFullYear();
+  const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+  const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+  const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+  onUnmounted(() => {
+    if (socket) {
+    closeWebSocket(socket);
+    }
+    });
+onBeforeUnmount(() => {
+  closeWebSocket();
+});
+</script>
+<template>
+  <div style="height: 500px;">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;">
+    <el-button style="margin-bottom: 15px;margin-left: 20px;" @click="handlehistorical" type="primary">{{ $t('searchOrder.historicaltasks') }}</el-button>
+    <el-button style="margin-bottom: 15px;margin-left: 20px;" @click="handleptask()" type="warning">{{ $t('searchOrder.partask') }}</el-button>
+    <el-button style="margin-bottom: 15px;margin-left: 20px;" @click="successfull()" type="success">{{ $t('searchOrder.successfullyprocessed') }}</el-button>
+    <div style="position: relative; width: 100%; height: 100%;"> <!-- 娣诲姞鐩稿瀹氫綅 -->
+  <div style="position: absolute; margin-top: 28px; left: 430px; display: flex; z-index: 10;"> <!-- 娣诲姞缁濆瀹氫綅 -->
+    <div>{{ $t('searchOrder.projectnumber') }}</div>
+    <div style="margin-left: 155px;">{{ $t('hellow.flowCardId') }}</div>
+    <div style="margin-left: 152px;">{{ $t('searchOrder.glassID') }}</div>
+    <div style="margin-left: 165px;">{{ $t('searchOrder.width') }}</div>
+    <div style="margin-left: 185px;">{{ $t('searchOrder.height') }}</div>
+    <div style="margin-left: 172px;">{{ $t('searchOrder.thickness') }}</div>
+    <div style="margin-left: 145px;">{{ $t('hellow.operate') }}</div>
+  </div>
+    <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+      <el-table
+      ref="table"
+      style="margin-top: 20px; height: 360px;"
+      :data="tableDataa"
+      :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
+      row-key="id"
+  >
+    <el-table-column prop="slot" align="center" :label="$t('sorter.gridnumber')" min-width="10" />
+          <el-table-column
+            align="center"
+            :label="$t('sorter.startstatus')"
+            min-width="10"
+            prop="enableState"
+          >
+          <template #default="scope">
+            <el-tag
+              :type="scope.row.enableState === 1 ? 'success' : 'warning'"
+            >
+              {{ scope.row.enableState === 1 ? $t('sorter.start') : $t('sorter.disable') }}
+            </el-tag>
+          </template>
+      </el-table-column>
+        <el-table-column>
+    <template #default="props">
+      <el-table 
+      :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
+      :data="props.row.details" style="width: 100%;height: 70px;">
+        <el-table-column prop="engineerId" align="center" min-width="80" />
+          <el-table-column prop="flowCardId" align="center" min-width="80" />
+          <el-table-column prop="glassId" align="center" min-width="80" />
+          <el-table-column prop="width" align="center" min-width="80" />
+          <el-table-column prop="height" align="center" min-width="80" />
+          <el-table-column prop="thickness" align="center" min-width="80" />
+    <el-table-column fixed="right" align="center" width="150">
+        <template #default="scope">
+          <el-button type="text" plain @click="handletake(scope.row)">{{ $t('searchOrder.breakage') }}</el-button>
+          <el-button type="text" plain @click="handleBindRack(scope.row)">{{ $t('searchOrder.takeout')}} </el-button>
+          <el-button type="text" plain @click="handledelete(scope.row)">{{ $t('searchOrder.delete')}} </el-button>
+        </template>
+      </el-table-column>
+      </el-table>
+      </template>
+    </el-table-column>
+  </el-table>
+ </div>
+ </div>
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;margin-top: 15px;">
+        <el-table height="90" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+        <el-table-column prop="glassIdIn" align="center" :label="$t('searchOrder.intoglassid')" min-width="80" />
+      <el-table-column prop="glassIdOut" align="center" :label="$t('searchOrder.outputglassID')" min-width="80" />
+          <el-table-column prop="currentCell" align="center" :label="$t('sorter.layernow')" min-width="80" />
+          <el-table-column prop="startCell" align="center" :label="$t('processCard.layer')" min-width="120" />
+          <el-table-column
+            align="center"
+            :label="$t('film.taskstatus')"
+            min-width="80"
+            prop="taskState"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusTypeb(scope.row.taskState)">  
+          {{ getStatusTextb(scope.row.taskState) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column
+            align="center"
+            :label="$t('film.enabletype')"
+            min-width="80"
+            prop="taskType"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusTypea(scope.row.taskType)">  
+          {{ getStatusTexta(scope.row.taskType) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column prop="formattedCreateTime" align="center" :label="$t('film.createtime')" min-width="120" />
+          <el-table-column prop="formattedupdateTime" align="center" :label="$t('sorter.updateTime')" min-width="120" />
+        </el-table>
+      </div>
+    </el-card>
+  <div class="awatch">
+    <img src="../../assets/woshihuancun.png" alt="" style="width: 50%;height: 70%;margin-left: 30%;margin-top: 20px;position: relative;"> 
+    <div style="position: relative; width: 500px;height: 95px;margin-top: -222px;margin-left: 600px;">
+    <div  
+      v-for="(rect, index) in adjustedRects"
+      v-show="rect.showRect"
+      :key="rect"  
+      :style="{ position: 'absolute', 
+       top: `${rect.id}px`, left: `10px`, width: `422px`, height: `3px`,
+      backgroundColor: '#409EFF'
+       }"  
+    >
+  </div>
+  </div>
+</div>
+</div>
+<!-- 鍘嗗彶浠诲姟 -->
+<el-dialog v-model="blindb" top="5vh" width="95%" @close="iframeUrl=''">
+     <iframe 
+     :src="iframeUrl" 
+     marginwidth="2000px"
+     marginheight="2000px"
+     width="100%" 
+     height="750px" 
+     frameborder="0"
+     ></iframe>
+  </el-dialog>
+</template>
+<style scoped>
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+.awatch{
+  height: 460px;
+  width: 1500px;
+  max-width: 100%;
+}
+</style>
diff --git a/UI-Project/src/views/Caching/cachingunhistory.vue b/UI-Project/src/views/Caching/cachingunhistory.vue
new file mode 100644
index 0000000..bebbc58
--- /dev/null
+++ b/UI-Project/src/views/Caching/cachingunhistory.vue
@@ -0,0 +1,412 @@
+<template>  
+    <div>  
+  <div style="display: flex;width: 1770px;">
+    <el-input v-model="glassId" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('searchOrder.inglassID')" />
+    <el-select 
+            :placeholder="$t('searchOrder.taskstatus')"
+             clearable
+             style="width: 270px;margin-left: 10px;"  
+             v-model="taskState">
+               <el-option
+                v-for="item in optionsa"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
+          </el-select>
+          <el-select 
+            :placeholder="$t('film.enabletype')"
+             clearable
+             style="width: 270px;margin-left: 10px;"  
+             v-model="taskType">
+               <el-option
+                v-for="item in optionsb"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
+          </el-select>
+          <el-date-picker
+            style="margin-left: 15px;"
+             v-model="timeRange"
+             type="datetimerange"
+             :shortcuts="shortcuts"
+             range-separator="鑷�"
+             :start-placeholder="$t('reportmanage.starttime')"
+             :end-placeholder="$t('reportmanage.endtime')"
+           />
+          <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="handleClick()">{{$t('reportmanage.inquire')}}</el-button>
+     </div>
+     <div style="margin-bottom: 10px;margin-top: 20px;margin-left: 20px;">
+      <el-form>
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="4">
+              <div id="dt" style="font-size: 15px;">
+              <el-form-item :label="$t('hellow.countOutTwo')"  style="width: 14vw">
+                {{ countOutOne }}
+              </el-form-item>
+              </div>
+          </el-col>
+          <el-col :span="5">
+            <div id="dta" style="font-size: 15px;">
+          <el-form-item :label="$t('hellow.totalAreaOutTwo')" style="width: 14vw">
+                {{ totalAreaOutOne }}
+              </el-form-item>
+              </div>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+        <el-table ref="table" style="margin-top: 20px;height: 580px;width: 1770px;" :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+      <el-table-column prop="glassIdIn" align="center" :label="$t('searchOrder.intoglassid')" min-width="80" />
+      <el-table-column prop="glassIdOut" align="center" :label="$t('searchOrder.outputglassID')" min-width="80" />
+      <el-table-column prop="currentCell" align="center" :label="$t('sorter.layernow')" min-width="80" />
+      <el-table-column prop="startCell" align="center" :label="$t('searchOrder.startCell')" min-width="80" />
+      <!-- <el-table-column prop="endCell" align="center" :label="$t('searchOrder.endCell')" min-width="80" /> -->
+          <el-table-column
+            align="center"
+            :label="$t('film.taskstatus')"
+            min-width="80"
+            prop="taskState"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusTypeb(scope.row.taskState)">  
+          {{ getStatusTextb(scope.row.taskState) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column
+            align="center"
+            :label="$t('film.enabletype')"
+            min-width="80"
+            prop="taskType"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusTypea(scope.row.taskType)">  
+          {{ getStatusTexta(scope.row.taskType) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column prop="createTime" align="center" :label="$t('film.createtime')" min-width="100" />
+          <el-table-column prop="updateTime" align="center" :label="$t('sorter.updateTime')" min-width="100" />
+        </el-table>
+  <div style="margin-top: 20px;margin-left: 40%;">
+        <el-pagination
+          v-model:current-page="currentPage2"
+          :page-size="pageSize"
+          :size="large"
+          :disabled="disabled"
+          layout="prev, pager, next, jumper"
+          :total="totalRecords"
+          @current-change="handlePageChange2"
+          style="margin-top: 10px;"
+      />
+    </div>
+  </div>
+  </template>  
+<script lang="ts" setup>
+import {useI18n} from 'vue-i18n'
+import {useRouter} from "vue-router"
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {ElMessage, ElMessageBox} from 'element-plus'
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+import { inject } from 'vue';
+const globalDate = inject('globalDate');
+const router = useRouter()
+const timeRange = ref([])
+const selectValuesa = reactive([]);
+const tableDatax = ref([])
+const currentPage2 = ref(1)
+const totalRecords = ref(0)
+const countOutOne = ref(0)
+const totalAreaOutOne = ref(0)
+const glassId = ref('');
+const startSlot = ref('');
+const targetSlot = ref('');
+const taskState = ref('');
+const taskType = ref('');
+let getglobalDate = window.localStorage.getItem('getglobalDate')
+const historical = async () => {
+  try {
+  let startTime = window.localStorage.getItem('startTime')
+      const response = await request.post("/cacheGlass/edgStorageDeviceTaskHistory", {
+        deviceId: 2,
+        pageNo: 1,
+        pageSize: 20,
+        glassId: glassId.value,
+        taskState: '',
+        taskType: '',
+        startTime: startTime,
+        endTime: getglobalDate
+    })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        tableDatax.value = response.data.records;
+        totalRecords.value = response.data.total/2 || 0
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+const Daily = async () => {
+  try {
+  let startTime = window.localStorage.getItem('startTime')
+      const response = await request.post("/cacheGlass/edgStorageDeviceTaskHistory/queryEdgDailyProduction", {
+        deviceId: 2,
+        pageNo: 1,
+        pageSize: 20,
+        glassId: glassId.value,
+        taskState: '',
+        taskType: '',
+        startTime: startTime,
+        endTime: getglobalDate
+    })
+      if (response.code == 200) {
+        countOutOne.value = response.data.countOutOne
+        totalAreaOutOne.value = response.data.totalAreaOutOne
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+const handlePageChange2 = (newPage) => {
+  currentPage2.value = newPage;
+  window.localStorage.setItem('pagenumber', currentPage2.value)
+  historicala(currentPage2.value);
+  Dailya(currentPage2.value);
+};
+const historicala = async (page) => {
+  try { 
+  let page = window.localStorage.getItem('pagenumber')
+  let startTime = window.localStorage.getItem('startTime')
+      const response = await request.post("/cacheGlass/edgStorageDeviceTaskHistory", {
+        deviceId: 2,
+        pageNo: page,
+        pageSize: 20,
+        glassId: glassId.value,
+        taskState: taskState.value,
+        taskType: taskType.value,
+        beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+        endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+    })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        tableDatax.value = response.data.records;
+        totalRecords.value = response.data.total/2 || 0
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+const Dailya = async (page) => {
+  try { 
+  let page = window.localStorage.getItem('pagenumber')
+  let startTime = window.localStorage.getItem('startTime')
+      const response = await request.post("/cacheGlass/edgStorageDeviceTaskHistory/queryEdgDailyProduction", {
+        deviceId: 2,
+        pageNo: page,
+        pageSize: 20,
+        glassId: glassId.value,
+        taskState: taskState.value,
+        taskType: taskType.value,
+        beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+        endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+    })
+      if (response.code == 200) {
+        countOutOne.value = response.data.countOutOne
+        totalAreaOutOne.value = response.data.totalAreaOutOne
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+const handleClick = async () => {
+  await sethistorical();
+  await Dailyhistorical();
+};
+// 鍘嗗彶鏌ヨ鐐瑰嚮
+const sethistorical = async () => {
+  try { 
+  let startTime = window.localStorage.getItem('startTime')
+  let page = window.localStorage.getItem('pagenumber')
+  const response = await request.post("/cacheGlass/edgStorageDeviceTaskHistory", {
+        deviceId: 2,
+        pageNo: 1,
+        pageSize: 20,
+        glassId: glassId.value,
+        taskState: taskState.value,
+        taskType: taskType.value,
+        beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+        endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+    })
+      if (response.code == 200) {
+        currentPage2.value = 1;
+        ElMessage.success(response.message);
+        tableDatax.value = response.data.records;
+        totalRecords.value = response.data.total/2 || 0
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+const Dailyhistorical = async () => {
+  try { 
+  let startTime = window.localStorage.getItem('startTime')
+  let page = window.localStorage.getItem('pagenumber')
+    const response = await request.post("/cacheGlass/edgStorageDeviceTaskHistory/queryEdgDailyProduction", {
+        deviceId: 2,
+        pageNo: 1,
+        pageSize: 20,
+        glassId: glassId.value,
+        taskState: taskState.value,
+        taskType: taskType.value,
+        beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+        endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+    })
+      if (response.code == 200) {
+        countOutOne.value = response.data.countOutOne
+        totalAreaOutOne.value = response.data.totalAreaOutOne
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp) {
+  const date = new Date(timestamp);
+  const year = date.getFullYear();
+  const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+  const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+  const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+const shortcuts = [
+  {
+    text: '鏈�杩戜竴鍛�',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setDate(oneWeekAgo.getDate() - 7)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+    },
+  },
+  {
+    text: '鏈�杩戜竴涓湀',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 1)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+    },
+  },
+  {
+    text: '鏈�杩戜笁涓湀',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 3)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+},
+  },
+]
+// 鏍煎紡鍖栧悗绔椂闂村苟璁$畻涓�鍛ㄥ墠鐨勬椂闂�
+const defaultTime = ref<[Date, Date]>([new Date(), new Date()]);
+function parseAndSetTime() {
+  const backendTime = new Date(getglobalDate);
+  const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 鍑忓幓7澶�
+  oneWeekAgo.setHours(0, 0, 0, 0);
+  timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+  window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+}
+function getStatusTypeb(taskState: number) {  
+  switch (taskState) {  
+    case 0:
+      return 'primary';  
+    case 1: 
+      return 'success';  
+  }  
+}
+function getStatusTextb(taskState: number) {
+  switch (taskState) {
+    case 0:  
+      return t('searchOrder.empty');
+    case 1:  
+      return t('searchOrder.endtask');
+  }  
+}
+function getStatusTypea(taskType: number) {  
+  switch (taskType) {  
+    case 1: 
+      return 'primary';  
+    case 2: 
+      return 'success';  
+    case 3:
+      return 'warning';  
+  }  
+}  
+function getStatusTexta(taskType: number) {
+  switch (taskType) {
+    case 1:  
+      return t('sorter.advancetask');
+    case 2:  
+    return t('sorter.outputtasks');
+    case 3:  
+    return t('sorter.straighttasks');
+  }  
+}
+const optionsa = [
+  {
+    value: 0,
+    label: t('searchOrder.empty'),
+  },
+  {
+    value: 1,
+    label: t('searchOrder.endtask'),
+  }
+]
+const optionsb = [
+  {
+    value: 1,
+    label: t('sorter.advancetask'),
+  },
+  {
+    value: 2,
+    label: t('sorter.outputtasks'),
+  },
+  {
+    value: 3,
+    label: t('sorter.straighttasks'),
+  }
+]
+onMounted(() => {
+  parseAndSetTime();
+  historical();
+  Daily()
+});
+  </script>
+  <style scoped>  
+  </style>
\ No newline at end of file
diff --git a/UI-Project/src/views/GlassStorage/GlassStorage.vue b/UI-Project/src/views/GlassStorage/GlassStorage.vue
new file mode 100644
index 0000000..06fecfb
--- /dev/null
+++ b/UI-Project/src/views/GlassStorage/GlassStorage.vue
@@ -0,0 +1,38 @@
+<script setup>
+import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
+import {useRouter} from "vue-router";
+let indexFlag=$ref(1)
+function changeRouter(index){
+  indexFlag=index
+}
+</script>
+<template>
+    <div id="main-body">
+      <router-view  />
+    </div>
+</template>
+<style scoped>
+#main-div{
+  width: 100%;
+  height: 100%;
+}
+#div-title{
+  height: 2%;
+  width: 100%;
+}
+#searchButton{
+  margin-top: -5px;
+  margin-left: 1rem;
+}
+#main-body{
+  width: 100%;
+  height: 95%;
+  /* margin-top: 1%; */
+}
+#select{
+  margin-left:0.5rem;
+}
+:deep(.indexTag .el-breadcrumb__inner){
+  color: #5CADFE !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue b/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue
new file mode 100644
index 0000000..cb3f66a
--- /dev/null
+++ b/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue
@@ -0,0 +1,687 @@
+<template>
+  <div class="app-container">
+    <el-card style="flex: 1; margin-left: 10px" :loading="loading">
+      <div
+        slot="header"
+        class="clearfix"
+        style="display: flex; align-items: center;margin-top: -20px;"
+      >
+        <!-- 宸︿晶鎸夐挳缁� -->
+        <div>
+          <el-button type="success" @click="storage()"
+            >鍘熺墖浠撳偍璇︽儏</el-button
+          >
+          <el-button type="success" @click="handleInbound()"
+            >鍏ュ簱</el-button
+          >
+          <el-button type="success" >鍚婅浣嶅叆搴�</el-button>
+        </div>
+        <!-- 鍙充晶閫夋嫨妗� -->
+        <el-form-item style="margin-top: 15px; width: 150px;margin-left: 10px;">
+          <el-select v-model="formData2.dzw" placeholder="璇烽�夋嫨鍚婅浣�">
+            <el-option label="鍚婅浣�1" value="鍚婅浣�1"></el-option>
+            <el-option label="鍚婅浣�2" value="鍚婅浣�2"></el-option>
+          </el-select>
+        </el-form-item>
+      </div>
+      <el-dialog v-model="Hidden" top="10vh" width="80%">
+        <el-table
+          :data="tableData"
+          v-model="dialogVisible3"
+          style="width: 98%; height: 200px"
+          @selection-change="handleSelectionChange"
+          :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
+          ref="table"
+          empty-text="No Data"
+        >
+          <el-table-column prop="number" label="搴撲綅鍙�"></el-table-column>
+          <el-table-column prop="rawType" label="绫诲瀷"></el-table-column>
+          <el-table-column prop="rawWidth" label="闀垮害(mm)"></el-table-column>
+          <el-table-column prop="rawHeight" label="楂樺害(mm)"></el-table-column>
+          <el-table-column
+            prop="rawThickness"
+            label="鍘氬害(mm)"
+          ></el-table-column>
+          <el-table-column prop="pieces" label="鏁伴噺"></el-table-column>
+          <el-table-column prop="createTime" label="鍏ュ簱鏃堕棿"></el-table-column>
+          <el-table-column prop="batchId" label="鎵规鍙�"></el-table-column>
+
+          <el-table-column
+            align="center"
+            label="鏂欐灦鐘舵��"
+            min-width="80"
+            prop="enableState"
+          >
+            <template #default="scope">
+              <el-tag
+                :type="getTagType(scope.row.enableState)"
+                @click="toggleStatus(scope.row)"
+              >
+                {{ scope.row.enableState === 1 ? "鍚敤" : "鏈惎鐢�" }}
+              </el-tag>
+            </template>
+          </el-table-column>
+          <!-- 鎿嶄綔鍒� -->
+          <el-table-column label="鎿嶄綔" width="250">
+            <template #default="{ row }">
+              <el-button
+                type="primary"
+                @click="edithandleRowClick(row)"
+                >淇敼</el-button
+              >
+              <el-button type="danger" @click="handleDelete(row)"
+                >鍒犻櫎</el-button
+              >
+              <el-button type="warning" @click="handleCheckout(row)"
+                >鍑哄簱</el-button
+              >
+              <!-- <el-button type="success" @click="addglass()">娣诲姞鍘熺墖</el-button> -->
+            </template>
+          </el-table-column>
+        </el-table>
+        <el-pagination
+          v-if="totalItems > 0"
+          background
+          layout="prev, pager, next"
+          :total="totalItems"
+          :page-size="pageSize"
+          @current-change="handleCurrentChange"
+        ></el-pagination>
+      </el-dialog>
+
+      <el-table
+        :data="tasktableData"
+        style="width: 98%; height: 150px"
+        @selection-change="handleSelectionChange"
+        :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
+        ref="table"
+        empty-text="No Data"
+      >
+        <template #header>
+          <div style="display: flex; align-items: center">
+            <span style="font-size: 16px; font-weight: bold; margin-right: 20px"
+              >浠诲姟鍒楄〃</span
+            >
+          </div>
+        </template>
+        <el-table-column prop="id" label="Glassid"></el-table-column>
+        <el-table-column
+          prop="taskType"
+          label="浠诲姟鎻忚堪"
+          width="250"
+          :formatter="formatTaskType"
+        ></el-table-column>
+        <el-table-column
+          prop="rawThickness"
+          label="鐜荤拑鍘氬害"
+        ></el-table-column>
+        <el-table-column prop="color" label="鐜荤拑鑶滅郴"></el-table-column>
+        <el-table-column prop="startTime" label="鍒涘缓鏃堕棿"></el-table-column>
+
+        <el-table-column
+          align="center"
+          label="浠诲姟鐘舵��"
+          min-width="80"
+          prop="taskState"
+        >
+          <template #default="scope">
+            <el-tag :type="getTagType2(scope.row.taskState)">
+              {{ scope.row.taskState == "completed" ? "瀹屾垚" : "杩涜涓�" }}
+            </el-tag>
+          </template>
+        </el-table-column>
+        <!-- 鎿嶄綔鍒� -->
+        <el-table-column label="鎿嶄綔" width="350">
+          <template #default="{ row }">
+            <el-button type="primary" @click="handleRestart(row)"
+              >閲嶆柊寮�濮�</el-button
+            >
+            <el-button type="danger" @click="handleDeletetask(row)"
+              >鍒犻櫎浠诲姟</el-button
+            >
+            <el-button type="success" @click="handleComplete(row)"
+              >浠诲姟瀹屾垚</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+    <div class="img-ypcc">
+      <div
+        class="img-car1"
+        :style="'z-index:999;left:397px;top:205px;position:absolute;'"
+      >
+        <div
+          v-show="cellshow1"
+          style="
+            margin-top: 10px;
+            width: 200px;
+            height: 5px;
+            background-color: #409eff;
+          "
+        ></div>
+      </div>
+    </div>
+    <!-- 鍏ュ簱瀵硅瘽妗� -->
+    <el-dialog
+      title="鍏ュ簱"
+      v-model="dialogVisible"
+      width="30%"
+      :before-close="handleCloseDialog"
+    >
+      <el-form :model="formData" ref="form" label-width="80px">
+        <el-form-item label="杩涘簱鏂欐灦">
+          <el-select v-model="formData.number" placeholder="璇烽�夋嫨杩涘簱鏂欐灦">
+            <el-option label="1" value="1"></el-option>
+            <el-option label="2" value="2"></el-option>
+            <!-- 鏍规嵁瀹為檯鎯呭喌娣诲姞鏇村閫夐」 -->
+          </el-select>
+        </el-form-item>
+        <el-form-item label="棰滆壊鑶滅郴">
+          <el-select v-model="formData.color" placeholder="璇烽�夋嫨棰滆壊鑶滅郴">
+            <el-option label="Red" value="Red"></el-option>
+            <el-option label="Blue" value="Blue"></el-option>
+            <!-- 鏍规嵁瀹為檯鎯呭喌娣诲姞鏇村閫夐」 -->
+          </el-select>
+        </el-form-item>
+        <el-form-item label="瀹藉害">
+          <el-input
+            v-model.number="formData.rawWidth"
+            placeholder="璇疯緭鍏ュ搴�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="楂樺害">
+          <el-input
+            v-model.number="formData.rawHeight"
+            placeholder="璇疯緭鍏ラ珮搴�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="鍘氬害">
+          <el-input
+            v-model.number="formData.rawThickness"
+            placeholder="璇疯緭鍏ュ帤搴�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="鏁伴噺">
+          <el-input
+            v-model.number="formData.pieces"
+            placeholder="璇疯緭鍏ユ暟閲�"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="handleConfirmInbound"
+          >纭� 瀹�</el-button
+        >
+      </div>
+    </el-dialog>
+
+    <el-dialog title="娣诲姞鍘熺墖" v-model="dialogVisible3" width="50%">
+      <el-form :model="formData3" ref="form" label-width="80px">
+        <el-form-item label="棰滆壊鑶滅郴">
+          <el-input
+            v-model="formData.selectedColor"
+            readonly
+            style="width: 250px; height: 35px; font-size: 20px"
+          ></el-input>
+          <el-dropdown @command="handleCommand">
+            <span class="el-dropdown-link">
+              閫夋嫨<i class="el-icon-arrow-down el-icon--right"></i>
+            </span>
+            <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item
+                v-for="color in colors"
+                :key="color['0_glass_id']"
+                :command="color['0_glass_id']"
+              >
+                {{ color["0_glass_id"] }}
+              </el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
+        </el-form-item>
+
+        <el-form-item label="闀垮害">
+          <el-input
+            v-model="formData.width"
+            required
+            style="width: 250px; font-size: 20px"
+            @focus="clearInput('wid')"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="楂樺害">
+          <el-input
+            v-model="formData.height"
+            required
+            style="width: 250px; font-size: 20px"
+            @focus="clearInput('heig')"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="鍘氬害">
+          <el-input
+            v-model="formData.thickness"
+            required
+            style="width: 250px; font-size: 20px"
+            @focus="clearInput('thinkness')"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="鏁伴噺">
+          <el-input-number
+            v-model="formData.quantity"
+            required
+            :min="0"
+            :max="9000"
+            style="width: 250px; font-size: 20px"
+            @focus="clearInput('num')"
+          ></el-input-number>
+        </el-form-item>
+      </el-form>
+
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible3 = false">鍏抽棴</el-button>
+        <el-button type="primary" @click="submitForm">鎻愪氦</el-button>
+      </span>
+    </el-dialog>
+
+    <el-dialog
+      title="缂栬緫"
+      v-model="editdialogVisible"
+      width="30%"
+      @close="edithandleDialogClose"
+    >
+      <el-form :model="editForm" ref="editFormRef" label-width="80px">
+        <el-form-item label="鏁伴噺">
+          <el-input v-model="editForm.pieces"></el-input>
+        </el-form-item>
+        <el-form-item label="鎵规鍙�">
+          <el-input v-model="editForm.batchId"></el-input>
+        </el-form-item>
+        <el-form-item label="闀垮害">
+          <el-input v-model="editForm.rawWidth"></el-input>
+        </el-form-item>
+        <el-form-item label="楂樺害">
+          <el-input v-model="editForm.rawHeight"></el-input>
+        </el-form-item>
+        <el-form-item label="鍘氬害">
+          <el-input v-model="editForm.rawThickness"></el-input>
+        </el-form-item>
+      </el-form>
+
+      <div class="dialog-footer">
+        <el-button @click="editdialogVisible = false">鍙栨秷</el-button>
+        <el-button type="primary" @click="editsaveEdit">淇濆瓨</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+   
+
+
+<script setup>
+import { ref, onMounted, onBeforeUnmount,onUnmounted } from "vue"; // 瀵煎叆 Vue 3 鐨勬ā鍧�
+//import * as echarts from 'echarts';
+import { ElMessage, ElMessageBox } from "element-plus";
+// import {tableData} from '@/stores/tableData.js';
+import { WebSocketHost, host } from "@/utils/constants";
+import { initializeWebSocket, closeWebSocket } from "@/utils/WebSocketService";
+
+import {
+  updateRawUsage,
+  deleteRawUsage,
+  inStorage,
+  outStorage,
+  taskUpdate,
+} from "@/utils/api";
+
+const loading = ref(false);
+const Hidden = ref(false);
+const tableData = ref([]);
+const totalItems = ref(0);
+totalItems.value = 10;
+const pageSize = 10;
+let currentPage = ref(1);
+const handleCurrentChange = (val) => {
+  currentPage.value = val;
+};
+const formatTaskType = (row, column) => {
+  if (row.taskType === "浠庝粨浣嶅埌鍚婅浣�") {
+    return `浠庝粨浣�${row.shelfRack}鍒板悐瑁呬綅${row.loadRack}`;
+  } else if (row.taskType === "浠庝粨浣嶅埌涓婄墖浣�") {
+    return `浠庝粨浣�${row.shelfRack}鍒颁笂鐗囦綅${row.loadRack}`;
+  } else if (row.taskType === "浠庝笂鐗囦綅鍒颁粨浣�") {
+    return `浠庝笂鐗囦綅${row.loadRack}鍒颁粨浣�${row.shelfRack}`;
+  } else if (row.taskType === "浠庡悐瑁呬綅鍒颁粨浣�") {
+    return `浠庡悐瑁呬綅${row.loadRack}鍒颁粨浣�${row.shelfRack}`;
+  }
+};
+const getTagType2 = (status) => {
+  switch (status) {
+    case "completed":
+      return "success";
+    case "in-progress":
+      return "info";
+    case "warning":
+      return "warning";
+    case "danger":
+      return "danger";
+    default:
+      return "";
+  }
+};
+const getTagType = (status) => {
+  return status === 1 ? "success" : "danger";
+  // 鏍规嵁鐘舵�佸�煎喅瀹氭爣绛剧被鍨嬶紝杩欓噷鍋囪鐘舵�佷负1鏃朵负鎴愬姛锛堢豢鑹诧級锛屽惁鍒欎负澶辫触锛堢孩鑹诧級
+};
+const toggleStatus = (row) => {
+  // 鍒囨崲鏂欐灦鐘舵�佺殑閫昏緫
+  row.enableState = 1 - row.enableState; // Toggle between 0 and 1
+  // 姝ゅ鍙互娣诲姞淇濆瓨鐘舵�佺殑閫昏緫锛屾瘮濡傝皟鐢� API 鏇存柊鏁版嵁
+};
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/storageTask`;
+// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
+const handleMessage = (data) => {
+  // 鏇存柊 tableData 鐨勬暟鎹�
+  tableData.value = data.rack[0]; // 鍋囪 tableData 鏄搷搴斿紡瀵硅薄鎴栧彉閲�
+  tableData.value.forEach((item) => {
+    // 鑾峰彇 createTime 鐨勬椂闂存埑
+    const createTimeTimestamp = item.createTime;
+    // 鍒涘缓鏃ユ湡瀵硅薄
+    const date = new Date(createTimeTimestamp);
+    // 鏍煎紡鍖栨棩鏈熸椂闂翠负鏈湴鏍煎紡
+    const formattedDateTime = date.toLocaleString();
+    // 鏇挎崲鍘熸潵鐨� createTime 瀛楁涓烘牸寮忓寲鍚庣殑鏃ユ湡鏃堕棿瀛楃涓�
+    item.createTime = formattedDateTime;
+  });
+  tasktableData.value = data.tasks[0]; // 鍋囪 tasktableData 鏄搷搴斿紡瀵硅薄鎴栧彉閲�
+  tasktableData.value.forEach((item) => {
+    // 鑾峰彇 createTime 鐨勬椂闂存埑
+    const createTimeTimestamp = item.startTime;
+    // 鍒涘缓鏃ユ湡瀵硅薄
+    const date = new Date(createTimeTimestamp);
+    // 鏍煎紡鍖栨棩鏈熸椂闂翠负鏈湴鏍煎紡
+    const formattedDateTime = date.toLocaleString();
+    // 鏇挎崲鍘熸潵鐨� createTime 瀛楁涓烘牸寮忓寲鍚庣殑鏃ユ湡鏃堕棿瀛楃涓�
+    item.startTime = formattedDateTime;
+  });
+};
+onMounted(() => {
+  socket = initializeWebSocket(socketUrl, handleMessage);
+});
+  onUnmounted(() => {
+    if (socket) {
+    closeWebSocket(socket);
+    }
+    });
+onBeforeUnmount(() => {
+  closeWebSocket();
+});
+const tasktableData = ref([]);
+const dialogVisible = ref(false);
+const formData = ref({
+  number: "",
+  color: "",
+  rawWidth: "",
+  rawHeight: "",
+  rawThickness: "",
+  pieces: "",
+  loadRack: 1,
+});
+const formData2 = ref({
+  dzw: "",
+});
+const handleDelete = (row) => {
+  // 浣跨敤 Element UI 鐨� MessageBox.confirm 鏂规硶杩涜浜屾纭
+  ElMessageBox.confirm("纭畾瑕佹墽琛屽垹闄ゆ搷浣滃悧锛�", "纭鍒犻櫎", {
+    confirmButtonText: "纭",
+    cancelButtonText: "鍙栨秷",
+    type: "warning",
+  })
+    .then(() => {
+      // 鐐瑰嚮纭鎸夐挳鐨勫洖璋冿紝鎵ц鍑哄簱鎿嶄綔
+      const intNumber = {
+        id: parseInt(row.number),
+      };
+      deleteRawUsage(intNumber);
+      console.log("鎵ц鍒犻櫎鎿嶄綔");
+    })
+    .catch(() => {
+      // 鐐瑰嚮鍙栨秷鎸夐挳鐨勫洖璋冿紝涓嶆墽琛屼换浣曟搷浣�
+      console.log("鍙栨秷鍒犻櫎鎿嶄綔");
+    });
+};
+const handleCheckout = (row) => {
+  // 浣跨敤 Element UI 鐨� MessageBox.confirm 鏂规硶杩涜浜屾纭
+  ElMessageBox.confirm("纭畾瑕佹墽琛屽嚭搴撴搷浣滃悧锛�", "纭鍑哄簱", {
+    confirmButtonText: "纭",
+    cancelButtonText: "鍙栨秷",
+    type: "warning",
+  })
+    .then(() => {
+      // 鐐瑰嚮纭鎸夐挳鐨勫洖璋冿紝鎵ц鍑哄簱鎿嶄綔
+      const raw={
+        number:parseInt(row.number),
+        loadRack:2
+      }
+      outStorage(raw)
+      console.log("鎵ц鍑哄簱鎿嶄綔", row);
+    })
+    .catch(() => {
+      // 鐐瑰嚮鍙栨秷鎸夐挳鐨勫洖璋冿紝涓嶆墽琛屼换浣曟搷浣�
+      console.log("鍙栨秷鍑哄簱鎿嶄綔");
+    });
+};
+const handleInbound = () => {
+  // 鎵撳紑鍏ュ簱瀵硅瘽妗�
+  dialogVisible.value = true;
+};
+const storage = () => {
+  // 鎵撳紑鍏ュ簱瀵硅瘽妗�
+  Hidden.value = true;
+};
+const handleCloseDialog = () => {
+  // 鍏抽棴瀵硅瘽妗嗘椂閲嶇疆琛ㄥ崟鏁版嵁
+  formData.value = {
+    number: "",
+    color: "",
+    rawWidth: "",
+    rawHeight: "",
+    rawThickness: "",
+    pieces: "",
+  };
+  dialogVisible.value = false;
+};
+const handleConfirmInbound = () => {
+  inStorage(formData.value);
+  // 澶勭悊纭鍏ュ簱閫昏緫锛屽彲浠ュ湪杩欓噷鎻愪氦琛ㄥ崟鎴栬�呮墽琛屽叾浠栨搷浣�
+  // 鍏抽棴瀵硅瘽妗�
+  dialogVisible.value = false;
+};
+const dialogVisible3 = ref(false);
+const colors = ref([
+  { "0_glass_id": "Red" },
+  { "0_glass_id": "Green" },
+  { "0_glass_id": "Blue" },
+  // Add more colors as needed
+]);
+const formData3 = ref({
+  selectedColor: "",
+  wid: "",
+  heig: "",
+  thinkness: "",
+  num: "",
+});
+const addglass = () => {
+  // 鎵撳紑鍏ュ簱瀵硅瘽妗�
+  dialogVisible3.value = true;
+};
+const handleCommand = (command) => {
+  formData.value.selectedColor = command;
+};
+const clearInput = (field) => {
+  formData.value[field] = "";
+};
+const submitForm = () => {
+  dialogVisible3.value = false;
+  // Add your submit logic here
+};
+const editdialogVisible = ref(false);
+const editForm = ref({
+  id: "",
+  pieces: "",
+  batchId: "",
+  rawWidth: "",
+  rawHeight: "",
+  rawThickness: "",
+});
+const editFormRef = ref(null);
+let currentRow = ref(null);
+// 澶勭悊琛岀偣鍑讳簨浠�
+const edithandleRowClick = (row) => {
+  currentRow.value = row;
+  editForm.value.pieces = row.pieces.toString();
+  editForm.value.batchId = row.batchId;
+  editForm.value.rawWidth = row.rawWidth;
+  editForm.value.rawHeight = row.rawHeight;
+  editForm.value.rawThickness = row.rawThickness;
+  editForm.value.id = row.number;
+  editdialogVisible.value = true;
+};
+// 娣诲姞淇濆瓨缂栬緫鍐呭
+const editsaveEdit = () => {
+  if (!currentRow.value) return;
+  // 鏇存柊褰撳墠琛屾暟鎹�
+  currentRow.value.pieces = editForm.value.pieces;
+  currentRow.value.batchId = editForm.value.batchId;
+  currentRow.value.rawWidth = editForm.value.rawWidth;
+  currentRow.value.rawHeight = editForm.value.rawHeight;
+  currentRow.value.rawThickness = editForm.value.rawThickness;
+  // 璋冪敤鏇存柊鍑芥暟锛屽苟澶勭悊鍏惰繑鍥炵殑 Promise
+  updateRawUsage(editForm.value);
+  // 鍏抽棴瀵硅瘽妗�
+  editdialogVisible.value = false;
+};
+// 瀵硅瘽妗嗗叧闂椂閲嶇疆缂栬緫琛ㄥ崟鍜屽綋鍓嶈鏁版嵁
+const edithandleDialogClose = () => {
+  editForm.value.pieces = "";
+  editForm.value.batchId = "";
+  editForm.value.rawWidth = "";
+  editForm.value.rawHeight = "";
+  editForm.value.rawThickness = "";
+  currentRow.value = null;
+};
+const handleRestart = (row) => {
+  // 浣跨敤 Element UI 鐨� MessageBox.confirm 鏂规硶杩涜浜屾纭
+  ElMessageBox.confirm("纭畾瑕佹墽琛岄噸鏂板紑濮嬫搷浣滃悧锛�", "纭閲嶆柊寮�濮�", {
+    confirmButtonText: "纭",
+    cancelButtonText: "鍙栨秷",
+    type: "warning",
+  })
+    .then(() => {
+      const taskdata={
+        id:row.id,
+        Type:"閲嶆柊寮�濮�"
+      }
+      taskUpdate(taskdata);
+      console.log("鎵ц閲嶆柊寮�濮嬫搷浣�", row);
+    })
+    .catch(() => {
+      // 鐐瑰嚮鍙栨秷鎸夐挳鐨勫洖璋冿紝涓嶆墽琛屼换浣曟搷浣�
+      console.log("鍙栨秷閲嶆柊寮�濮嬫搷浣�");
+    });
+};
+const handleDeletetask = (row) => {
+  // 浣跨敤 Element UI 鐨� MessageBox.confirm 鏂规硶杩涜浜屾纭
+  ElMessageBox.confirm("纭畾瑕佹墽琛屽垹闄や换鍔℃搷浣滃悧锛�", "纭鍒犻櫎浠诲姟", {
+    confirmButtonText: "纭",
+    cancelButtonText: "鍙栨秷",
+    type: "warning",
+  })
+    .then(() => {
+      // 鐐瑰嚮纭鎸夐挳鐨勫洖璋�
+      const taskdata={
+        id:row.id,
+        Type:"鍒犻櫎"
+      }
+      taskUpdate(taskdata);
+      console.log("鎵ц鍒犻櫎浠诲姟鎿嶄綔", row);
+    })
+    .catch(() => {
+      // 鐐瑰嚮鍙栨秷鎸夐挳鐨勫洖璋冿紝涓嶆墽琛屼换浣曟搷浣�
+      console.log("鍙栨秷鍒犻櫎浠诲姟鎿嶄綔");
+    });
+};
+const handleComplete = (row) => {
+  // 浣跨敤 Element UI 鐨� MessageBox.confirm 鏂规硶杩涜浜屾纭
+  ElMessageBox.confirm("纭畾瑕佹墽琛屼换鍔″畬鎴愭搷浣滃悧锛�", "纭浠诲姟瀹屾垚", {
+    confirmButtonText: "纭",
+    cancelButtonText: "鍙栨秷",
+    type: "warning",
+  })
+    .then(() => {
+      const taskdata={
+        id:row.id,
+        Type:"瀹屾垚"
+      }
+      taskUpdate(taskdata);
+      // 鐐瑰嚮纭鎸夐挳鐨勫洖璋�
+      console.log("鎵ц浠诲姟瀹屾垚鎿嶄綔", row);
+    })
+    .catch(() => {
+      // 鐐瑰嚮鍙栨秷鎸夐挳鐨勫洖璋冿紝涓嶆墽琛屼换浣曟搷浣�
+      console.log("鍙栨秷浠诲姟瀹屾垚鎿嶄綔");
+    });
+};
+</script>
+<style scoped>
+#dt {
+  display: block;
+  float: left;
+  line-height: 20px;
+  margin-left: 100px;
+}
+#dta {
+  display: block;
+  float: left;
+  line-height: 20px;
+  margin-left: 80%;
+}
+#dialog-footer {
+  text-align: center;
+  margin-top: -15px;
+}
+.img-ypcc {
+  margin-left: 80px;
+  background-image: url("../../assets/ypcc.png");
+  background-repeat: no-repeat;
+  background-attachment: local;
+  min-height: 600px;
+  width: 1400px;
+  max-width: 100%;
+  background-size: 1400px 600px;
+  overflow: hidden;
+  position: relative;
+  margin-top: 0px;
+}
+.img-car1 {
+  background-image: url("../../assets/ypccche.png");
+  position: absolute;
+  background-repeat: no-repeat;
+  background-attachment: local;
+  min-height: 400px;
+  width: 200px;
+  max-width: 100%;
+  background-size: 200px 170px;
+  overflow: hidden;
+  position: relative;
+}
+.custom-dialog {
+  max-height: 90vh; /* 鏈�澶ч珮搴︿负瑙嗗彛楂樺害鐨�90% */
+  overflow-y: auto; /* 瀵硅瘽妗嗗唴閮ㄥ嚭鐜板瀭鐩存粴鍔ㄦ潯 */
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/GlassStorage/rawfilmstorage.vue b/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
new file mode 100644
index 0000000..b54b5a3
--- /dev/null
+++ b/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
@@ -0,0 +1,1120 @@
+<script lang="ts" setup>
+import { onBeforeUnmount, onMounted, reactive, ref } from "vue";
+import { useRouter } from "vue-router"
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { useI18n } from 'vue-i18n'
+import { host, WebSocketHost } from '@/utils/constants'
+import dayjs from 'dayjs';
+import request from "@/utils/request"
+import { closeWebSocket, initializeWebSocket } from '@/utils/WebSocketService';
+import { inject } from 'vue';
+const router = useRouter()
+const tableDataa = ref([])
+const tableDatab = ref([])
+const tableDatad = ref([])
+const { t } = useI18n()
+const add = ref(false)
+const dialogFormVisiblea = ref(false)
+const dialogFormVisibleb = ref(false)
+const dialogFormVisiblec = ref(false)
+const dialogFormVisiblee = ref(false)
+const blindb = ref(false)
+const Edit = ref(false)
+const card1 = ref(false)
+const card2 = ref(false)
+const card3 = ref(false)
+const card4 = ref(false)
+const card5 = ref(false)
+const card6 = ref(false)
+const card7 = ref(false)
+const card8 = ref(false)
+const card9 = ref(false)
+const card10 = ref(false)
+const card11 = ref(false)
+const card12 = ref(false)
+const card13 = ref(false)
+const card14 = ref(false)
+const card15 = ref(false)
+const card16 = ref(false)
+const card17 = ref(false)
+const card18 = ref(false)
+const card19 = ref(false)
+const card20 = ref(false)
+const card21 = ref(false)
+const card22 = ref(false)
+const card23 = ref(false)
+const card24 = ref(false)
+const card25 = ref(false)
+const card98 = ref(false)
+const card99 = ref(false)
+const card101 = ref(false)
+const card102 = ref(false)
+const card103 = ref(false)
+const card104 = ref(false)
+const timeRange = ref([])
+const timeRangea = ref([])
+const selectValuesa = reactive([]);
+const selectValuesb = reactive([]);
+const patternWidth = ref('');
+const patternHeight = ref('');
+const patternThickness = ref('');
+const filmsId = ref('');
+const remainQuantity = ref('');
+const slot = ref('');
+const leftingStation = ref('');
+const loadingline = ref('');
+let webSocket: WebSocket | null = null;
+const globalDate = inject('globalDate');
+const value = ref('')
+const options = [
+  {
+    value: 98,
+    label: t('film.warehousing1'),
+  },
+  {
+    value: 99,
+    label: t('film.warehousing2'),
+  }
+]
+const report = ref({
+  taskType: '',
+  taskState: '',
+});
+let startTime = window.localStorage.getItem('startTime')
+request.post("/glassStorage/rawGlassStorageTask/setRawGlassTaskRequest", {
+  beginDate: startTime,
+  endDate: globalDate,
+}).then((response) => {
+  if (response.code == 200) {
+  } else {
+    ElMessage.warning(response.msg)
+  }
+});
+// 鏍煎紡鍖栧悗绔椂闂村苟璁$畻涓�鍛ㄥ墠鐨勬椂闂�
+const defaultTime = ref<[Date, Date]>([new Date(), new Date()]);
+function parseAndSetTime() {
+  const backendTime = new Date(globalDate);
+  const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 鍑忓幓7澶�
+  oneWeekAgo.setHours(0, 0, 0, 0);
+  timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+  timeRangea.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+  window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+}
+onMounted(() => {
+  socket = initializeWebSocket(socketUrl, handleMessage);
+  parseAndSetTime();
+});
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/rawGlass`;
+const handleMessage = (data) => {
+  const formattedTasks = data.tasks[0].map(task => {
+    if (task && task.createTime) {
+      return { ...task, createTime: formatTimestamp(task.createTime) };
+    }
+    return task;
+  });
+  tableDataa.value = formattedTasks;
+  if (data.rawStationDetailsList != null) {
+    tableDatab.value = data.rawStationDetailsList[0]
+    if (data.rawStationDetailsList[0][0].patternThickness != null) {
+      card1.value = true
+    }
+    if (data.rawStationDetailsList[0][1].patternThickness != null) {
+      card2.value = true
+    }
+    if (data.rawStationDetailsList[0][2].patternThickness != null) {
+      card3.value = true
+    }
+    if (data.rawStationDetailsList[0][3].patternThickness != null) {
+      card4.value = true
+    }
+    if (data.rawStationDetailsList[0][4].patternThickness != null) {
+      card5.value = true
+    }
+    if (data.rawStationDetailsList[0][5].patternThickness != null) {
+      card6.value = true
+    }
+    if (data.rawStationDetailsList[0][6].patternThickness != null) {
+      card7.value = true
+    }
+    if (data.rawStationDetailsList[0][7].patternThickness != null) {
+      card8.value = true
+    }
+    if (data.rawStationDetailsList[0][8].patternThickness != null) {
+      card9.value = true
+    }
+    if (data.rawStationDetailsList[0][9].patternThickness != null) {
+      card10.value = true
+    }
+    if (data.rawStationDetailsList[0][10].patternThickness != null) {
+      card11.value = true
+    }
+    if (data.rawStationDetailsList[0][11].patternThickness != null) {
+      card12.value = true
+    }
+    if (data.rawStationDetailsList[0][12].patternThickness != null) {
+      card13.value = true
+    }
+    if (data.rawStationDetailsList[0][13].patternThickness != null) {
+      card14.value = true
+    }
+    if (data.rawStationDetailsList[0][14].patternThickness != null) {
+      card15.value = true
+    }
+    if (data.rawStationDetailsList[0][15].patternThickness != null) {
+      card16.value = true
+    }
+    if (data.rawStationDetailsList[0][16].patternThickness != null) {
+      card17.value = true
+    }
+    if (data.rawStationDetailsList[0][17].patternThickness != null) {
+      card18.value = true
+    }
+    if (data.rawStationDetailsList[0][18].patternThickness != null) {
+      card19.value = true
+    }
+    if (data.rawStationDetailsList[0][19].patternThickness != null) {
+      card20.value = true
+    }
+    if (data.rawStationDetailsList[0][20].patternThickness != null) {
+      card21.value = true
+    }
+    if (data.rawStationDetailsList[0][21].patternThickness != null) {
+      card22.value = true
+    }
+    if (data.rawStationDetailsList[0][22].patternThickness != null) {
+      card23.value = true
+    }
+    if (data.rawStationDetailsList[0][23].patternThickness != null) {
+      card24.value = true
+    }
+    if (data.rawStationDetailsList[0][24].patternThickness != null) {
+      card25.value = true
+    }
+    if (data.rawStationDetailsList[0][25].patternThickness != null) {
+      card98.value = true
+    }
+    if (data.rawStationDetailsList[0][26].patternThickness != null) {
+      card99.value = true
+    }
+    if (data.rawStationDetailsList[0][27].patternThickness != null) {
+      card101.value = true
+    }
+    if (data.rawStationDetailsList[0][28].patternThickness != null) {
+      card102.value = true
+    }
+    if (data.rawStationDetailsList[0][29].patternThickness != null) {
+      card103.value = true
+    }
+    if (data.rawStationDetailsList[0][30].patternThickness != null) {
+      card104.value = true
+    }
+  }
+};
+const handleEdit = (row) => {
+  window.localStorage.setItem('deviceId', row.deviceId)
+  window.localStorage.setItem('slot', row.slot)
+  Edit.value = true;
+};
+const handleBinda = (row) => {
+  dialogFormVisibleb.value = true;
+};
+const handleBindc = (row) => {
+  dialogFormVisiblec.value = true;
+};
+const handleBinde = (row) => {
+  dialogFormVisiblee.value = true;
+};
+// 鍒犻櫎 
+const deleteWarehousing = async (row) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('film.dedelete'),
+      t('productStock.prompt'),
+      {
+        confirmButtonText: t('productStock.yes'),
+        cancelButtonText: t('productStock.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+      var url = "/glassStorage/rawGlassStorageDetails/deleteWarehousing?slot=" + row.slot;
+      const response = await request.post(url)
+      // const response = await request.post("/glassStorage/rawGlassStorageDetails/deleteWarehousing",[row.slotId])
+      if (response.code === 200) {
+        ElMessage.success(response.message);
+      } else {
+        ElMessage.error(response.msg);
+      }
+    }
+  } catch (error) {
+  }
+};
+// 鍘熺墖鍏ュ簱
+const handleup = async () => {
+  try {
+    const response = await request.post('/glassStorage/rawGlassStorageDetails/patternWarehousing', {
+      patternWidth: patternWidth.value,
+      patternHeight: patternHeight.value,
+      patternThickness: patternThickness.value,
+      filmsId: filmsId.value,
+      remainQuantity: remainQuantity.value,
+      slot: slot.value,
+    });
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      dialogFormVisibleb.value = false;
+      patternWidth.value = '';
+      patternHeight.value = '';
+      patternThickness.value = '';
+      filmsId.value = '';
+      remainQuantity.value = '';
+      slot.value = '';
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+  }
+};
+// 鍏ュ簱璇锋眰
+const handleupc = async () => {
+  try {
+    var url = "/glassStorage/rawGlassStorageDetails/warehousingRequest?leftingStation=" + leftingStation.value;
+    const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      dialogFormVisiblec.value = false;
+      leftingStation.value = '';
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.msg);
+    }
+  }
+  catch (error) {
+  }
+}
+// 鍑哄簱璇锋眰
+const handleupe = async () => {
+  try {
+    var url = "/glassStorage/rawGlassStorageDetails/outWarehousingRequest?leftingStation=" + leftingStation.value;
+    const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      dialogFormVisiblee.value = false;
+      leftingStation.value = '';
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.msg);
+    }
+  }
+  catch (error) {
+  }
+}
+// 鍑哄簱 
+const openc = async (row) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('film.deoutbound'),
+      t('productStock.prompt'),
+      {
+        confirmButtonText: t('productStock.yes'),
+        cancelButtonText: t('productStock.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+      var url = "/glassStorage/rawGlassStorageDetails/outWarehousing?slotId=" + row.slot;
+      const response = await request.post(url)
+      // const response = await request.post("/glassStorage/rawGlassStorageDetails/outWarehousing",[row.slotId])
+      if (response.code === 200) {
+        ElMessage.success(response.message);
+      } else {
+        ElMessage.error(response.msg);
+      }
+    }
+  } catch (error) {
+  }
+};
+// 鏌ヨ鏁版嵁
+const selectReportData = async () => {
+  let celllist = []
+  let stateList = []
+  if (selectValuesa[0] != null && selectValuesa[0] != 'undefined') {
+    if (selectValuesa[0] != "") {
+      celllist = [selectValuesa[0]];
+    }
+  }
+  if (selectValuesa[1] != null && selectValuesa[1] != 'undefined') {
+    if (selectValuesa[1] != "") {
+      stateList = [selectValuesa[1]];
+    }
+  }
+  const response = await request.post("/glassStorage/rawGlassStorageTask/setRawGlassTaskRequest", {
+    beginDate: (timeRange.value && timeRange.value[0]) || '',
+    endDate: (timeRange.value && timeRange.value[1]) || '',
+    taskState: celllist,
+    taskType: stateList
+  })
+  if (response.code === 200) {
+    // tableDataa.value = response.data;
+    ElMessage.success(response.message);
+  }
+  else {
+    ElMessage.error(response.message);
+  }
+};
+// 鏄惁绂佺敤
+const toggleEnableState = async (row: any) => {
+  if (!row.deviceId) {
+    ElMessage.error(t('basicData.updatanull'));
+    return;
+  }
+  const newState = row.state === 1 ? 0 : 1;
+  try {
+    var url = "/glassStorage/rawGlassStorageStation/updateSlotState?slot=" + row.slot + "&state=" + newState;
+    const response = await request.post(url)
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      row.state = newState;
+    } else {
+      ElMessage.error(response.message);
+    }
+    row.state = newState;
+  } catch (error) {
+    ElMessage.error(t('basicData.glassnull'));
+  }
+};
+// 淇敼鏁伴噺
+const Editclick = async () => {
+  let slot = window.localStorage.getItem('slot')
+  let deviceId = window.localStorage.getItem('deviceId')
+  try {
+    const response = await request.post('/glassStorage/rawGlassStorageDetails/updateQuantity', {
+      deviceId: deviceId,
+      slot: slot,
+      remainQuantity: remainQuantity.value,
+      filmsId: filmsId.value,
+      patternThickness: patternThickness.value,
+      patternHeight: patternHeight.value,
+      patternWidth: patternWidth.value,
+    }
+    );
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      Edit.value = false;
+      tableDatab.value = response.data;
+      patternWidth.value = '';
+      patternHeight.value = '';
+      patternThickness.value = '';
+      filmsId.value = '';
+      remainQuantity.value = '';
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+  }
+};
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp: number | Date): string {
+  const date = new Date(timestamp);
+  const year = date.getFullYear();
+  const month = String(date.getMonth() + 1).padStart(2, '0');
+  const day = String(date.getDate()).padStart(2, '0');
+  const hours = String(date.getHours()).padStart(2, '0');
+  const minutes = String(date.getMinutes()).padStart(2, '0');
+  const seconds = String(date.getSeconds()).padStart(2, '0');
+  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+// 鍘嗗彶浠诲姟
+const iframeUrl = ref('');
+const handlehistorical = (row) => {
+  // historical()
+  // window.localStorage.setItem('pagenumber', 1)
+  blindb.value = true;
+  iframeUrl.value = `${window.location.origin}/#/GlassStorage/rawhistory`;
+};
+// const historical = async () => {
+//   try {
+//   let startTime = window.localStorage.getItem('startTime')
+//       const response = await request.post("/glassStorage/rawGlassStorageTask/queryRawGlassHistoryTask", {
+//         pageNo: 1,
+//         pageSize: 20,
+//         taskState: [],
+//         taskType: [],
+//         beginDate: startTime,
+//         endDate: globalDate
+//     })
+//       if (response.code == 200) {
+//   window.localStorage.setItem('pagenumber', 1)
+// } else {
+//     }
+// }
+// catch (error) {
+//   }
+// }
+// 浠诲姟鎴愬姛澶勭悊
+const successfull = async (row) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('searchOrder.psuccessfullyprocessed'),
+      t('workOrder.prompt'),
+      {
+        confirmButtonText: t('workOrder.yes'),
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+      var url = "/glassStorage/rawGlassStorageTask/taskSuccess?taskId=" + row.id;
+      const response = await request.post(url)
+      if (response.code === 200) {
+        ElMessage.success(response.message);
+      } else {
+        ElMessage.error(response.msg);
+      }
+    }
+  } catch (error) {
+  }
+};
+// 浠诲姟澶辫触澶勭悊
+const handleptask = async (row) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('searchOrder.ptaskfailure'),
+      t('workOrder.prompt'),
+      {
+        confirmButtonText: t('workOrder.yes'),
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+      var url = "/glassStorage/rawGlassStorageTask/taskError?taskId=" + row.id;
+      const response = await request.post(url)
+      if (response.code === 200) {
+        ElMessage.success(response.message);
+      } else {
+        ElMessage.error(response.msg);
+      }
+    }
+  } catch (error) {
+  }
+};
+function getStatusType1(taskType) {
+  switch (taskType) {
+    case 1:
+      return 'info';
+    case 2:
+      return 'warning';
+    case 3:
+      return 'success';
+    case 4:
+      return 'danger';
+    case 5:
+      return 'primary';
+  }
+}
+function getStatusText1(taskType) {
+  switch (taskType) {
+    case 1:
+      return t('sorter.advancetask');//杩涚墖浠诲姟
+    case 2:
+      return t('sorter.outputtasks');//鍑虹墖浠诲姟
+    case 3:
+      return t('sorter.schedulingtasks');//璋冨害浠诲姟
+    case 4:
+      return t('sorter.advancerequests');//杩涚墖璇锋眰
+    case 5:
+      return t('sorter.releaserequest');//鍑虹墖璇锋眰
+  }
+}
+function getStatusType2(taskState) {
+  switch (taskState) {
+    case 0:
+      return 'info';
+    case 2:
+      return 'warning';
+    case 1:
+      return 'success';
+  }
+}
+function getStatusText2(taskState) {
+  switch (taskState) {
+    case 0:
+      return t('film.built');//鏂板缓
+    case 2:
+      return t('film.fail');//澶辫触
+    case 1:
+      return t('film.finish');//瀹屾垚
+  }
+}
+onBeforeUnmount(() => {
+  closeWebSocket();
+}); 
+</script>
+<template>
+  <div style="height: 500px;">
+    <div style="display: flex; flex-direction: row; align-items: center; margin-top: 20px;">
+      <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="dialogFormVisiblea = true">
+        {{ $t('film.mes') }}
+      </el-button>
+      <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleBinda">
+        {{ $t('film.warehousing') }}
+      </el-button>
+      <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleBindc">
+        {{ $t('film.pwarehousing') }}
+      </el-button>
+      <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleBinde">{{
+        $t('film.pwareout')
+      }}
+      </el-button>
+      <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handlehistorical">{{
+        $t('searchOrder.historicaltasks')
+      }}
+      </el-button>
+      <el-date-picker style="margin-left: 10px;" v-model="timeRange" type="datetimerange" format="YYYY/MM/DD HH:mm:ss"
+        value-format="YYYY-MM-DD HH:mm:ss" :start-placeholder="$t('film.starttime')"
+        :end-placeholder="$t('film.endtime')" :default-time="defaultTime" />
+      <el-select v-model="selectValuesa[0]" clearable :placeholder="$t('film.taskstatus')" style="margin-left: 10px;">
+        <el-option :label="$t('film.built')" value="0"></el-option>
+        <el-option :label="$t('film.finish')" value="1"></el-option>
+        <el-option :label="$t('film.fail')" value="2"></el-option>
+      </el-select>
+      <el-select v-model="selectValuesa[1]" clearable :placeholder="$t('film.tasktype')" style="margin-left: 10px;">
+        <el-option :label="$t('sorter.advancetask')" value="1"></el-option>
+        <el-option :label="$t('sorter.outputtasks')" value="2"></el-option>
+        <el-option :label="$t('sorter.schedulingtasks')" value="3"></el-option>
+        <el-option :label="$t('sorter.advancerequests')" value="4"></el-option>
+        <el-option :label="$t('sorter.releaserequest')" value="5"></el-option>
+      </el-select>
+      <el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('film.inquire')
+        }}</el-button>
+    </div>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+        <el-table height="300" ref="table" :data="tableDataa"
+          :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+          <el-table-column prop="id" align="center" :label="$t('film.enableid')" />
+          <el-table-column prop="startSlot" align="center" :label="$t('film.originateslot')" />
+          <el-table-column prop="endSlot" align="center" :label="$t('film.endoriginateslot')" />
+          <el-table-column prop="patternQuantity" align="center" :label="$t('film.patternquantity')" />
+          <el-table-column width="100" align="center" :label="$t('film.enabletype')" prop="taskType">
+            <template #default="scope">
+              <el-tag :type="getStatusType1(scope.row.taskType)">
+                {{ getStatusText1(scope.row.taskType) }}
+              </el-tag>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" :label="$t('film.taskstatus')" prop="taskState">
+            <template #default="scope">
+              <el-tag :type="getStatusType2(scope.row.taskState)">
+                {{ getStatusText2(scope.row.taskState) }}
+              </el-tag>
+            </template>
+          </el-table-column>
+          <el-table-column prop="createTime" align="center" :label="$t('film.createtime')" />
+          <el-table-column fixed="right" :label="$t('film.operate')" align="center">
+            <template #default="scope">
+              <el-button :disabled="(scope.row.taskState !== 0)" type="text" plain @click="successfull(scope.row)">{{
+                $t('searchOrder.successfullyprocessed') }}</el-button>
+              <el-button :disabled="(scope.row.taskState !== 0)" type="text" plain @click="handleptask(scope.row)">{{
+                $t('searchOrder.taskfailure') }}</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+    <div class="img-dlpl">
+      <div class="img-car1" style="z-index:999;top:250px;left:20px;position:absolute;"></div>
+      <!-- <div class="img-car1" :style="'z-index:999;top:250px;left:' + 20 + 'px;position:absolute;'"></div> -->
+      <div class="card1" v-show="card1" style="z-index:999;top:430px;left:53px;position:absolute;"></div>
+      <div class="card2" v-show="card2" style="z-index:999;top:430px;left:80px;position:absolute;"></div>
+      <div class="card3" v-show="card3" style="z-index:999;top:430px;left:108px;position:absolute;"></div>
+      <div class="card98" v-show="card98" style="z-index:999;top:430px;left:143px;position:absolute;"></div>
+      <div class="card4" v-show="card4" style="z-index:999;top:430px;left:202px;position:absolute;"></div>
+      <div class="card5" v-show="card5" style="z-index:999;top:430px;left:227px;position:absolute;"></div>
+      <div class="card6" v-show="card6" style="z-index:999;top:430px;left:253px;position:absolute;"></div>
+      <div class="card7" v-show="card7" style="z-index:999;top:430px;left:280px;position:absolute;"></div>
+      <div class="card8" v-show="card8" style="z-index:999;top:430px;left:308px;position:absolute;"></div>
+      <div class="card9" v-show="card9" style="z-index:999;top:430px;left:337px;position:absolute;"></div>
+      <div class="card10" v-show="card10" style="z-index:999;top:430px;left:364px;position:absolute;"></div>
+      <div class="card11" v-show="card11" style="z-index:999;top:430px;left:391px;position:absolute;"></div>
+      <div class="card99" v-show="card99" style="z-index:999;top:430px;left:426px;position:absolute;"></div>
+      <div class="card12" v-show="card12" style="z-index:999;top:430px;left:489px;position:absolute;"></div>
+      <div class="card13" v-show="card13" style="z-index:999;top:430px;left:514px;position:absolute;"></div>
+      <div class="card14" v-show="card14" style="z-index:999;top:430px;left:540px;position:absolute;"></div>
+      <div class="card15" v-show="card15" style="z-index:999;top:430px;left:566px;position:absolute;"></div>
+      <div class="card16" v-show="card16" style="z-index:999;top:430px;left:595px;position:absolute;"></div>
+      <div class="card17" v-show="card17" style="z-index:999;top:430px;left:624px;position:absolute;"></div>
+      <div class="card18" v-show="card18" style="z-index:999;top:430px;left:654px;position:absolute;"></div>
+      <div class="card19" v-show="card19" style="z-index:999;top:430px;left:682px;position:absolute;"></div>
+      <div class="card20" v-show="card20" style="z-index:999;top:430px;left:707px;position:absolute;"></div>
+      <div class="card25" v-show="card25" style="z-index:999;top:109px;left:664px;position:absolute;"></div>
+      <div class="card24" v-show="card24" style="z-index:999;top:109px;left:639px;position:absolute;"></div>
+      <div class="card23" v-show="card23" style="z-index:999;top:109px;left:616px;position:absolute;"></div>
+      <div class="card22" v-show="card22" style="z-index:999;top:109px;left:592px;position:absolute;"></div>
+      <div class="card21" v-show="card21" style="z-index:999;top:109px;left:564px;position:absolute;"></div>
+      <div class="card101" v-show="card101" style="z-index:999;top:109px;left:364px;position:absolute;"></div>
+      <div class="card102" v-show="card102" style="z-index:999;top:109px;left:334px;position:absolute;"></div>
+      <div class="card103" v-show="card103" style="z-index:999;top:109px;left:96px;position:absolute;"></div>
+      <div class="card104" v-show="card104" style="z-index:999;top:109px;left:70px;position:absolute;"></div>
+    </div>
+    <el-dialog v-model="dialogFormVisiblea" top="5vh" width="85%">
+      <el-table ref="table" style="margin-top: 20px;height: 700px;" :data="tableDatab"
+        :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+        <el-table-column prop="deviceId" fixed align="center" :label="$t('film.station')" min-width="80" />
+        <el-table-column prop="slot" fixed align="center" :label="$t('film.slot')" min-width="80" />
+        <el-table-column prop="patternWidth" align="center" :label="$t('film.width')" min-width="80" />
+        <el-table-column prop="patternHeight" align="center" :label="$t('film.height')" min-width="80" />
+        <el-table-column prop="patternThickness" align="center" :label="$t('film.thickness')" min-width="80" />
+        <el-table-column prop="filmsId" align="center" :label="$t('film.films')" min-width="80" />
+        <el-table-column prop="remainQuantity" align="center" :label="$t('film.remainquantity')" min-width="120" />
+        <el-table-column align="center" :label="$t('film.enablestate')" min-width="80" prop="state">
+          <template #default="scope">
+            <el-tag :type="scope.row.state == 1 ? 'success' : 'danger'" @click="toggleEnableState(scope.row)">
+              {{ scope.row.state == 1 ? $t('film.start') : $t('film.disable') }}
+            </el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="270">
+          <template #default="scope">
+            <el-button type="text" plain @click="handleEdit(scope.row)">{{ $t('film.exit') }}</el-button>
+            <el-button :disabled="!scope.row.remainQuantity" type="text" plain @click="deleteWarehousing(scope.row)">{{
+              $t('film.delete') }}</el-button>
+            <el-button :disabled="!scope.row.remainQuantity || scope.row.remainQuantity === 0" type="text" plain
+              @click="openc(scope.row)">{{ $t('film.outbound') }}</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-dialog>
+    <!-- 鍘嗗彶浠诲姟 -->
+    <el-dialog v-model="blindb" top="5vh" width="95%" @close="iframeUrl = ''">
+      <iframe :src="iframeUrl" marginwidth="2000px" marginheight="2000px" width="100%" height="750px"
+        frameborder="0"></iframe>
+    </el-dialog>
+    <el-dialog v-model="dialogFormVisibleb" top="23vh" width="55%" :title="$t('film.addglass')">
+      <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+        <el-form label-width="150px">
+          <el-form label-width="100px" label-position="right">
+            <el-row style="margin-top: -15px;margin-bottom: -2px;">
+              <el-col :span="6">
+                <div id="dt" style="font-size: 15px;">
+                  <div>
+                    <el-form-item :label="$t('film.widtha')" :required="true" style="width: 17vw;">
+                      <el-input :placeholder="$t('film.inwidth')" v-model="patternWidth" autocomplete="off" />
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-col>
+              <el-col :span="9">
+                <div id="dta" style="font-size: 15px;">
+                  <div>
+                    <el-form-item :label="$t('film.heighta')" :required="true" style="width: 17vw;">
+                      <el-input :placeholder="$t('film.inheight')" v-model="patternHeight" autocomplete="off" />
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-col>
+            </el-row>
+            <el-row style="margin-top: 10px;">
+              <el-col :span="6">
+                <div id="dt" style="font-size: 15px;">
+                  <div>
+                    <el-form-item :label="$t('film.thicknessa')" :required="true" style="width: 17vw;">
+                      <el-input :placeholder="$t('film.inthickness')" v-model="patternThickness" autocomplete="off" />
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-col>
+              <el-col :span="9">
+                <div id="dta" style="font-size: 15px;">
+                  <div>
+                    <el-form-item :label="$t('film.filmsa')" :required="true" style="width: 17vw;">
+                      <el-input :placeholder="$t('film.infilms')" v-model="filmsId" autocomplete="off" />
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-col>
+            </el-row>
+            <el-row style="margin-top: 10px;">
+              <el-col :span="6">
+                <div id="dt" style="font-size: 15px;">
+                  <div>
+                    <el-form-item :label="$t('film.quantitya')" :required="true" style="width: 17vw;">
+                      <el-input :placeholder="$t('film.inquantity')" v-model="remainQuantity" autocomplete="off" />
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-col>
+              <el-col :span="9">
+                <div id="dta" style="font-size: 15px;">
+                  <div>
+                    <el-form-item :label="$t('film.inwarehousing')" :required="true" style="width: 17vw">
+                      <el-select :placeholder="$t('film.selectwarehousing')" style="width: 270px" v-model="slot">
+                        <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
+                      </el-select>
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-col>
+            </el-row>
+          </el-form>
+        </el-form>
+      </div>
+      <template #footer>
+        <div id="dialog-footer">
+          <el-button type="primary" @click="handleup">
+            {{ $t('basicData.confirm') }}
+          </el-button>
+          <el-button @click="dialogFormVisibleb = false">{{ $t('basicData.cancel') }}</el-button>
+        </div>
+      </template>
+    </el-dialog>
+    <el-dialog v-model="dialogFormVisiblec" top="24vh" width="30%" :title="$t('film.pwarehousing')">
+      <div style="margin-left: 50px;margin-bottom: 10px;">
+        <el-form-item :label="$t('film.position')" :required="true">
+          <el-select v-model="leftingStation" clearable :placeholder="$t('film.cposition')" style="margin-left: 20px;">
+            <el-option :label="$t('film.position1')" value="98"></el-option>
+            <el-option :label="$t('film.position2')" value="99"></el-option>
+          </el-select>
+        </el-form-item>
+      </div>
+      <template #footer>
+        <div id="dialog-footer">
+          <el-button type="primary" @click="handleupc">
+            {{ $t('basicData.confirm') }}
+          </el-button>
+          <el-button @click="dialogFormVisiblec = false">{{ $t('basicData.cancel') }}</el-button>
+        </div>
+      </template>
+    </el-dialog>
+    <el-dialog v-model="dialogFormVisiblee" top="24vh" width="30%" :title="$t('film.pwareout')">
+      <div style="margin-left: 50px;margin-bottom: 10px;">
+        <el-form-item :label="$t('film.position')" :required="true">
+          <el-select v-model="leftingStation" clearable :placeholder="$t('film.cposition')" style="margin-left: 20px;">
+            <el-option :label="$t('film.position1')" value="98"></el-option>
+            <el-option :label="$t('film.position2')" value="99"></el-option>
+          </el-select>
+        </el-form-item>
+      </div>
+      <template #footer>
+        <div id="dialog-footer">
+          <el-button type="primary" @click="handleupe">
+            {{ $t('basicData.confirm') }}
+          </el-button>
+          <el-button @click="dialogFormVisiblee = false">{{ $t('basicData.cancel') }}</el-button>
+        </div>
+      </template>
+    </el-dialog>
+    <el-dialog v-model="Edit" top="23vh" width="55%" :title="$t('film.addglass')">
+      <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+        <el-form label-width="150px">
+          <el-form label-width="100px" label-position="right">
+            <el-row style="margin-top: -15px;margin-bottom: -2px;">
+              <el-col :span="6">
+                <div id="dt" style="font-size: 15px;">
+                  <div>
+                    <el-form-item :label="$t('film.widtha')" :required="true" style="width: 17vw;">
+                      <el-input :placeholder="$t('film.inwidth')" v-model="patternWidth" autocomplete="off" />
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-col>
+              <el-col :span="9">
+                <div id="dta" style="font-size: 15px;">
+                  <div>
+                    <el-form-item :label="$t('film.heighta')" :required="true" style="width: 17vw;">
+                      <el-input :placeholder="$t('film.inheight')" v-model="patternHeight" autocomplete="off" />
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-col>
+            </el-row>
+            <el-row style="margin-top: 10px;">
+              <el-col :span="6">
+                <div id="dt" style="font-size: 15px;">
+                  <div>
+                    <el-form-item :label="$t('film.thicknessa')" :required="true" style="width: 17vw;">
+                      <el-input :placeholder="$t('film.inthickness')" v-model="patternThickness" autocomplete="off" />
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-col>
+              <el-col :span="9">
+                <div id="dta" style="font-size: 15px;">
+                  <div>
+                    <el-form-item :label="$t('film.filmsa')" :required="true" style="width: 17vw;">
+                      <el-input :placeholder="$t('film.infilms')" v-model="filmsId" autocomplete="off" />
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-col>
+            </el-row>
+            <el-row style="margin-top: 10px;">
+              <el-col :span="6">
+                <div id="dt" style="font-size: 15px;">
+                  <div>
+                    <el-form label-width="210px">
+                      <el-form-item :label="$t('film.thickremainquantity')" :required="true"
+                        style="width: 44.5vw;margin-left: -40px;">
+                        <el-input v-model="remainQuantity" autocomplete="off" :placeholder="$t('film.inquantity')" />
+                      </el-form-item>
+                    </el-form>
+                  </div>
+                </div>
+              </el-col>
+            </el-row>
+          </el-form>
+        </el-form>
+      </div>
+      <template #footer>
+        <div id="dialog-footer">
+          <el-button type="primary" @click="Editclick">
+            {{ $t('basicData.confirm') }}
+          </el-button>
+          <el-button @click="Edit = false">{{ $t('basicData.cancel') }}</el-button>
+        </div>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+<style scoped>
+#dt {
+  display: block;
+  float: left;
+  line-height: 20px;
+  margin-left: 100px;
+}
+
+#dta {
+  display: block;
+  float: left;
+  line-height: 20px;
+  margin-left: 80%;
+}
+
+.awatch {
+  height: 400px;
+  width: 1500px;
+  max-width: 100%;
+}
+
+#dialog-footer {
+  text-align: center;
+  margin-top: -15px;
+}
+
+.img-dlpl {
+  margin-left: 330px;
+  margin-top: 10px;
+  background-image: url('../../assets/ypcc.png');
+  background-repeat: no-repeat;
+  background-attachment: local;
+  min-height: 700px;
+  width: 800px;
+  max-width: 100%;
+  background-size: 800px 700px;
+  overflow: hidden;
+  position: relative
+}
+
+.img-car1 {
+  display: flex;
+  background-image: url('../../assets/C1.png');
+  position: absolute;
+  background-repeat: no-repeat;
+  background-attachment: local;
+  min-height: 150px;
+  width: 70px;
+  max-width: 100%;
+  background-size: 70px 150px;
+  overflow: hidden;
+  position: relative
+}
+
+.card1 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card2 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card3 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card4 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card5 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card6 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card7 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card8 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card9 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card10 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card11 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card12 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card13 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card14 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card15 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card16 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card17 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card18 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card19 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card20 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card21 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card22 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card23 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card24 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card25 {
+  width: 14px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card101 {
+  width: 10px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card102 {
+  width: 10px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card103 {
+  width: 10px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card104 {
+  width: 10px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card98 {
+  width: 25px;
+  height: 110px;
+  background-color: #911005
+}
+
+.card99 {
+  width: 25px;
+  height: 110px;
+  background-color: #911005
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/GlassStorage/rawfilmstorage2.vue b/UI-Project/src/views/GlassStorage/rawfilmstorage2.vue
new file mode 100644
index 0000000..8065916
--- /dev/null
+++ b/UI-Project/src/views/GlassStorage/rawfilmstorage2.vue
@@ -0,0 +1,1424 @@
+<script lang="ts" setup>
+import { onBeforeUnmount, onMounted, reactive, ref } from "vue";
+import { useRouter } from "vue-router"
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { useI18n } from 'vue-i18n'
+import { host, WebSocketHost } from '@/utils/constants'
+import dayjs from 'dayjs';
+import request from "@/utils/request"
+import { closeWebSocket, initializeWebSocket } from '@/utils/WebSocketService';
+import { inject } from 'vue';
+const router = useRouter()
+const tableDataa = ref([])
+const tableDatab = ref([])
+const tableDatad = ref([])
+const { t } = useI18n()
+const add = ref(false)
+const dialogFormVisiblea = ref(false)
+const dialogFormVisibleb = ref(false)
+const dialogFormVisiblec = ref(false)
+const dialogFormVisiblee = ref(false)
+const blindb = ref(false)
+const Edit = ref(false)
+const card1 = ref(false)
+const card2 = ref(false)
+const card3 = ref(false)
+const card4 = ref(false)
+const card5 = ref(false)
+const card6 = ref(false)
+const card7 = ref(false)
+const card8 = ref(false)
+const card9 = ref(false)
+const card10 = ref(false)
+const card11 = ref(false)
+const card12 = ref(false)
+const card13 = ref(false)
+const card14 = ref(false)
+const card15 = ref(false)
+const card16 = ref(false)
+const card17 = ref(false)
+const card18 = ref(false)
+const card19 = ref(false)
+const card20 = ref(false)
+const card21 = ref(false)
+const card22 = ref(false)
+const card23 = ref(false)
+const card24 = ref(false)
+const card25 = ref(false)
+const card26 = ref(false)
+const card27 = ref(false)
+const card28 = ref(false)
+
+const card31 = ref(false)
+const card32 = ref(false)
+const card33 = ref(false)
+const card34 = ref(false)
+const card35 = ref(false)
+const card36 = ref(false)
+const card37 = ref(false)
+
+const card40 = ref(false)
+const card41 = ref(false)
+const card42 = ref(false)
+const card43 = ref(false)
+const card44 = ref(false)
+const card45 = ref(false)
+const card46 = ref(false)
+const card47 = ref(false)
+const card48 = ref(false)
+const card49 = ref(false)
+
+const card38 = ref(false)
+const card101 = ref(false)
+
+const timeRange = ref([])
+const timeRangea = ref([])
+const selectValuesa = reactive([]);
+const selectValuesb = reactive([]);
+const patternWidth = ref('');
+const patternHeight = ref('');
+const patternThickness = ref('');
+const filmsId = ref('');
+const remainQuantity = ref('');
+const slot = ref('');
+const leftingStation = ref('');
+const loadingline = ref('');
+let webSocket: WebSocket | null = null;
+const globalDate = inject('globalDate');
+const value = ref('')
+const options = [
+  {
+    value: 101,
+    label: t('film.warehousing1'),
+  },
+]
+const report = ref({
+  taskType: '',
+  taskState: '',
+});
+let startTime = window.localStorage.getItem('startTime')
+request.post("/glassStorage/rawGlassStorageTask/setRawGlassTaskRequest", {
+  beginDate: startTime,
+  endDate: globalDate,
+}).then((response) => {
+  if (response.code == 200) {
+  } else {
+    ElMessage.warning(response.msg)
+  }
+});
+// 鏍煎紡鍖栧悗绔椂闂村苟璁$畻涓�鍛ㄥ墠鐨勬椂闂�
+const defaultTime = ref<[Date, Date]>([new Date(), new Date()]);
+function parseAndSetTime() {
+  const backendTime = new Date(globalDate);
+  const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 鍑忓幓7澶�
+  oneWeekAgo.setHours(0, 0, 0, 0);
+  timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+  timeRangea.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+  window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+}
+onMounted(() => {
+  socket = initializeWebSocket(socketUrl, handleMessage);
+  parseAndSetTime();
+});
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/rawGlass`;
+const handleMessage = (data) => {
+  const formattedTasks = data.tasks[0].map(task => {
+    if (task && task.createTime) {
+      return { ...task, createTime: formatTimestamp(task.createTime) };
+    }
+    return task;
+  });
+  tableDataa.value = formattedTasks;
+  if (data.rawStationDetailsList != null) {
+    tableDatab.value = data.rawStationDetailsList[0]
+    if (data.rawStationDetailsList[0][0].patternThickness != null) {
+      card1.value = true
+    }
+    if (data.rawStationDetailsList[0][1].patternThickness != null) {
+      card2.value = true
+    }
+    if (data.rawStationDetailsList[0][2].patternThickness != null) {
+      card3.value = true
+    }
+    if (data.rawStationDetailsList[0][3].patternThickness != null) {
+      card4.value = true
+    }
+    if (data.rawStationDetailsList[0][4].patternThickness != null) {
+      card5.value = true
+    }
+    if (data.rawStationDetailsList[0][5].patternThickness != null) {
+      card6.value = true
+    }
+    if (data.rawStationDetailsList[0][6].patternThickness != null) {
+      card7.value = true
+    }
+    if (data.rawStationDetailsList[0][7].patternThickness != null) {
+      card8.value = true
+    }
+    if (data.rawStationDetailsList[0][8].patternThickness != null) {
+      card9.value = true
+    }
+    if (data.rawStationDetailsList[0][9].patternThickness != null) {
+      card10.value = true
+    }
+    if (data.rawStationDetailsList[0][10].patternThickness != null) {
+      card11.value = true
+    }
+    if (data.rawStationDetailsList[0][11].patternThickness != null) {
+      card12.value = true
+    }
+    if (data.rawStationDetailsList[0][12].patternThickness != null) {
+      card13.value = true
+    }
+    if (data.rawStationDetailsList[0][13].patternThickness != null) {
+      card14.value = true
+    }
+    if (data.rawStationDetailsList[0][14].patternThickness != null) {
+      card15.value = true
+    }
+    if (data.rawStationDetailsList[0][15].patternThickness != null) {
+      card16.value = true
+    }
+    if (data.rawStationDetailsList[0][16].patternThickness != null) {
+      card17.value = true
+    }
+    if (data.rawStationDetailsList[0][17].patternThickness != null) {
+      card18.value = true
+    }
+    if (data.rawStationDetailsList[0][18].patternThickness != null) {
+      card19.value = true
+    }
+    if (data.rawStationDetailsList[0][19].patternThickness != null) {
+      card20.value = true
+    }
+    if (data.rawStationDetailsList[0][20].patternThickness != null) {
+      card21.value = true
+    }
+    if (data.rawStationDetailsList[0][21].patternThickness != null) {
+      card22.value = true
+    }
+    if (data.rawStationDetailsList[0][22].patternThickness != null) {
+      card23.value = true
+    }
+    if (data.rawStationDetailsList[0][23].patternThickness != null) {
+      card24.value = true
+    }
+    if (data.rawStationDetailsList[0][24].patternThickness != null) {
+      card25.value = true
+    }
+    if (data.rawStationDetailsList[0][25].patternThickness != null) {
+      card26.value = true
+    }
+    if (data.rawStationDetailsList[0][26].patternThickness != null) {
+      card27.value = true
+    }
+    if (data.rawStationDetailsList[0][27].patternThickness != null) {
+      card28.value = true
+    }
+
+    if (data.rawStationDetailsList[0][28].patternThickness != null) {
+      card31.value = true
+    }
+    if (data.rawStationDetailsList[0][29].patternThickness != null) {
+      card32.value = true
+    }
+    if (data.rawStationDetailsList[0][30].patternThickness != null) {
+      card33.value = true
+    }
+    if (data.rawStationDetailsList[0][31].patternThickness != null) {
+      card34.value = true
+    }
+    if (data.rawStationDetailsList[0][32].patternThickness != null) {
+      card35.value = true
+    }
+    if (data.rawStationDetailsList[0][33].patternThickness != null) {
+      card36.value = true
+    }
+    if (data.rawStationDetailsList[0][34].patternThickness != null) {
+      card37.value = true
+    }
+
+
+    if (data.rawStationDetailsList[0][35].patternThickness != null) {
+      card40.value = true
+    }
+    if (data.rawStationDetailsList[0][36].patternThickness != null) {
+      card41.value = true
+    }
+    if (data.rawStationDetailsList[0][37].patternThickness != null) {
+      card42.value = true
+    }
+    if (data.rawStationDetailsList[0][38].patternThickness != null) {
+      card43.value = true
+    }
+    if (data.rawStationDetailsList[0][39].patternThickness != null) {
+      card44.value = true
+    }
+    if (data.rawStationDetailsList[0][40].patternThickness != null) {
+      card45.value = true
+    }
+    if (data.rawStationDetailsList[0][41].patternThickness != null) {
+      card46.value = true
+    }
+    if (data.rawStationDetailsList[0][42].patternThickness != null) {
+      card47.value = true
+    }
+    if (data.rawStationDetailsList[0][43].patternThickness != null) {
+      card48.value = true
+    }
+    if (data.rawStationDetailsList[0][44].patternThickness != null) {
+      card49.value = true
+    }
+
+        
+    if (data.rawStationDetailsList[0][45].patternThickness != null) {
+      card38.value = true
+    }
+
+    if (data.rawStationDetailsList[0][46].patternThickness != null) {
+      card101.value = true
+    }
+  }
+};
+const handleEdit = (row) => {
+  window.localStorage.setItem('deviceId', row.deviceId)
+  window.localStorage.setItem('slot', row.slot)
+  Edit.value = true;
+};
+const handleBinda = (row) => {
+  dialogFormVisibleb.value = true;
+};
+const handleBindc = (row) => {
+  dialogFormVisiblec.value = true;
+};
+const handleBinde = (row) => {
+  dialogFormVisiblee.value = true;
+};
+// 鍒犻櫎 
+const deleteWarehousing = async (row) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('film.dedelete'),
+      t('productStock.prompt'),
+      {
+        confirmButtonText: t('productStock.yes'),
+        cancelButtonText: t('productStock.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+      var url = "/glassStorage/rawGlassStorageDetails/deleteWarehousing?slot=" + row.slot;
+      const response = await request.post(url)
+      // const response = await request.post("/glassStorage/rawGlassStorageDetails/deleteWarehousing",[row.slotId])
+      if (response.code === 200) {
+        ElMessage.success(response.message);
+      } else {
+        ElMessage.error(response.msg);
+      }
+    }
+  } catch (error) {
+  }
+};
+// 鍘熺墖鍏ュ簱
+const handleup = async () => {
+  try {
+    const response = await request.post('/glassStorage/rawGlassStorageDetails/patternWarehousing', {
+      patternWidth: patternWidth.value,
+      patternHeight: patternHeight.value,
+      patternThickness: patternThickness.value,
+      filmsId: filmsId.value,
+      remainQuantity: remainQuantity.value,
+      slot: slot.value,
+    });
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      dialogFormVisibleb.value = false;
+      patternWidth.value = '';
+      patternHeight.value = '';
+      patternThickness.value = '';
+      filmsId.value = '';
+      remainQuantity.value = '';
+      slot.value = '';
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+  }
+};
+// 鍏ュ簱璇锋眰
+const handleupc = async () => {
+  try {
+    var url = "/glassStorage/rawGlassStorageDetails/warehousingRequest?leftingStation=" + leftingStation.value;
+    const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      dialogFormVisiblec.value = false;
+      leftingStation.value = '';
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.msg);
+    }
+  }
+  catch (error) {
+  }
+}
+// 鍑哄簱璇锋眰
+const handleupe = async () => {
+  try {
+    var url = "/glassStorage/rawGlassStorageDetails/outWarehousingRequest?leftingStation=" + leftingStation.value;
+    const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      dialogFormVisiblee.value = false;
+      leftingStation.value = '';
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.msg);
+    }
+  }
+  catch (error) {
+  }
+}
+// 鍑哄簱 
+const openc = async (row) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('film.deoutbound'),
+      t('productStock.prompt'),
+      {
+        confirmButtonText: t('productStock.yes'),
+        cancelButtonText: t('productStock.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+      var url = "/glassStorage/rawGlassStorageDetails/outWarehousing?slotId=" + row.slot;
+      const response = await request.post(url)
+      // const response = await request.post("/glassStorage/rawGlassStorageDetails/outWarehousing",[row.slotId])
+      if (response.code === 200) {
+        ElMessage.success(response.message);
+      } else {
+        ElMessage.error(response.msg);
+      }
+    }
+  } catch (error) {
+  }
+};
+// 鏌ヨ鏁版嵁
+const selectReportData = async () => {
+  let celllist = []
+  let stateList = []
+  if (selectValuesa[0] != null && selectValuesa[0] != 'undefined') {
+    if (selectValuesa[0] != "") {
+      celllist = [selectValuesa[0]];
+    }
+  }
+  if (selectValuesa[1] != null && selectValuesa[1] != 'undefined') {
+    if (selectValuesa[1] != "") {
+      stateList = [selectValuesa[1]];
+    }
+  }
+  const response = await request.post("/glassStorage/rawGlassStorageTask/setRawGlassTaskRequest", {
+    beginDate: (timeRange.value && timeRange.value[0]) || '',
+    endDate: (timeRange.value && timeRange.value[1]) || '',
+    taskState: celllist,
+    taskType: stateList
+  })
+  if (response.code === 200) {
+    // tableDataa.value = response.data;
+    ElMessage.success(response.message);
+  }
+  else {
+    ElMessage.error(response.message);
+  }
+};
+// 鏄惁绂佺敤
+const toggleEnableState = async (row: any) => {
+  if (!row.deviceId) {
+    ElMessage.error(t('basicData.updatanull'));
+    return;
+  }
+  const newState = row.state === 1 ? 0 : 1;
+  try {
+    var url = "/glassStorage/rawGlassStorageStation/updateSlotState?slot=" + row.slot + "&state=" + newState;
+    const response = await request.post(url)
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      row.state = newState;
+    } else {
+      ElMessage.error(response.message);
+    }
+    row.state = newState;
+  } catch (error) {
+    ElMessage.error(t('basicData.glassnull'));
+  }
+};
+// 淇敼鏁伴噺
+const Editclick = async () => {
+  let slot = window.localStorage.getItem('slot')
+  let deviceId = window.localStorage.getItem('deviceId')
+  try {
+    const response = await request.post('/glassStorage/rawGlassStorageDetails/updateQuantity', {
+      deviceId: deviceId,
+      slot: slot,
+      remainQuantity: remainQuantity.value,
+      filmsId: filmsId.value,
+      patternThickness: patternThickness.value,
+      patternHeight: patternHeight.value,
+      patternWidth: patternWidth.value,
+    }
+    );
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      Edit.value = false;
+      tableDatab.value = response.data;
+      patternWidth.value = '';
+      patternHeight.value = '';
+      patternThickness.value = '';
+      filmsId.value = '';
+      remainQuantity.value = '';
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+  }
+};
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp: number | Date): string {
+  const date = new Date(timestamp);
+  const year = date.getFullYear();
+  const month = String(date.getMonth() + 1).padStart(2, '0');
+  const day = String(date.getDate()).padStart(2, '0');
+  const hours = String(date.getHours()).padStart(2, '0');
+  const minutes = String(date.getMinutes()).padStart(2, '0');
+  const seconds = String(date.getSeconds()).padStart(2, '0');
+  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+// 鍘嗗彶浠诲姟
+const iframeUrl = ref('');
+const handlehistorical = (row) => {
+  // historical()
+  // window.localStorage.setItem('pagenumber', 1)
+  blindb.value = true;
+  iframeUrl.value = `${window.location.origin}/#/GlassStorage/rawhistory`;
+};
+// const historical = async () => {
+//   try {
+//   let startTime = window.localStorage.getItem('startTime')
+//       const response = await request.post("/glassStorage/rawGlassStorageTask/queryRawGlassHistoryTask", {
+//         pageNo: 1,
+//         pageSize: 20,
+//         taskState: [],
+//         taskType: [],
+//         beginDate: startTime,
+//         endDate: globalDate
+//     })
+//       if (response.code == 200) {
+//   window.localStorage.setItem('pagenumber', 1)
+// } else {
+//     }
+// }
+// catch (error) {
+//   }
+// }
+// 浠诲姟鎴愬姛澶勭悊
+const successfull = async (row) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('searchOrder.psuccessfullyprocessed'),
+      t('workOrder.prompt'),
+      {
+        confirmButtonText: t('workOrder.yes'),
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+      var url = "/glassStorage/rawGlassStorageTask/taskSuccess?taskId=" + row.id;
+      const response = await request.post(url)
+      if (response.code === 200) {
+        ElMessage.success(response.message);
+      } else {
+        ElMessage.error(response.msg);
+      }
+    }
+  } catch (error) {
+  }
+};
+// 浠诲姟澶辫触澶勭悊
+const handleptask = async (row) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('searchOrder.ptaskfailure'),
+      t('workOrder.prompt'),
+      {
+        confirmButtonText: t('workOrder.yes'),
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+      var url = "/glassStorage/rawGlassStorageTask/taskError?taskId=" + row.id;
+      const response = await request.post(url)
+      if (response.code === 200) {
+        ElMessage.success(response.message);
+      } else {
+        ElMessage.error(response.msg);
+      }
+    }
+  } catch (error) {
+  }
+};
+function getStatusType1(taskType) {
+  switch (taskType) {
+    case 1:
+      return 'info';
+    case 2:
+      return 'warning';
+    case 3:
+      return 'success';
+    case 4:
+      return 'danger';
+    case 5:
+      return 'primary';
+  }
+}
+function getStatusText1(taskType) {
+  switch (taskType) {
+    case 1:
+      return t('sorter.advancetask');//杩涚墖浠诲姟
+    case 2:
+      return t('sorter.outputtasks');//鍑虹墖浠诲姟
+    case 3:
+      return t('sorter.schedulingtasks');//璋冨害浠诲姟
+    case 4:
+      return t('sorter.advancerequests');//杩涚墖璇锋眰
+    case 5:
+      return t('sorter.releaserequest');//鍑虹墖璇锋眰
+  }
+}
+function getStatusType2(taskState) {
+  switch (taskState) {
+    case 0:
+      return 'info';
+    case 2:
+      return 'warning';
+    case 1:
+      return 'success';
+  }
+}
+function getStatusText2(taskState) {
+  switch (taskState) {
+    case 0:
+      return t('film.built');//鏂板缓
+    case 2:
+      return t('film.fail');//澶辫触
+    case 1:
+      return t('film.finish');//瀹屾垚
+  }
+}
+onBeforeUnmount(() => {
+  closeWebSocket();
+}); 
+</script>
+<template>
+  <div style="height: 500px;">
+    <div style="display: flex; flex-direction: row; align-items: center; margin-top: 20px;">
+      <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="dialogFormVisiblea = true">
+        {{ $t('film.mes') }}
+      </el-button>
+      <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleBinda">
+        {{ $t('film.warehousing') }}
+      </el-button>
+      <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleBindc">
+        {{ $t('film.pwarehousing') }}
+      </el-button>
+      <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleBinde">{{
+        $t('film.pwareout')
+      }}
+      </el-button>
+      <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handlehistorical">{{
+        $t('searchOrder.historicaltasks')
+      }}
+      </el-button>
+      <el-date-picker style="margin-left: 10px;" v-model="timeRange" type="datetimerange" format="YYYY/MM/DD HH:mm:ss"
+        value-format="YYYY-MM-DD HH:mm:ss" :start-placeholder="$t('film.starttime')"
+        :end-placeholder="$t('film.endtime')" :default-time="defaultTime" />
+      <el-select v-model="selectValuesa[0]" clearable :placeholder="$t('film.taskstatus')" style="margin-left: 10px;">
+        <el-option :label="$t('film.built')" value="0"></el-option>
+        <el-option :label="$t('film.finish')" value="1"></el-option>
+        <el-option :label="$t('film.fail')" value="2"></el-option>
+      </el-select>
+      <el-select v-model="selectValuesa[1]" clearable :placeholder="$t('film.tasktype')" style="margin-left: 10px;">
+        <el-option :label="$t('sorter.advancetask')" value="1"></el-option>
+        <el-option :label="$t('sorter.outputtasks')" value="2"></el-option>
+        <el-option :label="$t('sorter.schedulingtasks')" value="3"></el-option>
+        <el-option :label="$t('sorter.advancerequests')" value="4"></el-option>
+        <el-option :label="$t('sorter.releaserequest')" value="5"></el-option>
+      </el-select>
+      <el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('film.inquire')
+      }}</el-button>
+    </div>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+        <el-table height="300" ref="table" :data="tableDataa"
+          :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+          <el-table-column prop="id" align="center" :label="$t('film.enableid')" />
+          <el-table-column prop="startSlot" align="center" :label="$t('film.originateslot')" />
+          <el-table-column prop="endSlot" align="center" :label="$t('film.endoriginateslot')" />
+          <el-table-column prop="patternQuantity" align="center" :label="$t('film.patternquantity')" />
+          <el-table-column width="100" align="center" :label="$t('film.enabletype')" prop="taskType">
+            <template #default="scope">
+              <el-tag :type="getStatusType1(scope.row.taskType)">
+                {{ getStatusText1(scope.row.taskType) }}
+              </el-tag>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" :label="$t('film.taskstatus')" prop="taskState">
+            <template #default="scope">
+              <el-tag :type="getStatusType2(scope.row.taskState)">
+                {{ getStatusText2(scope.row.taskState) }}
+              </el-tag>
+            </template>
+          </el-table-column>
+          <el-table-column prop="createTime" align="center" :label="$t('film.createtime')" />
+          <el-table-column fixed="right" :label="$t('film.operate')" align="center">
+            <template #default="scope">
+              <el-button :disabled="(scope.row.taskState !== 0)" type="text" plain @click="successfull(scope.row)">{{
+                $t('searchOrder.successfullyprocessed') }}</el-button>
+              <el-button :disabled="(scope.row.taskState !== 0)" type="text" plain @click="handleptask(scope.row)">{{
+                $t('searchOrder.taskfailure') }}</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+    <div class="img-dlpl">
+      <div class="img-car1" style="z-index:999;top:250px;left:20px;position:absolute;"></div>
+
+      <div class="glasscard1">
+        <!-- <div class="img-car1" :style="'z-index:999;top:250px;left:' + 20 + 'px;position:absolute;'"></div> -->
+        <div class="card1" v-show="card1" style="z-index:999;"></div>
+        <div class="card2" v-show="card2" style="z-index:999;"></div>
+        <div class="card3" v-show="card3" style="z-index:999;"></div>
+        <div class="card4" v-show="card4" style="z-index:999;"></div>
+        <div class="card5" v-show="card5" style="z-index:999;"></div>
+        <div class="card6" v-show="card6" style="z-index:999;"></div>
+        <div class="card7" v-show="card7" style="z-index:999;"></div>
+        <div class="card8" v-show="card8" style="z-index:999;"></div>
+        <div class="card9" v-show="card9" style="z-index:999;"></div>
+        <div class="card10" v-show="card10" style="z-index:999;"></div>
+        <div class="card11" v-show="card11" style="z-index:999;"></div>
+        <div class="card12" v-show="card12" style="z-index:999;"></div>
+        <div class="card13" v-show="card13" style="z-index:999;"></div>
+        <div class="card14" v-show="card14" style="z-index:999;"></div>
+        <div class="card15" v-show="card15" style="z-index:999;"></div>
+        <div class="card16" v-show="card16" style="z-index:999;"></div>
+        <div class="card17" v-show="card17" style="z-index:999;"></div>
+        <div class="card18" v-show="card18" style="z-index:999;"></div>
+        <div class="card19" v-show="card19" style="z-index:999;"></div>
+        <div class="card20" v-show="card20" style="z-index:999;"></div>
+        <div class="card21" v-show="card21" style="z-index:999;"></div>
+        <div class="card22" v-show="card22" style="z-index:999;"></div>
+        <div class="card23" v-show="card23" style="z-index:999;"></div>
+        <div class="card24" v-show="card24" style="z-index:999;"></div>
+        <div class="card25" v-show="card25" style="z-index:999;"></div>
+        <div class="card26" v-show="card26" style="z-index:999;"></div>
+        <div class="card27" v-show="card27" style="z-index:999;"></div>
+        <div class="card28" v-show="card28" style="z-index:999;position:absolute;"></div>
+      </div>
+      <div class="glasscard2">
+        <div class="card31" v-show="card31" style="z-index:999;"></div>
+        <div class="card32" v-show="card32" style="z-index:999;"></div>
+        <div class="card33" v-show="card33" style="z-index:999;"></div>
+        <div class="card34" v-show="card34" style="z-index:999;"></div>
+        <div class="card35" v-show="card35" style="z-index:999;"></div>
+        <div class="card36" v-show="card36" style="z-index:999;"></div>
+        <div class="card37" v-show="card37" style="z-index:999;"></div>
+        <div class="card38" v-show="card38" style="z-index:999;"></div>
+      </div>
+
+      <div class="glasscard3">
+        <div class="card40" v-show="card40" style="z-index:999;"></div>
+        <div class="card41" v-show="card41" style="z-index:999;"></div>
+        <div class="card42" v-show="card42" style="z-index:999;"></div>
+        <div class="card43" v-show="card43" style="z-index:999;"></div>
+        <div class="card44" v-show="card44" style="z-index:999;"></div>
+        <div class="card45" v-show="card45" style="z-index:999;"></div>
+        <div class="card46" v-show="card46" style="z-index:999;"></div>
+        <div class="card47" v-show="card47" style="z-index:999;"></div>
+        <div class="card48" v-show="card48" style="z-index:999;"></div>
+        <div class="card49" v-show="card49" style="z-index:999;"></div>
+      </div>
+      <div class="card101" v-show="card101" style="z-index:999;"></div>
+    </div>
+
+    <el-dialog v-model="dialogFormVisiblea" top="5vh" width="85%">
+      <el-table ref="table" style="margin-top: 20px;height: 700px;" :data="tableDatab"
+        :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+        <el-table-column prop="deviceId" fixed align="center" :label="$t('film.station')" min-width="80" />
+        <el-table-column prop="slot" fixed align="center" :label="$t('film.slot')" min-width="80" />
+        <el-table-column prop="patternWidth" align="center" :label="$t('film.width')" min-width="80" />
+        <el-table-column prop="patternHeight" align="center" :label="$t('film.height')" min-width="80" />
+        <el-table-column prop="patternThickness" align="center" :label="$t('film.thickness')" min-width="80" />
+        <el-table-column prop="filmsId" align="center" :label="$t('film.films')" min-width="80" />
+        <el-table-column prop="remainQuantity" align="center" :label="$t('film.remainquantity')" min-width="120" />
+        <el-table-column align="center" :label="$t('film.enablestate')" min-width="80" prop="state">
+          <template #default="scope">
+            <el-tag :type="scope.row.state == 1 ? 'success' : 'danger'" @click="toggleEnableState(scope.row)">
+              {{ scope.row.state == 1 ? $t('film.start') : $t('film.disable') }}
+            </el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="270">
+          <template #default="scope">
+            <el-button type="text" plain @click="handleEdit(scope.row)">{{ $t('film.exit') }}</el-button>
+            <el-button :disabled="!scope.row.remainQuantity" type="text" plain @click="deleteWarehousing(scope.row)">{{
+              $t('film.delete') }}</el-button>
+            <el-button :disabled="!scope.row.remainQuantity || scope.row.remainQuantity === 0" type="text" plain
+              @click="openc(scope.row)">{{ $t('film.outbound') }}</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-dialog>
+    <!-- 鍘嗗彶浠诲姟 -->
+    <el-dialog v-model="blindb" top="5vh" width="95%" @close="iframeUrl = ''">
+      <iframe :src="iframeUrl" marginwidth="2000px" marginheight="2000px" width="100%" height="750px"
+        frameborder="0"></iframe>
+    </el-dialog>
+    <el-dialog v-model="dialogFormVisibleb" top="23vh" width="55%" :title="$t('film.addglass')">
+      <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+        <el-form label-width="150px">
+          <el-form label-width="100px" label-position="right">
+            <el-row style="margin-top: -15px;margin-bottom: -2px;">
+              <el-col :span="6">
+                <div id="dt" style="font-size: 15px;">
+                  <div>
+                    <el-form-item :label="$t('film.widtha')" :required="true" style="width: 17vw;">
+                      <el-input :placeholder="$t('film.inwidth')" v-model="patternWidth" autocomplete="off" />
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-col>
+              <el-col :span="9">
+                <div id="dta" style="font-size: 15px;">
+                  <div>
+                    <el-form-item :label="$t('film.heighta')" :required="true" style="width: 17vw;">
+                      <el-input :placeholder="$t('film.inheight')" v-model="patternHeight" autocomplete="off" />
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-col>
+            </el-row>
+            <el-row style="margin-top: 10px;">
+              <el-col :span="6">
+                <div id="dt" style="font-size: 15px;">
+                  <div>
+                    <el-form-item :label="$t('film.thicknessa')" :required="true" style="width: 17vw;">
+                      <el-input :placeholder="$t('film.inthickness')" v-model="patternThickness" autocomplete="off" />
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-col>
+              <el-col :span="9">
+                <div id="dta" style="font-size: 15px;">
+                  <div>
+                    <el-form-item :label="$t('film.filmsa')" :required="true" style="width: 17vw;">
+                      <el-input :placeholder="$t('film.infilms')" v-model="filmsId" autocomplete="off" />
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-col>
+            </el-row>
+            <el-row style="margin-top: 10px;">
+              <el-col :span="6">
+                <div id="dt" style="font-size: 15px;">
+                  <div>
+                    <el-form-item :label="$t('film.quantitya')" :required="true" style="width: 17vw;">
+                      <el-input :placeholder="$t('film.inquantity')" v-model="remainQuantity" autocomplete="off" />
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-col>
+              <el-col :span="9">
+                <div id="dta" style="font-size: 15px;">
+                  <div>
+                    <el-form-item :label="$t('film.inwarehousing')" :required="true" style="width: 17vw">
+                      <el-select :placeholder="$t('film.selectwarehousing')" style="width: 270px" v-model="slot">
+                        <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
+                      </el-select>
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-col>
+            </el-row>
+          </el-form>
+        </el-form>
+      </div>
+      <template #footer>
+        <div id="dialog-footer">
+          <el-button type="primary" @click="handleup">
+            {{ $t('basicData.confirm') }}
+          </el-button>
+          <el-button @click="dialogFormVisibleb = false">{{ $t('basicData.cancel') }}</el-button>
+        </div>
+      </template>
+    </el-dialog>
+    <el-dialog v-model="dialogFormVisiblec" top="24vh" width="30%" :title="$t('film.pwarehousing')">
+      <div style="margin-left: 50px;margin-bottom: 10px;">
+        <el-form-item :label="$t('film.position')" :required="true">
+          <el-select v-model="leftingStation" clearable :placeholder="$t('film.cposition')" style="margin-left: 20px;">
+            <el-option :label="$t('film.position1')" value="101"></el-option>
+          </el-select>
+        </el-form-item>
+      </div>
+      <template #footer>
+        <div id="dialog-footer">
+          <el-button type="primary" @click="handleupc">
+            {{ $t('basicData.confirm') }}
+          </el-button>
+          <el-button @click="dialogFormVisiblec = false">{{ $t('basicData.cancel') }}</el-button>
+        </div>
+      </template>
+    </el-dialog>
+    <el-dialog v-model="dialogFormVisiblee" top="24vh" width="30%" :title="$t('film.pwareout')">
+      <div style="margin-left: 50px;margin-bottom: 10px;">
+        <el-form-item :label="$t('film.position')" :required="true">
+          <el-select v-model="leftingStation" clearable :placeholder="$t('film.cposition')" style="margin-left: 20px;">
+            <el-option :label="$t('film.position1')" value="101"></el-option>
+          </el-select>
+        </el-form-item>
+      </div>
+      <template #footer>
+        <div id="dialog-footer">
+          <el-button type="primary" @click="handleupe">
+            {{ $t('basicData.confirm') }}
+          </el-button>
+          <el-button @click="dialogFormVisiblee = false">{{ $t('basicData.cancel') }}</el-button>
+        </div>
+      </template>
+    </el-dialog>
+    <el-dialog v-model="Edit" top="23vh" width="55%" :title="$t('film.addglass')">
+      <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+        <el-form label-width="150px">
+          <el-form label-width="100px" label-position="right">
+            <el-row style="margin-top: -15px;margin-bottom: -2px;">
+              <el-col :span="6">
+                <div id="dt" style="font-size: 15px;">
+                  <div>
+                    <el-form-item :label="$t('film.widtha')" :required="true" style="width: 17vw;">
+                      <el-input :placeholder="$t('film.inwidth')" v-model="patternWidth" autocomplete="off" />
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-col>
+              <el-col :span="9">
+                <div id="dta" style="font-size: 15px;">
+                  <div>
+                    <el-form-item :label="$t('film.heighta')" :required="true" style="width: 17vw;">
+                      <el-input :placeholder="$t('film.inheight')" v-model="patternHeight" autocomplete="off" />
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-col>
+            </el-row>
+            <el-row style="margin-top: 10px;">
+              <el-col :span="6">
+                <div id="dt" style="font-size: 15px;">
+                  <div>
+                    <el-form-item :label="$t('film.thicknessa')" :required="true" style="width: 17vw;">
+                      <el-input :placeholder="$t('film.inthickness')" v-model="patternThickness" autocomplete="off" />
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-col>
+              <el-col :span="9">
+                <div id="dta" style="font-size: 15px;">
+                  <div>
+                    <el-form-item :label="$t('film.filmsa')" :required="true" style="width: 17vw;">
+                      <el-input :placeholder="$t('film.infilms')" v-model="filmsId" autocomplete="off" />
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-col>
+            </el-row>
+            <el-row style="margin-top: 10px;">
+              <el-col :span="6">
+                <div id="dt" style="font-size: 15px;">
+                  <div>
+                    <el-form label-width="210px">
+                      <el-form-item :label="$t('film.thickremainquantity')" :required="true"
+                        style="width: 44.5vw;margin-left: -40px;">
+                        <el-input v-model="remainQuantity" autocomplete="off" :placeholder="$t('film.inquantity')" />
+                      </el-form-item>
+                    </el-form>
+                  </div>
+                </div>
+              </el-col>
+            </el-row>
+          </el-form>
+        </el-form>
+      </div>
+      <template #footer>
+        <div id="dialog-footer">
+          <el-button type="primary" @click="Editclick">
+            {{ $t('basicData.confirm') }}
+          </el-button>
+          <el-button @click="Edit = false">{{ $t('basicData.cancel') }}</el-button>
+        </div>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+<style scoped>
+#dt {
+  display: block;
+  float: left;
+  line-height: 20px;
+  margin-left: 100px;
+}
+
+#dta {
+  display: block;
+  float: left;
+  line-height: 20px;
+  margin-left: 80%;
+}
+
+.awatch {
+  height: 400px;
+  width: 1500px;
+  max-width: 100%;
+}
+
+#dialog-footer {
+  text-align: center;
+  margin-top: -15px;
+}
+
+.img-dlpl {
+  margin-left: 38px;
+  margin-top: 15px;
+  background-image: url('../../assets/cangchu2.png');
+  background-repeat: no-repeat;
+  background-attachment: local;
+  min-height: 800px;
+  width: 1070px;
+  max-width: 100%;
+  background-size: 1500px 810px;
+  overflow: hidden;
+  position: relative;
+}
+
+.img-car1 {
+  display: flex;
+  background-image: url('../../assets/cangchu1.png');
+  position: absolute;
+  background-repeat: no-repeat;
+  background-attachment: local;
+  min-height: 242px;
+  width: 240px;
+  max-width: 100%;
+  background-size: 270px 327px;
+  overflow: hidden;
+  position: relative;
+  margin-left: 866px;
+  margin-top: 107px
+}
+
+.glasscard1 {
+  height: 118px;
+  position: relative;
+  margin-top: 625px;
+  margin-left: 493px;
+}
+
+.card1 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 0;
+}
+
+.card2 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 19px;
+}
+
+.card3 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 38px;
+}
+
+.card4 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 57px;
+}
+
+.card5 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 76px;
+}
+
+.card6 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 95px;
+}
+
+.card7 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 114px;
+}
+
+.card8 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 133px;
+}
+
+.card9 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 152px;
+}
+
+.card10 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 171px;
+}
+
+.card11 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 190px;
+}
+
+.card12 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 209px;
+}
+
+.card13 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 228px;
+}
+
+.card14 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 247px;
+}
+
+.card15 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 266px;
+}
+
+.card16 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 285px;
+}
+
+.card17 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 304px;
+}
+
+.card18 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 323px;
+}
+
+.card19 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 342px;
+}
+
+.card20 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 361px;
+}
+
+.card21 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 380px;
+}
+
+.card22 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 399px;
+}
+
+.card23 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 418px;
+}
+
+.card24 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 437px;
+}
+
+.card25 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 456px;
+}
+
+.card26 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 475px;
+}
+
+.card27 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 494px;
+}
+
+.card28 {
+  width: 8px;
+  height: 95px;
+  background-color: #911005;
+  position: absolute;
+  left: 513px;
+}
+
+.glasscard2 {
+  position: relative;
+  margin-top: -420px;
+  margin-left: 495px;
+}
+
+.card31 {
+  width: 8px;
+  height: 90px;
+  background-color: #911005;
+  position: absolute;
+  left: 0;
+}
+
+.card32 {
+  width: 8px;
+  height: 90px;
+  background-color: #911005;
+  position: absolute;
+  left: 19px;
+}
+
+.card33 {
+  width: 8px;
+  height: 90px;
+  background-color: #911005;
+  position: absolute;
+  left: 38px;
+}
+
+.card34 {
+  width: 8px;
+  height: 90px;
+  background-color: #911005;
+  position: absolute;
+  left: 57px;
+}
+
+.card35 {
+  width: 8px;
+  height: 90px;
+  background-color: #911005;
+  position: absolute;
+  left: 76px;
+}
+
+.card36 {
+  width: 8px;
+  height: 90px;
+  background-color: #911005;
+  position: absolute;
+  left: 95px;
+}
+
+.card37 {
+  width: 8px;
+  height: 90px;
+  background-color: #911005;
+  position: absolute;
+  left: 114px;
+}
+
+.card38 {
+  width: 8px;
+  height: 90px;
+  background-color: #911005;
+  position: absolute;
+  left: 136px;
+}
+
+.glasscard3 {
+  position: relative;
+  margin-left: 806px;
+  margin-top: -90px;
+}
+
+.card40 {
+  width: 8px;
+  height: 90px;
+  background-color: #911005;
+  position: absolute;
+  left: 0;
+}
+
+.card41 {
+  width: 8px;
+  height: 90px;
+  background-color: #911005;
+  position: absolute;
+  left: 19px;
+}
+
+.card42 {
+  width: 8px;
+  height: 90px;
+  background-color: #911005;
+  position: absolute;
+  left: 38px;
+}
+
+.card43 {
+  width: 8px;
+  height: 90px;
+  background-color: #911005;
+  position: absolute;
+  left: 57px;
+}
+
+.card44 {
+  width: 8px;
+  height: 90px;
+  background-color: #911005;
+  position: absolute;
+  left: 76px;
+}
+
+.card45 {
+  width: 8px;
+  height: 90px;
+  background-color: #911005;
+  position: absolute;
+  left: 95px;
+}
+
+.card46 {
+  width: 8px;
+  height: 90px;
+  background-color: #911005;
+  position: absolute;
+  left: 114px;
+}
+
+.card47 {
+  width: 8px;
+  height: 90px;
+  background-color: #911005;
+  position: absolute;
+  left: 133px;
+}
+
+.card48 {
+  width: 8px;
+  height: 90px;
+  background-color: #911005;
+  position: absolute;
+  left: 152px;
+}
+
+.card49 {
+  width: 8px;
+  height: 90px;
+  background-color: #911005;
+  position: absolute;
+  left: 171px;
+}
+
+.card101 {
+  width: 8px;
+  height: 90px;
+  background-color: #911005;
+  position: absolute;
+  left: 1023px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/GlassStorage/rawhistory.vue b/UI-Project/src/views/GlassStorage/rawhistory.vue
new file mode 100644
index 0000000..3d680f6
--- /dev/null
+++ b/UI-Project/src/views/GlassStorage/rawhistory.vue
@@ -0,0 +1,400 @@
+<template>  
+    <div>  
+  <div style="display: flex;width: 1770px;">
+          <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('searchOrder.taskstatus')" clearable
+          style="width: 200px;margin-left: 10px;">
+          <el-option :label="$t('film.built')" value="0"></el-option>
+          <el-option :label="$t('film.finish')" value="1"></el-option>
+          <el-option :label="$t('film.fail')" value="2"></el-option>
+        </el-select>
+        <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('film.enabletype')" clearable
+          style="width: 200px;margin-left: 10px;">
+          <el-option :label="$t('sorter.advancetask')" value="1"></el-option>
+          <el-option :label="$t('sorter.outputtasks')" value="2"></el-option>
+          <el-option :label="$t('sorter.schedulingtasks')" value="3"></el-option>
+          <el-option :label="$t('sorter.advancerequests')" value="4"></el-option>
+          <el-option :label="$t('sorter.releaserequest')" value="5"></el-option>
+        </el-select>
+        <el-date-picker
+            style="margin-left: 15px;"
+             v-model="timeRange"
+             type="datetimerange"
+             :shortcuts="shortcuts"
+             range-separator="鑷�"
+             :start-placeholder="$t('reportmanage.starttime')"
+             :end-placeholder="$t('reportmanage.endtime')"
+           />
+          <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="sethistorical()">{{$t('reportmanage.inquire')}}</el-button>
+     </div>
+        <el-table ref="table" style="margin-top: 20px;height: 580px;width: 1770px;" :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+      <el-table-column prop="startSlot" align="center" :label="$t('film.originateslot')" min-width="50" />
+          <el-table-column prop="endSlot" align="center" :label="$t('film.endoriginateslot')" min-width="50" />
+          <el-table-column prop="shelf" align="center" :label="$t('film.resetnumber')" min-width="50" />
+          <el-table-column prop="patternQuantity" align="center" :label="$t('film.thickremainquant')" min-width="50" />
+          <el-table-column
+            align="center"
+            :label="$t('film.taskstatus')"
+            min-width="50"
+            prop="taskState"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusType2(scope.row.taskState)">  
+          {{ getStatusText2(scope.row.taskState) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column
+            align="center"
+            :label="$t('film.enabletype')"
+            min-width="50"
+            prop="taskType"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusType1(scope.row.taskType)">  
+          {{ getStatusText1(scope.row.taskType) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column prop="formattedCreateTime" align="center" :label="$t('reportmanage.starttime')" min-width="50" />
+          <el-table-column prop="formattedUpdateTime" align="center" :label="$t('reportmanage.endtime')" min-width="50" />
+          <el-table-column fixed="right" :label="$t('film.operate')" align="center">
+            <template #default="scope">
+          <el-button :disabled="(scope.row.taskState !== 0)" type="text" plain @click="successfull(scope.row)">{{ $t('searchOrder.successfullyprocessed') }}</el-button>
+          <el-button :disabled="(scope.row.taskState !== 0)" type="text" plain @click="handleptask(scope.row)">{{ $t('searchOrder.taskfailure') }}</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+  <div style="margin-top: 20px;margin-left: 40%;">
+        <el-pagination
+          v-model:current-page="currentPage2"
+          :page-size="pageSize"
+          :size="large"
+          :disabled="disabled"
+          layout="prev, pager, next, jumper"
+          :total="totalRecords"
+          @current-change="handlePageChange2"
+          style="margin-top: 10px;"
+      />
+    </div>
+  </div>
+  </template>  
+<script lang="ts" setup>
+import {useI18n} from 'vue-i18n'
+import {useRouter} from "vue-router"
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {ElMessage, ElMessageBox} from 'element-plus'
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+import { inject } from 'vue';
+const globalDate = inject('globalDate');
+const router = useRouter()
+const timeRange = ref([])
+const selectValuesa = reactive([]);
+const tableDatax = ref([])
+const currentPage2 = ref(1)
+const totalRecords = ref(0)
+const glassId = ref('');
+const startSlot = ref('');
+const targetSlot = ref('');
+let getglobalDate = window.localStorage.getItem('getglobalDate')
+const historical = async () => {
+  try {
+  let startTime = window.localStorage.getItem('startTime')
+      const response = await request.post("/glassStorage/rawGlassStorageTask/queryRawGlassHistoryTask", {
+        pageNo: 1,
+        pageSize: 20,
+        taskState: [],
+        taskType: [],
+        beginDate: startTime,
+        endDate: getglobalDate
+    })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        const formattedData = response.data.records.map(record => ({
+        ...record,
+        formattedCreateTime: formatTimestamp(record.createTime),
+        formattedUpdateTime: formatTimestamp(record.updateTime),
+      }));
+        // tableDatax.value = response.data.records;
+        tableDatax.value = formattedData;
+        totalRecords.value = response.data.total/2 || 0
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+const successfull = async(row) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.psuccessfullyprocessed'), 
+      t('workOrder.prompt'),  
+      {  
+        confirmButtonText: t('workOrder.yes'), 
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',  
+      } 
+    );
+    if (confirmResult === 'confirm') {
+  var url="/glassStorage/rawGlassStorageTask/taskSuccess?taskId="+ row.id;
+      const response = await request.post(url)
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+// 浠诲姟澶辫触澶勭悊
+const handleptask = async(row) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.ptaskfailure'), 
+      t('workOrder.prompt'),  
+      {  
+        confirmButtonText: t('workOrder.yes'), 
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',  
+      } 
+    );
+    if (confirmResult === 'confirm') {
+  var url="/glassStorage/rawGlassStorageTask/taskError?taskId="+ row.id;
+      const response = await request.post(url)
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+const handlePageChange2 = (newPage) => {
+  currentPage2.value = newPage;
+  window.localStorage.setItem('pagenumber', currentPage2.value)
+  historicala(currentPage2.value);
+};
+const historicala = async (page) => {
+  try { 
+  let startTime = window.localStorage.getItem('startTime')
+  let celllist=[]
+  let stateList=[]
+  let pstartSlot= ''
+  let ptargetSlot=''
+  if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+    if(selectValuesa[0]!=""){
+      celllist=[selectValuesa[0]];
+    }
+  }
+  if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+    if(selectValuesa[1]!=""){
+      stateList=[selectValuesa[1]];
+    }
+  }
+  if(startSlot.value != ""){
+    pstartSlot = startSlot.value
+  }else{
+    pstartSlot = '0'
+  }
+  if(targetSlot.value != ""){
+    ptargetSlot = targetSlot.value
+  }else{
+    ptargetSlot = '0'
+  }
+  let page = window.localStorage.getItem('pagenumber')
+      const response = await request.post("/glassStorage/rawGlassStorageTask/queryRawGlassHistoryTask", {
+        pageNo: page,
+        pageSize: 20,
+        taskState: celllist,
+        taskType: stateList,
+        beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+        endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+    })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        const formattedData = response.data.records.map(record => ({
+        ...record,
+        formattedCreateTime: formatTimestamp(record.createTime),
+        formattedUpdateTime: formatTimestamp(record.updateTime),
+      }));
+        // tableDatax.value = response.data.records;
+        tableDatax.value = formattedData;
+        totalRecords.value = response.data.total/2 || 0
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+// 鍘嗗彶鏌ヨ鐐瑰嚮
+const sethistorical = async () => {
+  try { 
+  let startTime = window.localStorage.getItem('startTime')
+  let celllist=[]
+  let stateList=[]
+  let pstartSlot= ''
+  let ptargetSlot=''
+  if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+    if(selectValuesa[0]!=""){
+      celllist=[selectValuesa[0]];
+    }
+  }
+  if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+    if(selectValuesa[1]!=""){
+      stateList=[selectValuesa[1]];
+    }
+  }
+  if(startSlot.value != ""){
+    pstartSlot = startSlot.value
+  }else{
+    pstartSlot = '0'
+  }
+  if(targetSlot.value != ""){
+    ptargetSlot = targetSlot.value
+  }else{
+    ptargetSlot = '0'
+  }
+  let page = window.localStorage.getItem('pagenumber')
+  const response = await request.post("/glassStorage/rawGlassStorageTask/queryRawGlassHistoryTask", {
+        pageNo: 1,
+        pageSize: 20,
+        taskState: celllist,
+        taskType: stateList,
+        beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+        endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+    })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        currentPage2.value = 1;
+        const formattedData = response.data.records.map(record => ({
+        ...record,
+        formattedCreateTime: formatTimestamp(record.createTime),
+        formattedUpdateTime: formatTimestamp(record.updateTime),
+      }));
+        // tableDatax.value = response.data.records;
+        tableDatax.value = formattedData;
+        totalRecords.value = response.data.total/2 || 0
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp) {
+  const date = new Date(timestamp);
+  const year = date.getFullYear();
+  const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+  const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+  const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+const shortcuts = [
+  {
+    text: '鏈�杩戜竴鍛�',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setDate(oneWeekAgo.getDate() - 7)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+    },
+  },
+  {
+    text: '鏈�杩戜竴涓湀',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 1)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+    },
+  },
+  {
+    text: '鏈�杩戜笁涓湀',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 3)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+},
+  },
+]
+// 鏍煎紡鍖栧悗绔椂闂村苟璁$畻涓�鍛ㄥ墠鐨勬椂闂�
+const defaultTime = ref<[Date, Date]>([new Date(), new Date()]);
+function parseAndSetTime() {
+  const backendTime = new Date(getglobalDate);
+  const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 鍑忓幓7澶�
+  oneWeekAgo.setHours(0, 0, 0, 0);
+  timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+  window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+}
+function getStatusType1(taskType) {  
+switch (taskType) {  
+  case 1:  
+    return 'info';  
+  case 2:  
+    return 'warning';  
+  case 3:  
+    return 'success';  
+  case 4:  
+    return 'danger';  
+  case 5:  
+    return 'primary';  
+}  
+}
+function getStatusText1(taskType) {  
+switch (taskType) {
+  case 1:  
+    return t('sorter.advancetask');//杩涚墖浠诲姟
+  case 2:  
+    return t('sorter.outputtasks');//鍑虹墖浠诲姟
+  case 3:  
+  return t('sorter.schedulingtasks');//璋冨害浠诲姟
+  case 4:  
+  return t('sorter.advancerequests');//杩涚墖璇锋眰
+  case 5:  
+  return t('sorter.releaserequest');//鍑虹墖璇锋眰
+}  
+}
+function getStatusType2(taskState) {  
+switch (taskState) {  
+  case 0:  
+    return 'info';  
+  case 2:  
+    return 'warning';  
+  case 1:  
+    return 'success';  
+}  
+}
+function getStatusText2(taskState) {  
+switch (taskState) {
+  case 0:  
+    return t('film.built');//鏂板缓
+  case 2:  
+    return t('film.fail');//澶辫触
+  case 1:  
+    return t('film.finish');//瀹屾垚
+}  
+}
+onMounted(() => {
+  parseAndSetTime();
+  historical();
+});
+  </script>
+  <style scoped>  
+  </style>
\ No newline at end of file
diff --git a/UI-Project/src/views/HomeView.vue b/UI-Project/src/views/HomeView.vue
new file mode 100644
index 0000000..ed84fb2
--- /dev/null
+++ b/UI-Project/src/views/HomeView.vue
@@ -0,0 +1,25 @@
+<script setup>
+import { useRouter, useRoute } from 'vue-router'
+
+// function global_callback(msg) {
+//   console.log("websocket鐨勫洖璋冨嚱鏁版敹鍒版湇鍔″櫒淇℃伅锛�" + JSON.stringify(msg));
+//   // console.log("鏀跺埌鏈嶅姟鍣ㄤ俊鎭細" + msg);
+// }
+// function close(){
+//  closeSock();
+
+// }
+// function sendMessage(){
+//   sendSock("123")
+// }
+// function createSocket(){
+//   createWebSocket(global_callback);
+// }
+// </script>
+<template>
+ <div class="mainDiv">
+   <button @click="createSocket">鍒涘缓</button>
+   <button @click="sendMessage">鍙戦��</button>
+   <button @click="close">鍏抽棴</button>
+ </div>
+</template>
diff --git a/UI-Project/src/views/Identify/ident.vue b/UI-Project/src/views/Identify/ident.vue
new file mode 100644
index 0000000..c3260ac
--- /dev/null
+++ b/UI-Project/src/views/Identify/ident.vue
@@ -0,0 +1,36 @@
+<script setup>
+let indexFlag = $ref(1)
+function changeRouter(index) {
+  indexFlag = index
+}
+</script>
+<template>
+  <div id="main-body">
+    <router-view/>
+  </div>
+</template>
+<style scoped>
+#main-div {
+  width: 100%;
+  height: 100%;
+}
+#div-title {
+  height: 2%;
+  width: 100%;
+}
+#searchButton {
+  margin-top: -5px;
+  margin-left: 1rem;
+}
+#main-body {
+  width: 100%;
+  height: 95%;
+  /* margin-top: 1%; */
+}
+#select {
+  margin-left: 0.5rem;
+}
+:deep(.indexTag .el-breadcrumb__inner) {
+  color: #5CADFE !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Identify/identifwu.vue b/UI-Project/src/views/Identify/identifwu.vue
new file mode 100644
index 0000000..3ade8dd
--- /dev/null
+++ b/UI-Project/src/views/Identify/identifwu.vue
@@ -0,0 +1,238 @@
+<template>
+  <div style="height: 500px;">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;">
+    <div style="text-align: center;"> {{ $t('processCard.temperinglayout') }}锛歿{ ava }}-{{ avanum }} </div>
+      <el-scrollbar height="750px" width="1400px" style="background-color: #e9e9eb;">
+        <div style="position: relative;">
+          <div
+              v-for="(rect, index) in adjustedRects"
+              :key="rect.glassId"
+              class="rect"
+              @click="showDialog(rect.glassId)"
+              :style="{ position: 'absolute',
+              top: `${rect.yAxisa}px`, left: `${rect.xAxisa}px`, width: `${rect.width}px`, height: `${rect.height}px`,
+              backgroundColor: rect.isActive ? '#ADFF2F' : getRectColor(rect.state)
+               }">
+            <div class="centered-text">
+              <div style="font-size: 20px;font-weight: bold;">{{ rect.glassId }}</div>
+              <div style="font-size: 20px;font-weight: bold;">{{ rect.flowCardId }}</div>
+              <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div>
+            </div>
+          </div>
+        </div>
+      </el-scrollbar>
+      <el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose">
+        <el-button :disabled="currentGlassRect?.state === 8 || currentGlassRect?.state === 9" type="warning"
+                   plain :icon="Delete" @click="handleDamage(currentGlassId)" style="width: 140px;margin-left: 10px;">
+          {{ $t('order.dilapidation') }}
+        </el-button>
+        <el-button :disabled="currentGlassRect?.state === 9 || currentGlassRect?.state === 8" type="danger"
+                   plain @click="handleManualTake(currentGlassId)" style="width: 140px;margin-top: 10px;">
+          <el-icon class="el-icon--right">
+            <Upload/>
+          </el-icon>
+          {{ $t('order.takeaway') }}
+        </el-button>
+      </el-dialog>
+    </el-card>
+  </div>
+</template>
+<script setup lang="ts">
+import {avatarEmits, ElMessage} from 'element-plus'
+import {onBeforeUnmount, computed, onMounted, onUnmounted, ref} from 'vue';
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const blind = ref(false)
+const currentGlassId = ref(null);
+const adjustedRects = ref([]);
+const ava = ref('');
+const avanum = ref('');
+const realwidth = ref('');
+const realheight = ref('');
+let socket = null;
+const currentGlassRect = computed(() => {
+  return adjustedRects.value.find(rect => rect.glassId === currentGlassId.value);
+});
+function showDialog(glassId: number) {
+  currentGlassId.value = glassId;
+  blind.value = true;
+  adjustedRects.value = adjustedRects.value.map(rect =>
+      rect.glassId === glassId ? {...rect, isActive: true} : rect
+  );
+}
+const handleDialogClose = () => {
+  adjustedRects.value = adjustedRects.value.map(rect => ({
+    ...rect,
+    isActive: false
+  }));
+}
+// 鐮存崯
+const handleDamage = async () => {
+  try {
+    const response = await request.post('/cacheGlass/taskCache/identControls', {
+      glassId: currentGlassId.value,
+      state: 8,
+      line: 1,
+      remark: '鎺扮墖',
+      workingProcedure: '鍒囧壊',
+    })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      blind.value = false;
+      updateRectStatus(currentGlassId.value, 8);
+    } else {
+      ElMessage.error(response.msg);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+}
+// 浜哄伐鎷胯蛋
+const handleManualTake = async () => {
+  try {
+    const response = await request.post('/cacheGlass/taskCache/identControls', {
+      glassId: currentGlassId.value,
+      state: 9,
+      line: 1,
+      workingProcedure: '鍒囧壊',
+      remark: '鎺扮墖',
+    })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      blind.value = false;
+      updateRectStatus(currentGlassId.value, 9);
+    } else {
+      ElMessage.error(response.msg);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+}
+function getRectColor(state: number): string {
+  switch (state) {
+    case 0:  
+      return '#7AC5CD';
+    case 1:
+      return '#95d475';
+    case -1:
+      return '#99BBFF';
+    case 2:  
+      return 'lightblue';
+    case 3:  
+      return '#eebe77';  
+    case 4:  
+      return '#CD6090';
+    case 8:
+      return '#911005';
+    case 9:
+      return '#4682B4';
+    default:
+      return '#CDAF95'; 
+  }
+}
+// 鏇存柊鐭╁舰鐘舵��
+function updateRectStatus(glassId: string, status: number) {
+  adjustedRects.value.forEach(rect => {
+    if (rect.glassId === glassId) {
+      rect.state = status; // 鏇存柊鐭╁舰鐨勭姸鎬�  
+    }
+  });
+}
+const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/currentCutDrawingOne`;
+const handleMessage = (data: any) => {
+  if (data.engineer != null) {
+  ava.value = data.engineer[0]
+  }else{
+    ava.value = ''
+  }
+  if (data.engineer != null) {
+    avanum.value = data.sequence[0]
+  }else{
+    avanum.value = ''
+  }
+      console.log(data.upPattenUsage);
+      console.log(data.currentCutTerritory);
+      if (data.upPattenUsage && data.upPattenUsage.length > 0) {
+        realwidth.value = data.upPattenUsage[0].width;
+        realheight.value = data.upPattenUsage[0].height;
+        const realx = realwidth.value;
+        const realy = realheight.value;
+      window.localStorage.setItem('widthreturna', realy)
+        const scaleFactora = 1621.78 / realx;
+        const scaleFactorya = 750 / realy;
+      window.localStorage.setItem('scaleFactorb', scaleFactora)
+      window.localStorage.setItem('scaleFactoryb', scaleFactorya)
+      }
+      if (data.currentCutTerritory && data.currentCutTerritory.length > 0) {
+        let scaleFactor = window.localStorage.getItem('scaleFactorb')
+        let scaleFactory = window.localStorage.getItem('scaleFactoryb')
+        let widthreturn = window.localStorage.getItem('widthreturna')
+        const newRects = data.currentCutTerritory[0].map(rect => {
+          const existingRect = adjustedRects.value.find(r => r.glassId === rect.glassId);
+          if (existingRect) {
+            return {
+              ...existingRect,
+              xAxisa: rect.xAxis * scaleFactor,
+              yAxisa: (widthreturn - (rect.yAxis + rect.edgHeight)) * scaleFactory,
+              width: rect.edgWidth * scaleFactor,
+              height: rect.edgHeight * scaleFactory,
+              widtha: rect.edgWidth,
+              heighta: rect.edgHeight,
+              state: rect.state,
+              // 淇濇寔 isActive 鐘舵�佷笉鍙�
+            };
+          } else {
+            // 濡傛灉涓嶅瓨鍦紝鍒欐坊鍔犳柊鐭╁舰锛岄粯璁� isActive 涓� false
+            return {
+              ...rect,
+              xAxisa: rect.xAxis * scaleFactor,
+              yAxisa: (widthreturn - (rect.yAxis + rect.edgHeight)) * scaleFactory,
+              width: rect.edgWidth * scaleFactor,
+              height: rect.edgHeight * scaleFactory,
+              widtha: rect.edgWidth,
+              heighta: rect.edgHeight,
+              state: rect.state,
+              isActive: false,
+              glassId: rect.glassId,
+            };
+          }
+        });
+        adjustedRects.value = newRects;
+      } else if (data.currentCutTerritory == '') {
+        adjustedRects.value = [];
+      }
+}
+onMounted(() => {
+  socket = initializeWebSocket(socketUrl, handleMessage);
+});
+onBeforeUnmount(() => {
+  closeWebSocket();
+});
+</script>
+<style scoped>
+.rect {
+  border: 1px solid black; /* 璁剧疆鐭╁舰鐨勮竟妗� */
+  /* background-color: lightblue; 璁剧疆鐭╁舰鐨勮儗鏅壊   */
+}
+.centered-text {
+  /* 璁剧疆鏂囧瓧灞呬腑鏍峰紡 */
+  /* display: flex; */
+  justify-content: center;
+  align-items: center;
+  height: 100%; /* 纭繚div鍗犳嵁鏁翠釜鐭╁舰鐨勯珮搴� */
+  /* font-size: large; */
+}
+#line {
+  position: absolute;
+  top: 70%; /* 鐩寸嚎浣嶄簬鐭╁舰涓棿 */
+  left: 210px; /* 鐩寸嚎鍦ㄧ澶村彸渚т竴浜涜窛绂� */
+  transform: translateY(-50%); /* 鍨傜洿灞呬腑 */
+  height: 2px; /* 鐩寸嚎鐨勯珮搴� */
+  width: 240px; /* 鐩寸嚎鐨勯暱搴︼紝鏍规嵁闇�瑕佽皟鏁� */
+  background-color: #911005; /* 鐩寸嚎鐨勯鑹� */
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Identify/identifwutwo.vue b/UI-Project/src/views/Identify/identifwutwo.vue
new file mode 100644
index 0000000..c39e832
--- /dev/null
+++ b/UI-Project/src/views/Identify/identifwutwo.vue
@@ -0,0 +1,235 @@
+<template>
+  <div style="height: 500px;">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;">
+    <div style="text-align: center;"> {{ $t('processCard.temperinglayout') }}锛歿{ ava }}-{{ avanum }} </div>
+    <el-scrollbar height="750px" width="1400px" style="background-color: #e9e9eb;">
+        <div style="position: relative;">
+          <div
+              v-for="(rect, index) in adjustedRects"
+              :key="rect.glassId"
+              class="rect"
+              @click="showDialog(rect.glassId)"
+              :style="{ position: 'absolute',
+              top: `${rect.yAxisa}px`, left: `${rect.xAxisa}px`, width: `${rect.width}px`, height: `${rect.height}px`,
+              backgroundColor: rect.isActive ? '#ADFF2F' : getRectColor(rect.state)
+               }">
+            <div class="centered-text">
+              <div style="font-size: 20px;font-weight: bold;">{{ rect.glassId }}</div>
+              <div style="font-size: 20px;font-weight: bold;">{{ rect.flowCardId }}</div>
+              <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div>
+            </div>
+          </div>
+        </div>
+      </el-scrollbar>
+      <el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose">
+        <el-button :disabled="currentGlassRect?.state === 8 || currentGlassRect?.state === 9" type="warning"
+                   plain :icon="Delete" @click="handleDamage(currentGlassId)" style="width: 140px;margin-left: 10px;">
+          {{ $t('order.dilapidation') }}
+        </el-button>
+        <el-button :disabled="currentGlassRect?.state === 9 || currentGlassRect?.state === 8" type="danger"
+                   plain @click="handleManualTake(currentGlassId)" style="width: 140px;margin-top: 10px;">
+          <el-icon class="el-icon--right">
+            <Upload/>
+          </el-icon>
+          {{ $t('order.takeaway') }}
+        </el-button>
+      </el-dialog>
+    </el-card>
+  </div>
+</template>
+<script setup lang="ts">
+import {ElMessage} from 'element-plus'
+import {onBeforeUnmount, computed, onMounted, onUnmounted, ref} from 'vue';
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const blind = ref(false)
+const currentGlassId = ref(null);
+const adjustedRects = ref([]);
+const ava = ref('');
+const avanum = ref('');
+const realwidth = ref('');
+const realheight = ref('');
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/currentCutDrawingTwo`;
+const handleMessage = (data: any) => {
+  if (data.engineer != null) {
+  ava.value = data.engineer[0]
+  }else{
+    ava.value = ''
+  }
+  if (data.engineer != null) {
+    avanum.value = data.sequence[0]
+  }else{
+    avanum.value = ''
+  }
+      if (data.upPattenUsage && data.upPattenUsage.length > 0) {
+        realwidth.value = data.upPattenUsage[0].width;
+        realheight.value = data.upPattenUsage[0].height;
+        const realx = realwidth.value;
+        const realy = realheight.value;
+        const scaleFactora = 1621.78 / realx;
+        const scaleFactorya = 750 / realy;
+      window.localStorage.setItem('widthreturna', realy)
+      window.localStorage.setItem('scaleFactorb', scaleFactora)
+      window.localStorage.setItem('scaleFactoryb', scaleFactorya)
+      }
+      if (data.currentCutTerritory && data.currentCutTerritory.length > 0) {
+        let scaleFactor = window.localStorage.getItem('scaleFactorb')
+        let scaleFactory = window.localStorage.getItem('scaleFactoryb')
+        let widthreturn = window.localStorage.getItem('widthreturna')
+        const newRects = data.currentCutTerritory[0].map(rect => {
+          const existingRect = adjustedRects.value.find(r => r.glassId === rect.glassId);
+          if (existingRect) {
+            return {
+              ...existingRect,
+               xAxisa: rect.xAxis * scaleFactor,
+               yAxisa: (widthreturn - (rect.yAxis + rect.edgHeight )) * scaleFactory,
+              width: rect.edgWidth * scaleFactor,
+              height: rect.edgHeight * scaleFactory,
+              widtha: rect.edgWidth,
+              heighta: rect.edgHeight,
+              state: rect.state,
+            };
+          } else {
+            // 濡傛灉涓嶅瓨鍦紝鍒欐坊鍔犳柊鐭╁舰锛岄粯璁� isActive 涓� false
+            return {
+              ...rect,
+              xAxisa: rect.xAxis * scaleFactor,
+              yAxisa: (widthreturn - (rect.yAxis + rect.edgHeight)) * scaleFactory,
+              width: rect.edgWidth * scaleFactor,
+              height: rect.edgHeight * scaleFactory,
+              widtha: rect.edgWidth,
+              heighta: rect.edgHeight,
+              state: rect.state,
+              isActive: false,
+              glassId: rect.glassId,
+            };
+          }
+        });
+        adjustedRects.value = newRects;
+      } else if (data.currentCutTerritory == '') {
+        adjustedRects.value = [];
+      }
+}
+const currentGlassRect = computed(() => {
+  return adjustedRects.value.find(rect => rect.glassId === currentGlassId.value);
+});
+function showDialog(glassId: number) {
+  currentGlassId.value = glassId;
+  blind.value = true;
+  adjustedRects.value = adjustedRects.value.map(rect =>
+      rect.glassId === glassId ? {...rect, isActive: true} : rect
+  );
+}
+const handleDialogClose = () => {
+  adjustedRects.value = adjustedRects.value.map(rect => ({
+    ...rect,
+    isActive: false
+  }));
+}
+// 鐮存崯
+const handleDamage = async () => {
+  try {
+    const response = await request.post('/cacheGlass/taskCache/identControls', {
+      glassId: currentGlassId.value,
+      state: 8,
+      line: 2,
+      remark: '鎺扮墖',
+      workingProcedure: '鍒囧壊',
+    })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      blind.value = false;
+      updateRectStatus(currentGlassId.value, 8);
+    } else {
+      ElMessage.error(response.msg);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+}
+// 浜哄伐鎷胯蛋
+const handleManualTake = async () => {
+  try {
+    const response = await request.post('/cacheGlass/taskCache/identControls', {
+      glassId: currentGlassId.value,
+      state: 9,
+      line: 2,
+      workingProcedure: '鍒囧壊',
+      remark: '鎺扮墖',
+    })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      blind.value = false;
+      updateRectStatus(currentGlassId.value, 9);
+    } else {
+      ElMessage.error(response.msg);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+}
+function getRectColor(state: number): string {
+  switch (state) {
+    case 0:  
+      return '#7AC5CD';
+    case 1:
+      return '#95d475';
+    case -1:
+      return '#99BBFF';
+    case 2:  
+      return 'lightblue';
+    case 3:  
+      return '#eebe77';  
+    case 4:  
+      return '#CD6090';
+    case 8:
+      return '#911005';
+    case 9:
+      return '#4682B4';
+    default:
+      return '#CDAF95'; 
+  }
+}
+// 鏇存柊鐭╁舰鐘舵��
+function updateRectStatus(glassId: string, status: number) {
+  adjustedRects.value.forEach(rect => {
+    if (rect.glassId === glassId) {
+      rect.state = status; // 鏇存柊鐭╁舰鐨勭姸鎬�  
+    }
+  });
+}
+onMounted(() => {
+  socket = initializeWebSocket(socketUrl, handleMessage);
+});
+onBeforeUnmount(() => {
+  closeWebSocket();
+});
+</script>
+<style scoped>
+.rect {
+  border: 1px solid black; /* 璁剧疆鐭╁舰鐨勮竟妗� */
+  /* background-color: lightblue; 璁剧疆鐭╁舰鐨勮儗鏅壊   */
+}
+.centered-text {
+  /* 璁剧疆鏂囧瓧灞呬腑鏍峰紡 */
+  /* display: flex; */
+  justify-content: center;
+  align-items: center;
+  height: 100%; /* 纭繚div鍗犳嵁鏁翠釜鐭╁舰鐨勯珮搴� */
+  /* font-size: large; */
+}
+#line {
+  position: absolute;
+  top: 70%; /* 鐩寸嚎浣嶄簬鐭╁舰涓棿 */
+  left: 210px; /* 鐩寸嚎鍦ㄧ澶村彸渚т竴浜涜窛绂� */
+  transform: translateY(-50%); /* 鍨傜洿灞呬腑 */
+  height: 2px; /* 鐩寸嚎鐨勯珮搴� */
+  width: 240px; /* 鐩寸嚎鐨勯暱搴︼紝鏍规嵁闇�瑕佽皟鏁� */
+  background-color: #911005; /* 鐩寸嚎鐨勯鑹� */
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Identify/identify.vue b/UI-Project/src/views/Identify/identify.vue
new file mode 100644
index 0000000..6a1e5f0
--- /dev/null
+++ b/UI-Project/src/views/Identify/identify.vue
@@ -0,0 +1,281 @@
+<template>
+  <div style="height: 500px;">
+    <div style="display: flex;">
+      <el-input v-model="engineerId" style="margin-left: 15px;margin-top: 10px;width: 240px" :placeholder="$t('order.projectnumber')"/>
+          <el-button type="primary" style="margin-left: 10px;margin-top: 10px;" @click="sethistorical()">{{$t('reportmanage.inquire')}}</el-button>
+       <el-pagination
+          v-model:current-page="currentPage"
+          :page-size="pageSize"
+          :size="size"
+          :disabled="disabled"
+          layout="prev, pager, next, jumper"
+          :total="totalPages"
+          @current-change="handleCurrentChange"
+          style="margin-top: 10px;"
+      />
+      </div>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;">
+      <el-scrollbar height="750px" width="1400px" style="background-color: #e9e9eb;">
+  <div style="position: relative;">  
+    <div
+      v-for="(rect, index) in adjustedRects"  
+      :key="rect.glassId"  
+      class="rect"  
+      @click="showDialog(rect.glassId)"  
+      :style="{ position: 'absolute', 
+      top: `${rect.yaxisa}px`, left: `${rect.xaxisa}px`, width: `${rect.width}px`, height: `${rect.height}px`,
+      backgroundColor: rect.isActive ? '#ADFF2F' : getRectColor(rect.state)
+       }"  
+    >
+     <div  class="centered-text">
+    <div style="font-size: 20px;font-weight: bold;">{{ rect.glassId }}</div>
+    <div style="font-size: 20px;font-weight: bold;">{{ rect.flowCardId }}</div>
+    <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
+  </div>
+  </div> 
+   </div>
+      </el-scrollbar>
+      <el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose">
+        <el-select 
+            :placeholder="$t('workOrder.cway')"
+             clearable
+             style="width: 140px;margin-left: 10px;margin-bottom: 10px;"  
+             v-model="patternSequence">
+               <el-option
+                v-for="item in optionsb"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
+          </el-select>
+        <el-button :disabled="!patternSequence || currentGlassRect?.state === 8 || currentGlassRect?.state === 9" type="warning"
+                   plain :icon="Delete" @click="handleDamage(currentGlassId)" style="width: 140px;margin-left: 10px;">
+          {{ $t('order.dilapidation') }}
+        </el-button>
+        <el-button :disabled="!patternSequence || currentGlassRect?.state === 9 || currentGlassRect?.state === 8" type="danger"
+                   plain @click="handleManualTake(currentGlassId)" style="width: 140px;margin-top: 10px;">
+          <el-icon class="el-icon--right">
+            <Upload/>
+          </el-icon>
+          {{ $t('order.takeaway') }}
+        </el-button>
+      </el-dialog>
+    </el-card>
+  </div>
+</template>
+<script setup lang="ts">
+import {ElMessage} from 'element-plus'
+import {computed, onMounted, onUnmounted, ref} from 'vue';
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const blind = ref(false)
+const engineerId = ref();
+const patternSequence = ref();
+const currentGlassId = ref(null); 
+const currentstate = ref(null);
+const adjustedRects = ref([]);
+const raw = ref([]);
+let webSocket: WebSocket | null = null;  
+const totalPages = ref(0);
+const pageSize = ref(1);
+const currentPage = ref('');
+const realwidth = ref('');
+const realheight = ref('');
+const disabled = false;
+const size = 'small';
+const rawData = ref([]);
+// 鏄剧ず瀵硅瘽妗嗗苟璁剧疆褰撳墠 glassId  
+const currentGlassRect = computed(() => {
+  return adjustedRects.value.find(rect => rect.glassId === currentGlassId.value);  
+}); 
+function showDialog(glassId: number) {
+  currentGlassId.value = glassId;  
+  blind.value = true;  
+  adjustedRects.value = adjustedRects.value.map(rect =>  
+  rect.glassId === glassId ? { ...rect, isActive: true } : rect  
+  ); 
+}  
+const handleDialogClose = () => {  
+  adjustedRects.value = adjustedRects.value.map(rect => ({  
+    ...rect,  
+    isActive: false  
+  }));  
+}
+// 鐮存崯
+const handleDamage = async () => {
+  try  {
+  const response = await request.post('/cacheGlass/taskCache/identControls', {
+      glassId: currentGlassId.value,
+      state: 8,
+      line: patternSequence.value,
+      remark: '鎺扮墖',
+      workingProcedure: '鍒囧壊',
+    })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      blind.value = false;
+      patternSequence.value = ''
+      updateRectStatus(currentGlassId.value, 8); 
+    } else {
+      ElMessage.error(response.msg);
+    }
+}
+catch (error) {
+    // 澶勭悊閿欒
+    console.error(error);
+  }
+}
+ // 浜哄伐鎷胯蛋
+const handleManualTake = async () => {
+  try  {
+  const response = await request.post('/cacheGlass/taskCache/identControls', {
+      glassId: currentGlassId.value,
+      state: 9,
+      line: patternSequence.value,
+      workingProcedure: '鍒囧壊',
+      remark: '鎺扮墖',
+    })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      blind.value = false;
+      patternSequence.value = ''
+      updateRectStatus(currentGlassId.value, 9); 
+  } else {
+      ElMessage.error(response.msg);
+    }
+}
+catch (error) {
+    console.error(error);
+  }
+}
+const sethistorical = async () => {
+    var url="/cacheGlass/taskCache/queryCutDrawingByEngineerId?engineerId="+engineerId.value+ "&patternSequence=" + 1;
+    const response = await request.post(url)
+    if (response.code === 200) {
+      const rawRects = response.data.currentCutDrawing;
+      rawData.value = response.data;
+      totalPages.value = response.data.totalPatternSequence;
+      realwidth.value = response.data.upPattenUsage.width;
+      realheight.value = response.data.upPattenUsage.height;
+      const realx = realwidth.value;
+      const realy = realheight.value;
+      const scaleFactor =  1621.78/realx; 
+      const scaleFactory =  750/realy; 
+      adjustedRects.value = rawRects.map(rect => ({
+        ...rect,
+        xaxisa: rect.xaxis * scaleFactor,
+        yaxisa: (realy - (rect.yaxis + rect.edgHeight )) * scaleFactory,
+        width: rect.edgWidth * scaleFactor,
+        widtha: rect.edgWidth,
+        heighta: rect.edgHeight ,
+        height: rect.edgHeight * scaleFactory,
+        state: rect.state
+      })); 
+       currentPage.value = 1;
+    }  
+};
+const handleCurrentChange = async(val: number) => {  
+  currentPage.value = val;
+  var url="/cacheGlass/taskCache/queryCutDrawingByEngineerId?engineerId="+engineerId.value+ "&patternSequence=" + currentPage.value;
+    const response = await request.post(url)
+    if (response.code === 200) {
+      const rawRects = response.data.currentCutDrawing;
+      rawData.value = response.data;
+      realwidth.value = response.data.upPattenUsage.width;
+      realheight.value = response.data.upPattenUsage.height;
+      const realx = realwidth.value;
+      const realy = realheight.value;
+      const scaleFactor =  1621.78/realx; 
+      const scaleFactory =  750/realy; 
+      adjustedRects.value = rawRects.map(rect => ({  
+        ...rect,
+        xaxisa: rect.xaxis * scaleFactor,
+        yaxisa: (realy - (rect.yaxis + rect.edgHeight )) * scaleFactory,
+        width: rect.edgWidth * scaleFactor,
+        widtha: rect.edgWidth,
+        heighta: rect.edgHeight,
+        height: rect.edgHeight * scaleFactory,
+        state: rect.state
+      })); 
+    }
+};
+function getRectColor(state: number): string {
+  switch (state) {
+    case 0:  
+      return '#7AC5CD';
+    case 1:
+      return '#95d475';
+    case -1:
+      return '#99BBFF';
+    case 2:  
+      return 'lightblue';
+    case 3:  
+      return '#eebe77';  
+    case 4:  
+      return '#CD6090';
+    case 8:
+      return '#911005';
+    case 9:
+      return '#4682B4';
+    default:
+      return '#CDAF95'; 
+  }
+}
+const optionsb = [
+  {
+    value: 1,
+    label: t('sorter.onesort'),
+  },
+  {
+    value: 2,
+    label: t('sorter.twosort'),
+  },
+]
+// 鏇存柊鐭╁舰鐘舵��  
+function updateRectStatus(glassId: string, status: number) {  
+  adjustedRects.value.forEach(rect => {  
+    if (rect.glassId === glassId) {  
+      rect.state = status; // 鏇存柊鐭╁舰鐨勭姸鎬�  
+    }  
+  });  
+}
+</script>  
+<style scoped>  
+.rect {  
+  border: 1px solid black; /* 璁剧疆鐭╁舰鐨勮竟妗� */  
+} 
+.centered-text {
+  justify-content: center;  
+  align-items: center; 
+  height: 100%;
+  /* font-size: large; */
+}
+#rect {  
+  position: relative; /* 纭繚绠ご鍙互鐩稿浜庣煩褰㈠畾浣� */  
+}  
+
+#arrow {  
+  position: absolute;  
+  top: 70%; /* 绠ご浣嶄簬鐭╁舰涓棿 */  
+  left: 200px; /* 绠ご鍦ㄧ煩褰㈠乏渚т竴浜涜窛绂� */  
+  transform: translateY(-50%); /* 鍨傜洿灞呬腑 */  
+  width: 0;  
+  height: 0;  
+  border-top: 10px solid transparent; /* 涓婅竟妗� */  
+  border-bottom: 10px solid transparent; /* 涓嬭竟妗� */  
+  border-right: 20px solid #911005; /* 鍙宠竟妗嗭紝褰㈡垚绠ご */  
+}  
+  
+#line {  
+  position: absolute;  
+  top: 70%; /* 鐩寸嚎浣嶄簬鐭╁舰涓棿 */  
+  left: 210px; /* 鐩寸嚎鍦ㄧ澶村彸渚т竴浜涜窛绂� */  
+  transform: translateY(-50%); /* 鍨傜洿灞呬腑 */  
+  height: 2px; /* 鐩寸嚎鐨勯珮搴� */  
+  width: 240px; /* 鐩寸嚎鐨勯暱搴︼紝鏍规嵁闇�瑕佽皟鏁� */  
+  background-color: #911005; /* 鐩寸嚎鐨勯鑹� */  
+}  
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/LoginView.vue b/UI-Project/src/views/LoginView.vue
new file mode 100644
index 0000000..0bb6054
--- /dev/null
+++ b/UI-Project/src/views/LoginView.vue
@@ -0,0 +1,224 @@
+<script lang="ts" setup>
+import {onMounted, onUnmounted, reactive, ref} from 'vue'
+import {useRoute, useRouter} from 'vue-router'
+import type {FormInstance, FormRules} from 'element-plus'
+import {ElMessage} from 'element-plus'
+import request from '@/utils/request'
+import userInfo from '@/stores/userInfo'
+import { useI18n } from 'vue-i18n'
+const store = userInfo()
+let ruleFormRef = ref<FormInstance>()
+const router = useRouter()
+const route = useRoute()
+const { t } = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const changeLanguage = () =>{
+  localStorage.setItem('lang',language.value)
+  location.reload()
+}
+const userForm = reactive({
+  userName: '',
+  password: '',
+})
+if (typeof route.query.id != 'undefined') {
+  userForm.userId = <string>route.query.id
+}
+const validateUser = (rule: any, value: any, callback: any) => {
+  if (value === '') {
+    callback(new Error(t('login.userErr')))
+  } else {
+    callback()
+  }
+}
+const validatePass = (rule: any, value: any, callback: any) => {
+  if (value === '') {
+    callback(new Error(t('login.pwErr')))
+  } else {
+    callback()
+  }
+}
+const rules = reactive<FormRules<typeof userForm>>({
+  userId: [{validator: validateUser, trigger: 'blur'}],
+  pass: [{validator: validatePass, trigger: 'blur'}],
+})
+//鐧婚檰鏂规硶
+const submitForm = (formEl: FormInstance | undefined) => {
+  store.$patch({
+              user: null,
+              })
+  if (!formEl) return
+  formEl.validate((valid) => {
+    if (valid) {
+      loginLoadings.value = true
+      request
+          // .post('/loadGlass/userinfo/login', userForm)
+          .post('/loadGlass/sys/user/login', userForm)
+          .then((res) => {
+            if (res['code'] == 200) {
+              store.$patch({user: res.data})
+              router.push('/main')
+              ElMessage.success(t('login.loginSuccessful'))
+            } else {
+              // ElMessage.error(res['msg'])
+              store.$patch({
+              user: null,
+              })
+              loginLoadings.value = false
+              return false
+            }
+          })
+          .catch((error) => {
+            ElMessage.error(t('main.connectErr'))
+            store.$patch({
+              user: null,
+              })
+            loginLoadings.value = false
+            return false
+          })
+    }
+  })
+}
+function register() {
+  router.push({
+    path: '/register',
+  })
+}
+let loginLoadings = ref(false)
+let registerLoadings = ref(false)
+const keyDown = (e) => {
+  // 鍥炶溅鍒欐墽琛岀櫥褰曟柟娉� enter閿殑ASCII鏄�13
+  if (e.keyCode == 13 || e.keyCode == 100) {
+    submitForm(ruleFormRef.value)
+  }
+}
+onMounted(() => {
+  window.addEventListener('keydown', keyDown)
+})
+onUnmounted(() => {
+  window.removeEventListener('keydown', keyDown)
+})
+</script>
+<template>
+  <div class="mainDiv">
+    <div id="main-login">
+      <!-- <img
+        style="width: 100%; height: 99vh"
+        src="../../src/assets/background.jpg"
+      /> -->
+      <div>
+        <div style="position: absolute; left: 8vw; top: 6vw; ">
+          <img src="../../src/assets/3.png">
+        </div>
+        <div style="position: absolute; left: 15vw; top: 22vw; font-size: 55px;color: rgba(29, 33, 41, 1);">
+          {{ $t('northglassMESsystem') }}
+        </div>
+      </div>
+      <div id="div-login">
+        <!--璇█鍒囨崲鎸夐挳-->
+        <el-select
+            @change="changeLanguage"
+            v-model="language"
+            placeholder=" "
+            style="float: right;width: 9rem">
+          <el-option value="zh"  label="涓枃" />
+          <el-option value="py"  label="袪褍褋褋泻懈泄 褟蟹褘泻" />
+          <el-option value="en"  label="English" />
+        </el-select>
+        <el-form @submit.native.prevent
+                 ref="ruleFormRef"
+                 :model="userForm"
+                 status-icon
+                 :rules="rules">
+          <div id="center">
+            <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">{{ $t('login.user') }}</div>
+            <el-form-item prop="userId">
+              <el-input style="width: 340px;"
+                        v-model="userForm.userName"
+                        type="text"
+                        autocomplete="off"
+                        :prefix-icon="Avatar"
+                        :placeholder="$t('login.userErr')"/>
+            </el-form-item>
+            <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">{{ $t('login.password') }}</div>
+            <el-form-item prop="pass">
+              <el-input style="width: 340px;"
+                        v-model="userForm.password"
+                        type="password"
+                        autocomplete="off"
+                        :prefix-icon="Lock"
+                        show-password
+                        :placeholder="$t('login.pwErr')"
+                       />
+            </el-form-item>
+            <el-form-item id="submitForm">
+              <el-button :loading="loginLoadings"
+                         type="primary"
+                         native-type="submit"
+                         style="width: 80px;"
+                         @click="submitForm(ruleFormRef)"
+                         @keyup.enter.native="keyDown(e)"
+                         plain>{{ $t('login.login') }}
+              </el-button>
+              <!-- <el-button :loading="registerLoadings"
+                         type="primary"
+                         @click="register"
+                         plain>{{ $t('login.register') }}
+              </el-button> -->
+            </el-form-item>
+          </div>
+        </el-form>
+      </div>
+    </div>
+  </div>
+</template>
+<style scoped>
+.mainDiv {
+  overflow: hidden;
+  min-width: 718px;
+  background-image: url('../../src/assets/background.jpg');
+}
+#main-login {
+  margin: 150px auto 0 auto;
+  height: 70vh;
+  width: 80vw;
+}
+#img-div {
+  width: 55%;
+  height: 100%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  float: left;
+}
+#img-pic {
+  max-height: 90%;
+  max-width: 100%;
+}
+#div-login {
+  margin-top: 5%;
+  /* margin-top: 20%; */
+  /* margin-left: 650px; */
+  background-color: #fff;
+  float: right;
+  width: 40%;
+  height: 60%;
+  min-width: 318px;
+  border-radius: 4px;
+  box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0), 0 6px 5px 0 rgba(0, 0, 0, 0.19);
+}
+#center {
+  margin-top: -30px;
+}
+.el-form {
+  width: 60%;
+  margin: 20% auto auto;
+}
+#submitForm {
+  display: flex;
+  justify-content: space-evenly;
+  margin-top: 2rem;
+}
+:deep(.el-form-item__content) {
+  flex: unset;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/NewPage.vue b/UI-Project/src/views/NewPage.vue
new file mode 100644
index 0000000..96c235d
--- /dev/null
+++ b/UI-Project/src/views/NewPage.vue
@@ -0,0 +1,148 @@
+<template>  
+  <div>  
+<div style="display: flex;">
+  <div style="margin-left: 50px;margin-top: 15px;font-size:large">宸ョ▼鍙�:</div>
+<el-input v-model="current" style="margin-left: 20px;margin-top: 15px;width: 240px" placeholder="璇疯緭鍏ュ伐绋嬪彿" @input="updateUrl"/>
+    <el-button style="margin-top: 15px;margin-left: 15px;"  type="primary" @click="fetchData">鏌ヨ</el-button>  
+  </div>  
+  <el-card style="flex: 1;margin-left: 400px;margin-top: 50px;margin-right: 10px;width: 1100px;" height="900" >
+  <div v-for="(row, rowIndex) in divsData" :key="rowIndex" class="row">  
+      <div v-for="(rect, colIndex) in row" :key="colIndex" class="div-container">  
+    <div style="text-align: center;">鐐夊彿锛歿{ getAdjustedRectsForRow(rowIndex)[0].layout_id }}  ----   瑁呰浇鐜囷細{{ getAdjustedRectsForRow(rowIndex)[0].olLayoutRate }}</div>  
+  <el-scrollbar height="550px" width="1000px" style="background-color: #e9e9eb;">
+  <div  style="position: relative;width: 100%;height: 100%;">
+    <div
+      v-for="(rect, index) in getAdjustedRectsForRow(rowIndex)"
+    :key="index"  
+    class="rect"
+    :style="{ position: 'absolute',
+     top: `${rect.y_axis}px`, 
+     left: `${rect.x_axis}px`,
+     width: `${rect.width}px`,  
+       height: `${rect.height}px`,  
+      backgroundColor:  'lightblue'}">
+   <div  class="centered-text">
+  <div style="font-size: 15px;font-weight: bold;">{{ rect.sort }}</div>  
+  <div style="font-size: 15px;font-weight: bold;">{{ rect.process_id }}</div>  
+  <div style="font-size: 15px;font-weight: bold;">{{ rect.project_no }}</div>  
+  <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
+</div>
+</div>
+ </div>
+ </el-scrollbar>
+ </div>
+ </div>
+ </el-card>
+</div>
+</template>  
+   <script setup>  
+   import { ref, onMounted, watch, watchEffect } from 'vue';  
+   import { useRoute, useRouter } from 'vue-router';  
+   import request from "@/utils/request"
+   const route = useRoute();  
+   const router = useRouter();  
+   const current = ref(route.query.current || '');  
+   const adjustedRects = ref([]);
+   const loading = ref(false);
+   const adjustedRectsPerRow = ref([]);
+   const divsData = ref([]);
+   const rawData = ref([]);
+   onMounted(() => {  
+     if (route.query.current) {  
+       current.value = route.query.current;
+       window.localStorage.setItem('current', current.value)
+     }  
+   });  
+   onMounted(async () => { 
+       try {  
+         let current = window.localStorage.getItem('current')
+           const response = await request.post(`/cacheGlass/taskCache/temperingTerritory?current=${current}`);
+         if (response.code === 200) {  
+           rawData.value = response.data;
+                 processData(rawData.value);
+         } else {
+         }  
+       } catch (error) {
+       }  
+     }); 
+   watch(  
+     current,  
+     (newVal) => {  
+       router.replace({ query: { current: newVal } });  
+     },  
+     { immediate: true } // 浣跨敤 immediate: true 鏉ョ‘淇濆湪缁勪欢鎸傝浇鏃剁珛鍗虫墽琛屼竴娆� watch 鍥炶皟  
+   );
+   const fetchData = async () => {
+     try {
+       const response = await request.post(`/cacheGlass/taskCache/temperingTerritory?current=${current.value}`);
+       if (response.code === 200) {
+          rawData.value = response.data;
+          processData(rawData.value);
+  }  
+} catch (error) { 
+} finally {  
+  loading.value = false;  
+}  
+};
+   function processData(data) {  
+const groupedData = [];  
+for (let i = 0; i < data.length; i += 1) {
+  groupedData.push(data.slice(i, i + 1));
+}  
+divsData.value = groupedData;
+const rowIndex = divsData.value;
+  adjustedRectsPerRow.value = divsData.value.map(() => []);
+divsData.value.forEach((row, rowIndex) => {
+  const rawRowData = rawData.value[rowIndex].listGlass;
+  if (rawRowData) {
+adjustedRectsPerRow.value[rowIndex] = rawRowData.map(rect => {
+      let adjustedWidth, adjustedHeight,newX,widtha,heighta;
+      if (rect.width < rect.height) {
+        widtha = rect.height;
+        heighta = rect.width;
+      }else {
+        widtha = rect.width;
+        heighta = rect.height;
+      }
+      if (rect.rotate_angle  === 90) {
+       newX = rect.olHeight -(rect.y_axis + heighta); 
+       adjustedWidth = heighta * (1000/rect.olHeight);
+       adjustedHeight = widtha * (550/rect.olWidth);
+      } else {
+        newX = rect.olHeight -(rect.y_axis + widtha); 
+       adjustedWidth = widtha * (1000/rect.olHeight);
+       adjustedHeight = heighta * (550/rect.olWidth);
+  } 
+      let adjustedRect = {  
+        ...rect,
+        y_axis: rect.x_axis * (550/rect.olWidth),
+        x_axis: newX * (1000/rect.olHeight),
+        width: adjustedWidth,  
+        height: adjustedHeight,  
+        widtha: rect.width,  
+        heighta: rect.height,  
+      }; 
+      return adjustedRect;  
+    });  
+  }  
+});  
+}
+// 鏂规硶鐢ㄤ簬鑾峰彇褰撳墠琛岀殑adjustedRects  
+function getAdjustedRectsForRow(rowIndex) {
+return adjustedRectsPerRow.value[rowIndex] || [];  
+}  
+</script>
+<style scoped>  
+.row {  
+display: flex;  
+justify-content: space-between;  
+margin-bottom: 20px;
+}
+.div-container {  
+width: 1000px;
+float: left;
+background-color: #f4f4f5;
+height: 550px;
+box-sizing: border-box;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Permissions/permissionslist.vue b/UI-Project/src/views/Permissions/permissionslist.vue
new file mode 100644
index 0000000..6acbe84
--- /dev/null
+++ b/UI-Project/src/views/Permissions/permissionslist.vue
@@ -0,0 +1,418 @@
+<script lang="ts" setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+const value1 = ref(true)
+const add = ref(false)
+const adda = ref(false)
+import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+
+const changer = ref(false)
+
+const tableData = [
+  {
+    id: '1',
+    long: '1005',
+    wide: '183.6',
+    thick: '1991',
+    time: '2024/4/1',
+    typea: '1',
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    time: '2024/4/1',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    time: '2024/4/1',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+]
+
+const data= reactive({
+   tableList:[]//table鏁版嵁
+})
+
+const beforeChange = () => {
+  return new Promise((resolve) => {
+    setTimeout(() => {
+      ElMessage.success("淇敼鎴愬姛锛�");
+      return resolve(true);
+    }, 1000);
+  });
+};
+const open = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+    .then(() => {
+      ElMessage({
+        type: 'success',
+        message: '鍒犻櫎鎴愬姛锛�',
+      })
+    })
+    .catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '鍒犻櫎澶辫触',
+      })
+    })
+}
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+const dialogForm = () => {
+  ElMessageBox.confirm(
+    '鏄惁閲嶇疆瀵嗙爜?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+  .then(() => {
+    // this.boxa = true
+    // this.box = false
+      
+    })
+}
+const empty = [
+   { id: '',
+    long: '',
+    wide: '',
+    thick: '',
+    type: '',
+    typea: '',}
+
+]
+const options = [
+  {
+    value: 'Option1',
+    label: 'admin',
+  },
+  {
+    value: 'Option2',
+    label: 'ueser2',
+  },
+  {
+    value: 'Option3',
+    label: 'ueser3',
+  },
+]
+const optionsa = [
+  {
+    valuea: 'Option1',
+    labela: '姝e父',
+  },
+  {
+    valuea: 'Option2',
+    labela: '绂佺敤',
+  },
+]
+// const delete = () => {
+//   ElMessageBox.confirm(
+//     '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+//     '鎻愮ず',
+//     {
+//       confirmButtonText: '鏄�',
+//       cancelButtonText: '鍙栨秷',
+//       type: 'warning',
+//     }
+//   )
+//   .then(() => {
+      
+//     })
+// }
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'OrderList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  data:  [
+    {
+      'id': '1',
+      'long': '5',
+      'wide': '1005',
+      'thick': '183.6',
+    }
+  ],
+})
+
+</script>
+
+<template>
+  <div>
+        <el-button type="primary" style="margin-top: 10px;margin-left: 10px;"  id="searchButton" @click="add = true">娣诲姞鏉冮檺</el-button>
+        <el-input
+          clearable
+          placeholder="璇疯緭鍏ュ叧閿瓧"
+          style="margin-right: 20px; width: 200px;margin-left: 10px;margin-top: 10px;"
+        />
+        <el-button type="primary" @click="searchSubmit" style="margin-top: 10px;">鏌ヨ</el-button >
+        <el-button type="primary" @click="empty" style="margin-top: 10px;">娓呯┖</el-button>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" >
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;">
+        <el-table height="100%" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="id" align="center" label="瑙掕壊" min-width="80" />
+          <el-table-column prop="long" align="center" label="鏉冮檺鎻忚堪" min-width="120" />
+          <el-table-column prop="wide" align="center" label="鏉冮檺鍊�" min-width="120" />
+          <el-table-column prop="time" align="center" label="鍒涘缓鏃堕棿" min-width="120" />
+        <el-table-column align="center"  prop="changer" label="鏄惁婵�娲�"  min-width="140">
+           <template #default="scope">
+           <el-switch  v-model="scope.row.changer"  :before-change="beforeChange" />
+         </template>
+         </el-table-column>
+          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+            <template #default>
+              <el-button type="text" plain  @click="adda = true">缂栬緫</el-button>
+              <el-button type="text" plain  @click="delete">鍒犻櫎</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+   
+  </div>
+  
+  <el-dialog v-model="add" top="23vh" width="37%" title="娣诲姞鏉冮檺" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  label-width="150px">
+      <el-form label-width="100px" label-position="right">
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="瑙掕壊锛�" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨瑙掕壊"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鏉冮檺锛�" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨鏉冮檺"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鏄惁婵�娲�" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨鏄惁婵�娲�"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in optionsa"
+            :key="item.valuea"
+            :label="item.labela"
+            :value="item.valuea"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="getTableRow('edit')">
+          纭
+        </el-button>
+        <el-button @click="add = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <el-dialog v-model="adda" top="23vh" width="37%" title="淇敼鏉冮檺" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  label-width="150px">
+      <el-form label-width="100px" label-position="right">
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="瑙掕壊锛�" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨瑙掕壊"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鏉冮檺锛�" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨鏉冮檺"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item label="鏄惁婵�娲�" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="value"
+               clearable
+               placeholder="璇烽�夋嫨鏄惁婵�娲�"
+               style="width: 330px"
+             >
+               <el-option
+            v-for="item in optionsa"
+            :key="item.valuea"
+            :label="item.labela"
+            :value="item.valuea"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="getTableRow('edit')">
+          纭
+        </el-button>
+        <el-button @click="adda = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>
+</template>
+
+<style scoped>
+
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#awatch{
+  height: 450px;
+}
+#main-body{
+  margin-top: -20px;
+  margin-left: 300px;
+}
+#main-bodya{
+  margin-top: -10px;
+  margin-left: 100px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/PurchaseReturn/purchase.vue b/UI-Project/src/views/PurchaseReturn/purchase.vue
new file mode 100644
index 0000000..06fecfb
--- /dev/null
+++ b/UI-Project/src/views/PurchaseReturn/purchase.vue
@@ -0,0 +1,38 @@
+<script setup>
+import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
+import {useRouter} from "vue-router";
+let indexFlag=$ref(1)
+function changeRouter(index){
+  indexFlag=index
+}
+</script>
+<template>
+    <div id="main-body">
+      <router-view  />
+    </div>
+</template>
+<style scoped>
+#main-div{
+  width: 100%;
+  height: 100%;
+}
+#div-title{
+  height: 2%;
+  width: 100%;
+}
+#searchButton{
+  margin-top: -5px;
+  margin-left: 1rem;
+}
+#main-body{
+  width: 100%;
+  height: 95%;
+  /* margin-top: 1%; */
+}
+#select{
+  margin-left:0.5rem;
+}
+:deep(.indexTag .el-breadcrumb__inner){
+  color: #5CADFE !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
new file mode 100644
index 0000000..a352616
--- /dev/null
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -0,0 +1,1167 @@
+<script setup lang="ts">
+import {nextTick, onBeforeUnmount, onMounted, ref} from "vue";
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {ElMessage} from 'element-plus'
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {useI18n} from 'vue-i18n'
+import {useRouter} from 'vue-router'
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const dialogFormVisible = ref(false)
+const dialogFormVisiblea = ref(true)
+const dialogFormVisibleb = ref(false)
+const blind1 = ref(false)
+const blind2 = ref(false)
+const blinda = ref(false)
+const blindb = ref(false)
+const dialogVisible = ref(false)
+const width = ref();
+const height = ref();
+const currentRect = ref(null);
+const canSelectProject1 = ref(true);
+const canSelectProject2 = ref(true);
+const canSelectProjecta = ref(true);
+const cantakea = ref(true);
+const cantakeb = ref(true);
+const canona = ref(true);
+const canonb = ref(true);
+const canSelectProjectb = ref(true);
+const adjustedRects1 = ref([]);
+const adjustedRects2 = ref([]);
+const adjustedRectsa = ref([]);
+const adjustedRectsb = ref([]);
+const currentPage = ref<number>(1);
+const tableData = ref([])
+const engineerId = ref('')
+const router = useRouter()
+const currentGlassId = ref(null);
+const currenttemperingFeedSequence = ref(null);
+onMounted(async () => {  
+  try {  
+    const response = await request.post('/loadGlass/damage/selectDamagePrint', {
+    type: 9,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code === 200) {  
+          tableData.value = response.data
+    } else {  
+      ElMessage.warning(response.message)
+    }  
+  } catch (error) {  
+  }  
+}); 
+// 鏂规硶瀹氫箟
+function handlePageChange(page: number) {
+  currentPage.value = page;
+}
+const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`;
+const handleMessage = (data) => {  
+  // 杩涚倝涓彸
+  if (data.intoGlass2 && data.intoGlass2.length > 0) {  
+    const newGlassIds = new Set(data.intoGlass2[0].map(rect => rect.glassId));  
+    const existingRects = adjustedRects2.value.filter(rect => newGlassIds.has(rect.glassId));  
+    const newRects = data.intoGlass2[0].map(rect => {  
+      const scaleFactor =  1621.78/6000; 
+      const scaleFactorY =  700/2800; 
+      let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; 
+  let newX = rect.yCoordinate; 
+      if (rect.width < rect.height) {
+        widtha = rect.height;
+        heighta = rect.width;
+      }else {
+        widtha = rect.width;
+        heighta = rect.height;
+      }
+  if (rect.angle === 0) {  
+    adjustedWidth = widtha * scaleFactor;  
+    adjustedHeight = heighta * scaleFactorY;
+    // adjustedWidtha = widtha;  
+    // adjustedHeighta = heighta;  
+    newX = 6000 - (rect.yCoordinate + widtha); 
+    } else {  
+    adjustedWidth = heighta * scaleFactor;  
+    adjustedHeight = widtha * scaleFactorY;  
+    // adjustedWidtha = widtha;  
+    // adjustedHeighta = heighta;  
+    newX = 6000 - (rect.yCoordinate + heighta);  
+  }  
+  return {  
+    ...rect, 
+    x: newX * scaleFactor,  
+    y: rect.xCoordinate * scaleFactorY,  
+    width: adjustedWidth,  
+    height: adjustedHeight,  
+    widtha: rect.width, 
+    heighta: rect.height,
+  }
+    }); 
+    // 鍚堝苟鏂版棫鐭╁舰锛屽苟淇濈暀 isActive 鐘舵��  
+    adjustedRects2.value = existingRects.map(oldRect => {  
+      const newRect = newRects.find(r => r.glassId === oldRect.glassId);  
+      if (newRect) {  
+        return { ...oldRect, ...newRect, isActive: oldRect.isActive };  
+      }  
+      return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝浣嗕繚鐣欏湪newGlassIds涓紝鍒欎繚鐣欏師鏍�  
+    }).concat(newRects.filter(r => !existingRects.some(o => o.glassId === r.glassId)));  
+  }  
+  // if (data.intoGlass2 && data.intoGlass2.length > 0) {  
+  //   // 鎻愬彇鏂扮殑鐭╁舰ID  
+  //   const newGlassIds = new Set(data.intoGlass2[0].map(rect => rect.glassId));  
+  //   // 杩囨护鍑哄凡瀛樺湪鐨勭煩褰�  
+  //   const existingRects = adjustedRects2.value.filter(rect => newGlassIds.has(rect.glassId));  
+  //   // 璁$畻鏂扮殑鐭╁舰  
+  //   const newRects = data.intoGlass2[0].map(rect => {  
+  //     const scaleFactor =  794.67/5087; 
+  //     const scaleFactorY =  430/2800; 
+  //       let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;
+  //       let newX = rect.yCoordinate; 
+  //     if (rect.width < rect.height) {
+  //       widtha = rect.height;
+  //       heighta = rect.width;
+  //     }else {
+  //       widtha = rect.width;
+  //       heighta = rect.height;
+  //     }
+  //     if (rect.angle === 0) {  
+  //   adjustedWidth = widtha * scaleFactor;
+  //   adjustedHeight = heighta * scaleFactorY;
+  //   // adjustedWidtha = widtha;  
+  //   // adjustedHeighta = heighta;   
+  //   newX = 5087 - (rect.yCoordinate + widtha); 
+  //   } else {  
+  //   adjustedWidth = heighta * scaleFactor;  
+  //   adjustedHeight = widtha * scaleFactorY;  
+  //   // adjustedWidtha = widtha;  
+  //   // adjustedHeighta = heighta;  
+  //   newX = 5087 - (rect.yCoordinate + heighta); 
+  // } 
+  //       return {  
+  //       ...rect, 
+  //       xcoordinate: newX * scaleFactor,
+  //       ycoordinate: rect.xCoordinate * scaleFactorY,
+  //       width: adjustedWidth,  
+  //       height: adjustedHeight,  
+  //       widtha: rect.width, 
+  //       heighta: rect.height,
+  //     }
+  //   });   
+  //   // 鍚堝苟鏂版棫鐭╁舰锛屽苟淇濈暀 isActive 鐘舵��  
+  //   adjustedRects2.value = existingRects.map(oldRect => {  
+  //     const newRect = newRects.find(r => r.glassId === oldRect.glassId);  
+  //     if (newRect) {  
+  //       return { ...oldRect, ...newRect, isActive: oldRect.isActive };  
+  //     }  
+  //     return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝浣嗕繚鐣欏湪newGlassIds涓紝鍒欎繚鐣欏師鏍�  
+  //   }).concat(newRects.filter(r => !existingRects.some(o => o.glassId === r.glassId)));  
+  // }  
+  else if (data.intoGlass2 == null) {
+    adjustedRects2.value = []
+  }
+  // 杩涚倝涓乏
+  if (data.intoGlass && data.intoGlass.length > 0) {  
+    const newGlassIds = new Set(data.intoGlass[0].map(rect => rect.glassId));  
+    const existingRects = adjustedRects1.value.filter(rect => newGlassIds.has(rect.glassId));  
+    const newRects = data.intoGlass[0].map(rect => {  
+      const scaleFactor =  1621.78/6000; 
+      const scaleFactorY =  700/2800; 
+      let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; 
+  let newX = rect.yCoordinate; 
+      if (rect.width < rect.height) {
+        widtha = rect.height;
+        heighta = rect.width;
+      }else {
+        widtha = rect.width;
+        heighta = rect.height;
+      }
+  if (rect.angle === 0) {  
+    adjustedWidth = widtha * scaleFactor;  
+    adjustedHeight = heighta * scaleFactorY;
+    // adjustedWidtha = widtha;  
+    // adjustedHeighta = heighta;  
+    newX = 6000 - (rect.yCoordinate + widtha); 
+    } else {  
+    adjustedWidth = heighta * scaleFactor;  
+    adjustedHeight = widtha * scaleFactorY;  
+    // adjustedWidtha = widtha;  
+    // adjustedHeighta = heighta;  
+    newX = 6000 - (rect.yCoordinate + heighta);  
+  }  
+  return {  
+    ...rect, 
+    x: newX * scaleFactor,  
+    y: rect.xCoordinate * scaleFactorY,  
+    width: adjustedWidth,  
+    height: adjustedHeight,  
+    widtha: rect.width, 
+    heighta: rect.height,
+  }
+    }); 
+    // 鍚堝苟鏂版棫鐭╁舰锛屽苟淇濈暀 isActive 鐘舵��  
+    adjustedRects1.value = existingRects.map(oldRect => {  
+      const newRect = newRects.find(r => r.glassId === oldRect.glassId);  
+      if (newRect) {  
+        return { ...oldRect, ...newRect, isActive: oldRect.isActive };  
+      }  
+      return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝浣嗕繚鐣欏湪newGlassIds涓紝鍒欎繚鐣欏師鏍�  
+    }).concat(newRects.filter(r => !existingRects.some(o => o.glassId === r.glassId)));  
+  }  
+  // if (data.intoGlass && data.intoGlass.length > 0) {
+  //   console.log(data.intoGlass);
+    
+  //   const newGlassIds = new Set(data.intoGlass[0].map(rect => rect.glassId));
+  //   const existingRects = adjustedRects1.value.filter(rect => newGlassIds.has(rect.glassId));
+  //   const newRects = data.intoGlass[0].map(rect => {
+  //     const scaleFactor =  810.89/5087;
+  //     const scaleFactorY =  430/2800;
+  //     let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;
+  //     let newX = rect.yCoordinate; 
+  //     if (rect.width < rect.height) {
+  //       widtha = rect.height;
+  //       heighta = rect.width;
+  //     }else {
+  //       widtha = rect.width;
+  //       heighta = rect.height;
+  //     }
+  //     if (rect.angle === 0) {  
+  //   adjustedWidth = widtha * scaleFactor;
+  //   adjustedHeight = heighta * scaleFactorY;
+  //   // adjustedWidtha = widtha;  
+  //   // adjustedHeighta = heighta;  
+  //   newX = 5087 - (rect.yCoordinate + widtha); 
+  //   } else {  
+  //   adjustedWidth = heighta * scaleFactor;  
+  //   adjustedHeight = widtha * scaleFactorY;  
+  //   // adjustedWidtha = widtha;  
+  //   // adjustedHeighta = heighta;  
+  //   newX = 5087 - (rect.yCoordinate + heighta);  
+  // } 
+  //       return {  
+  //       ...rect, 
+  //       xcoordinate: newX * scaleFactor,
+  //       ycoordinate: rect.xCoordinate * scaleFactorY,
+  //       width: adjustedWidth,  
+  //       height: adjustedHeight,  
+  //       widtha: rect.width, 
+  //       heighta: rect.height,
+  //     }
+  //   });     
+  //   // 鍚堝苟鏂版棫鐭╁舰锛屽苟淇濈暀 isActive 鐘舵��  
+  //   adjustedRects1.value = existingRects.map(oldRect => {  
+  //     const newRect = newRects.find(r => r.glassId === oldRect.glassId);  
+  //     if (newRect) {  
+  //       return { ...oldRect, ...newRect, isActive: oldRect.isActive };  
+  //     }  
+  //     return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝浣嗕繚鐣欏湪newGlassIds涓紝鍒欎繚鐣欏師鏍�  
+  //   }).concat(newRects.filter(r => !existingRects.some(o => o.glassId === r.glassId)));  
+  // }  
+  else {
+    adjustedRects1.value = []
+  }
+  // 杩涚倝鍓�
+  if (data.waitingGlass && data.waitingGlass.length > 0) {  
+    const newGlassIds = new Set(data.waitingGlass[0].map(rect => rect.glassId));  
+    const existingRects = adjustedRectsa.value.filter(rect => newGlassIds.has(rect.glassId));  
+    const newRects = data.waitingGlass[0].map(rect => {  
+      const scaleFactor =  1621.78/6000; 
+      const scaleFactorY =  700/2800; 
+      let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; 
+  let newX = rect.yCoordinate; 
+      if (rect.width < rect.height) {
+        widtha = rect.height;
+        heighta = rect.width;
+      }else {
+        widtha = rect.width;
+        heighta = rect.height;
+      }
+  if (rect.angle === 0) {  
+    adjustedWidth = widtha * scaleFactor;  
+    adjustedHeight = heighta * scaleFactorY;
+    // adjustedWidtha = widtha;  
+    // adjustedHeighta = heighta;  
+    newX = 6000 - (rect.yCoordinate + widtha); 
+    } else {  
+    adjustedWidth = heighta * scaleFactor;  
+    adjustedHeight = widtha * scaleFactorY;  
+    // adjustedWidtha = widtha;  
+    // adjustedHeighta = heighta;  
+    newX = 6000 - (rect.yCoordinate + heighta);  
+  }  
+  return {  
+    ...rect, 
+    x: newX * scaleFactor,  
+    y: rect.xCoordinate * scaleFactorY,  
+    width: adjustedWidth,  
+    height: adjustedHeight,  
+    widtha: rect.width, 
+    heighta: rect.height,
+  }
+    }); 
+    // 鍚堝苟鏂版棫鐭╁舰锛屽苟淇濈暀 isActive 鐘舵��  
+    adjustedRectsa.value = existingRects.map(oldRect => {  
+      const newRect = newRects.find(r => r.glassId === oldRect.glassId);  
+      if (newRect) {  
+        return { ...oldRect, ...newRect, isActive: oldRect.isActive };  
+      }  
+      return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝浣嗕繚鐣欏湪newGlassIds涓紝鍒欎繚鐣欏師鏍�  
+    }).concat(newRects.filter(r => !existingRects.some(o => o.glassId === r.glassId)));  
+  }  
+  else if (data.waitingGlass == null) {
+    adjustedRectsa.value = []
+  }
+  // 宸插嚭鐐�
+  if (data.outGlass && data.outGlass.length > 0) {  
+    const newGlassIds = new Set(data.outGlass[0].map(rect => rect.glassId));  
+    const existingRects = adjustedRectsb.value.filter(rect => newGlassIds.has(rect.glassId));  
+    const newRects = data.outGlass[0].map(rect => {  
+      const scaleFactor =  1621.78/6000; 
+      const scaleFactorY =  700/2800; 
+      let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; 
+  let newX = rect.yCoordinate; 
+      if (rect.width < rect.height) {
+        widtha = rect.height;
+        heighta = rect.width;
+      }else {
+        widtha = rect.width;
+        heighta = rect.height;
+      }
+  if (rect.angle === 0) {  
+    adjustedWidth = widtha * scaleFactor;  
+    adjustedHeight = heighta * scaleFactorY;
+    // adjustedWidtha = widtha;  
+    // adjustedHeighta = heighta;  
+    newX = 6000 - (rect.yCoordinate + widtha); 
+    } else {  
+    adjustedWidth = heighta * scaleFactor;  
+    adjustedHeight = widtha * scaleFactorY;  
+    // adjustedWidtha = widtha;  
+    // adjustedHeighta = heighta;  
+    newX = 6000 - (rect.yCoordinate + heighta);  
+  }  
+  return {  
+    ...rect, 
+    x: newX * scaleFactor,  
+    y: rect.xCoordinate * scaleFactorY,  
+    width: adjustedWidth,  
+    height: adjustedHeight,  
+    widtha: rect.width, 
+    heighta: rect.height,
+  }
+    }); 
+    // 鍚堝苟鏂版棫鐭╁舰锛屽苟淇濈暀 isActive 鐘舵��  
+    adjustedRectsb.value = existingRects.map(oldRect => {  
+      const newRect = newRects.find(r => r.glassId === oldRect.glassId);  
+      if (newRect) {  
+        return { ...oldRect, ...newRect, isActive: oldRect.isActive };  
+      }  
+      return oldRect;
+    }).concat(newRects.filter(r => !existingRects.some(o => o.glassId === r.glassId)));  
+  }
+  // if (data.outGlass && data.outGlass.length > 0) {  
+  //   // 鎻愬彇鏂扮殑鐭╁舰ID  
+  //   const newGlassIds = new Set(data.outGlass[0].map(rect => rect.glassId));  
+  //   // 杩囨护鍑哄凡瀛樺湪鐨勭煩褰�  
+  //   const existingRects = adjustedRectsb.value.filter(rect => newGlassIds.has(rect.glassId));  
+  //   // 璁$畻鏂扮殑鐭╁舰  
+  //   const newRects = data.outGlass[0].map(rect => {  
+  //     const scaleFactor =  1390/6000; 
+  //     const scaleFactory =  750/2800; 
+  //     let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta,newY;
+  // let newX = rect.yCoordinate; 
+  //     if (rect.width < rect.height) {
+  //       widtha = rect.height;
+  //       heighta = rect.width;
+  //     }else {
+  //       widtha = rect.width;
+  //       heighta = rect.height;
+  //     }
+  // if (rect.angle === 0) {  
+  //   adjustedWidth = widtha * scaleFactor;  
+  //   adjustedHeight = heighta * scaleFactory;  
+  //   // adjustedWidtha = widtha;  
+  //   // adjustedHeighta = heighta;  
+  //   // newX = 5190 - (rect.yCoordinate + widtha); 
+  //   newY = 2800 - (rect.xCoordinate + heighta); 
+  // } else {  
+  //   adjustedWidth = heighta * scaleFactor;  
+  //   adjustedHeight = widtha * scaleFactory;  
+  //   // adjustedWidtha = heighta;  
+  //   // adjustedHeighta = widtha;  
+  //   // newX = 5190 - (rect.yCoordinate + heighta);  
+  //   newY = 2800 - (rect.xCoordinate + widtha); 
+  // }  
+  // return {  
+  //       ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
+  //       x: newX * scaleFactor,
+  //       y: newY * scaleFactory,
+  //       width: adjustedWidth,  
+  //       height: adjustedHeight,  
+  //       widtha: rect.width, 
+  //       heighta: rect.height,
+  // }
+  //   });   
+  
+  //   // 鍚堝苟鏂版棫鐭╁舰锛屽苟淇濈暀 isActive 鐘舵��  
+  //   adjustedRectsb.value = existingRects.map(oldRect => {  
+  //     const newRect = newRects.find(r => r.glassId === oldRect.glassId);  
+  //     if (newRect) {  
+  //       return { ...oldRect, ...newRect, isActive: oldRect.isActive };  
+  //     }  
+  //     return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝浣嗕繚鐣欏湪newGlassIds涓紝鍒欎繚鐣欏師鏍�  
+  //   }).concat(newRects.filter(r => !existingRects.some(o => o.glassId === r.glassId)));  
+  // }  
+  else if (data.outGlass == null) {
+    adjustedRectsb.value = []
+  }
+}; 
+onMounted(() => {
+  initializeWebSocket(socketUrl, handleMessage);
+});
+function updateRectColorsa() {
+  adjustedRectsa.value.forEach(rect => {  
+    if (rect.glassId === glassId) {  
+      rect.state = 8;
+    }
+  });  
+}  
+function updateoutColorsa() {
+  adjustedRectsa.value.forEach(rect => {  
+    if (rect.glassId === glassId) {  
+      rect.state = 9;
+    }
+  });  
+} 
+function updateoutColorsc() {
+  adjustedRects1.value.forEach(rect => {  
+    if (rect.glassId === glassId) {  
+      rect.state = 9;
+    }
+  });  
+}
+function updateoutColorsd() {
+  adjustedRects2.value.forEach(rect => {  
+    if (rect.glassId === glassId) {  
+      rect.state = 9;
+    }
+  });  
+} 
+function updateonColorsa() {
+  adjustedRectsa.value.forEach(rect => {  
+    if (rect.glassId === glassId) {  
+      rect.state = 1;
+    }
+  });  
+}  
+function updateRectColorsb() {
+  adjustedRectsb.value.forEach(rect => {  
+    if (rect.glassId === glassId) {  
+      rect.state = 8;
+    }
+  });  
+}  
+function updateoutColorsb() {
+  adjustedRectsb.value.forEach(rect => {  
+    if (rect.glassId === glassId) {  
+      rect.state = 9;
+    }
+  });  
+} 
+function updateonColorsb() {
+  adjustedRectsb.value.forEach(rect => {  
+    if (rect.glassId === glassId) {  
+      rect.state = 3;
+    }
+  });  
+} 
+function updateRectColors1() {  
+  adjustedRects1.value.forEach(rect => {  
+    if (rect.glassId === glassId) {  
+      rect.state = 8;
+    }
+  });
+}  
+function updateRectColors2() {  
+  adjustedRects2.value.forEach(rect => {  
+    if (rect.glassId === glassId) {  
+      rect.state = 8;
+    }
+  });  
+}
+function getRectColor1(state) {
+  switch (state) {  
+    case 2:  
+      return 'lightblue';
+    case 8:
+      return '#911005';
+    case 9:
+      return '#4682B4';
+    default:
+      return '#CDAF95'; 
+  }
+} 
+function getRectColor2(state) {
+  switch (state) {  
+    case 2:
+      return 'lightblue';
+    case 8:
+      return '#911005';
+    case 9:
+      return '#4682B4';
+    default:
+      return '#CDAF95'; 
+  }
+}
+function getRectColora(state) {
+  switch (state) {  
+    case 0:  
+      return '#7AC5CD';
+    case 1:
+      return '#95d475';
+    case -1:
+      return '#99BBFF';
+    case 8:
+      return '#911005';
+    case 9:
+      return '#4682B4';
+    default:
+      return '#CDAF95'; 
+  }
+}
+function getRectColorb(state) {  
+  switch (state) {  
+    case 3:  
+      return '#eebe77';  
+    case 4:  
+      return '#CD6090';
+    case 8:  
+      return '#911005'; 
+    case 9:
+      return '#4682B4'; 
+    default:
+      return '#CDAF95'; 
+  }  
+}
+function showDialog1(rect) {
+  const index = adjustedRects1.value.findIndex(r => r.glassId === rect.glassId);  
+  if (index !== -1) {  
+    adjustedRects1.value[index].isActive = true;  
+  }  
+  currentGlassId.value = rect.glassId;  
+  currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
+  blind1.value = true;  
+  currentRect.value = rect;
+  if (currentRect.value.state == 8) {
+    canSelectProject1.value = false;
+  } else if (currentRect.value.state !== 8) {
+    canSelectProject1.value = true;
+  }
+  if (currentRect.value.state == 9) {
+    cantakea.value = false;
+  } else if (currentRect.value.state !== 9) {
+    cantakea.value = true;
+  } 
+} 
+function showDialog2(rect) {
+  const index = adjustedRects2.value.findIndex(r => r.glassId === rect.glassId);  
+  if (index !== -1) {  
+    adjustedRects2.value[index].isActive = true;  
+  }  
+  currentGlassId.value = rect.glassId;  
+  currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
+  blind2.value = true;  
+  currentRect.value = rect;
+  if (currentRect.value.state == 8) {
+    canSelectProject2.value = false;
+  } else if (currentRect.value.state !== 8) {
+    canSelectProject2.value = true;
+  }
+  if (currentRect.value.state == 9) {
+    cantakea.value = false;
+  } else if (currentRect.value.state !== 9) {
+    cantakea.value = true;
+  }
+} 
+function showDialoga(rect) {
+  const index = adjustedRectsa.value.findIndex(r => r.glassId === rect.glassId);  
+  if (index !== -1) {  
+    adjustedRectsa.value[index].isActive = true;  
+  }  
+  currentGlassId.value = rect.glassId;  
+  currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
+  blinda.value = true; 
+  currentRect.value = rect;
+  if (currentRect.value.state == 8) {
+    canSelectProjecta.value = false;
+  } else if (currentRect.value.state !== 8) {
+    canSelectProjecta.value = true;
+  } 
+  if (currentRect.value.state == 9) {
+    cantakea.value = false;
+  } else if (currentRect.value.state !== 9) {
+    cantakea.value = true;
+  } 
+  if (currentRect.value.state == 1) {
+    canona.value = false;
+  } else if (currentRect.value.state == 0) {
+    canona.value = true;
+  } 
+} 
+function showDialogb(rect) {
+  const index = adjustedRectsb.value.findIndex(r => r.glassId === rect.glassId);  
+  if (index !== -1) {  
+    adjustedRectsb.value[index].isActive = true;  
+  }  
+  currentGlassId.value = rect.glassId;  
+  currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
+  blindb.value = true;  
+  currentRect.value = rect;
+  if (currentRect.value.state == 8) {
+    canSelectProjectb.value = false;
+  } else if (currentRect.value.state !== 8) {
+    canSelectProjectb.value = true;
+  }
+  if (currentRect.value.state == 9) {
+    cantakeb.value = false;
+  } else if (currentRect.value.state !== 9) {
+    cantakeb.value = true;
+  } 
+  if (currentRect.value.state == 3) {
+    canonb.value = false;
+  } else if (currentRect.value.state !== 3) {
+    canonb.value = true;
+  } 
+} 
+  const handleDialogClose1 = () => {  
+  adjustedRects1.value.forEach(rect => {  
+    rect.isActive = false;  
+  });  
+  blind1.value = false; 
+};  
+  const handleDialogClose2 = () => {  
+  adjustedRects2.value.forEach(rect => {  
+    rect.isActive = false;  
+  });  
+  blind2.value = false; 
+};  
+  const handleDialogClosea = () => {  
+  adjustedRectsa.value.forEach(rect => {  
+    rect.isActive = false;  
+  });  
+  blinda.value = false; 
+};  
+  const handleDialogCloseb = () => {  
+  adjustedRectsb.value.forEach(rect => {  
+    rect.isActive = false;  
+  });  
+  blindb.value = false; 
+};  
+// 鐮存崯
+const handleDamage1 = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+    glassId: currentGlassId.value,
+    // temperingFeedSequence: currenttemperingFeedSequence.value,
+    line: 4001,
+    state: 8,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code == 200) {
+      ElMessage.success('鎴愬姛锛�');
+      blind1.value = false;
+      updateRectColors1();
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    console.error(error);
+  }
+}
+const handleDamage2 = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+    glassId: currentGlassId.value,
+    line: 4001,
+    state: 8,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code == 200) {
+      ElMessage.success('鎴愬姛锛�');
+      blind2.value = false;
+      updateRectColors2();
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    console.error(error);
+  }
+}
+// 杩涚倝鍓嶇牬鎹�
+const handleDamagea = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+    glassId: currentGlassId.value,
+    line: 4001,
+    state: 8,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code == 200) {
+      ElMessage.success('鎴愬姛锛�');
+      blinda.value = false;
+      updateRectColorsa();
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    console.error(error);
+  }
+}
+// 杩涚倝鍓嶄汉宸ユ嬁璧�
+const takeouta = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+    glassId: currentGlassId.value,
+    line: 4001,
+    state: 9,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code == 200) {
+      ElMessage.success('鎴愬姛锛�');
+      blinda.value = false;
+      updateoutColorsa();
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    console.error(error);
+  }
+}
+// 杩涚倝鍓嶆斁鍥�
+const takeona = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+    glassId: currentGlassId.value,
+    line: 4001,
+    state: 1,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code == 200) {
+      ElMessage.success('鎴愬姛锛�');
+      blinda.value = false;
+      updateonColorsa();
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    console.error(error);
+  }
+}
+// 杩涚倝涓汉宸ユ嬁璧�
+const takeoutc = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+    glassId: currentGlassId.value,
+    line: 4001,
+    state: 9,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code == 200) {
+      ElMessage.success('鎴愬姛锛�');
+      blind1.value = false;
+      updateoutColorsc();
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    console.error(error);
+  }
+}
+// 杩涚倝涓汉宸ユ嬁璧�
+const takeoutd = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+    glassId: currentGlassId.value,
+    line: 4001,
+    state: 9,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code == 200) {
+      ElMessage.success('鎴愬姛锛�');
+      blind2.value = false;
+      updateoutColorsd();
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    console.error(error);
+  }
+}
+// 宸插嚭鐐夌牬鎹�
+const handleDamageb = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+    glassId: currentGlassId.value,
+    line: 4001,
+    state: 8,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code == 200) {
+      ElMessage.success('鎴愬姛锛�');
+      blindb.value = false;
+      updateRectColorsb();
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+// 宸插嚭鐐変汉宸ユ嬁璧�
+const takeoutb = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+    glassId: currentGlassId.value,
+    line: 4001,
+    state: 9,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code == 200) {
+      ElMessage.success('鎴愬姛锛�');
+      blindb.value = false;
+      updateoutColorsb();
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+// 宸插嚭鐐夋斁鍥�
+const takeonb = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+    glassId: currentGlassId.value,
+    line: 4001,
+    state: 3,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code == 200) {
+      ElMessage.success('鎴愬姛锛�');
+      blindb.value = false;
+      updateonColorsb();
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+}
+}
+onBeforeUnmount(() => {
+  closeWebSocket();
+});
+</script>
+<template>
+  <div style="height: 500px;">
+    <div style="margin-top: 10px;">
+      <el-button style="margin-left: 15px;" id="searchButton" type="primary"
+                 @click="dialogFormVisiblea = true;dialogFormVisible = false;dialogFormVisibleb = false;">
+        {{ $t('processCard.beforefurnace') }}
+      </el-button>
+      <el-button style="margin-left: 15px;" id="searchButton" type="primary"
+                 @click="dialogFormVisible = true;dialogFormVisiblea = false;dialogFormVisibleb = false;">
+        {{ $t('processCard.intofurnace') }}
+      </el-button>
+      <el-button id="searchButton" type="success"
+                 @click="dialogFormVisibleb = true;dialogFormVisible = false;dialogFormVisiblea = false;">
+        {{ $t('processCard.outfurnace') }}
+      </el-button>
+      <div v-if="dialogFormVisible">
+        <!-- 杩涚倝涓彸 -->
+        <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;">
+          <!-- <div style="width:900px;background-color: #f4f4f5;height: 420px;"> -->
+            <!-- <div v-if="adjustedRects1.length > 0"> -->
+              <div v-if="currentPage === 1 && adjustedRects1.length > 0">
+              <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplay }}-{{ adjustedRects[0].temperingLayoutId }}</div>   -->
+              <div style="text-align: center;"> {{ $t('processCard.temperinglayout') }}锛歿{
+                  adjustedRects1[0].engineerId
+                }}-{{ adjustedRects1[0].temperingLayoutId }}
+              </div>
+    <el-scrollbar height="750px" style="background-color: #e9e9eb;">
+    <div  style="position: relative;max-width: 1400px;">  
+      <div  
+      v-for="(rect, index) in adjustedRects1"
+      :key="index"  
+      @click="showDialog1(rect)"  
+      class="rect"
+      :style="{ position: 'absolute', 
+       top: `${rect.y}px`, 
+       left: `${rect.x}px`,
+        width: `${rect.width}px`, 
+        height: `${rect.height}px`,
+        backgroundColor: rect.isActive ? '#ADFF2F' : getRectColor1(rect.state) }">
+     <div  class="centered-text">
+    <div style="font-size: 15px;font-weight: bold;">{{ rect.glassId }}</div>  
+    <div style="font-size: 15px;font-weight: bold;">{{ rect.flowCardId }}</div>  
+    <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
+  </div>
+  </div>
+   </div>
+   </el-scrollbar>
+   </div>
+  <!-- </div> -->
+  <!-- 杩涚倝涓乏 -->
+<!-- <div style="width: 750px;float: left;background-color: #f4f4f5;height: 350px;"> -->
+    <!-- <div v-if="adjustedRects2.length > 0"> -->
+      <div v-else-if="currentPage === 2 && adjustedRects2.length > 0">
+    <div style="text-align: center;"> {{ $t('processCard.temperinglayout') }}锛歿{ adjustedRects2[0].engineerId }}-{{ adjustedRects2[0].temperingLayoutId }} </div>
+    <el-scrollbar height="750px" style="background-color: #e9e9eb;">
+    <div  style="position: relative;max-width: 1400px;">  
+      <div  
+      v-for="(rect, index) in adjustedRects2"
+      :key="index"
+      @click="showDialog2(rect)"  
+      class="rect"
+      :style="{ position: 'absolute', 
+       top: `${rect.y}px`, 
+       left: `${rect.x}px`, 
+       width: `${rect.width}px`, 
+       height: `${rect.height}px`,
+        backgroundColor: rect.isActive ? '#ADFF2F' : getRectColor2(rect.state) }">
+     <div  class="centered-text">
+    <div style="font-size: 15px;font-weight: bold;">{{ rect.glassId }}</div>  
+    <div style="font-size: 15px;font-weight: bold;">{{ rect.flowCardId }}</div>  
+    <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
+  </div>
+  </div>
+   </div>
+   </el-scrollbar>
+   </div>
+<!-- </div> -->
+   </el-card>
+   <div style="display: flex;margin-left: 40%;margin-bottom: 10px;">
+    <el-pagination
+        size="small"
+        background
+        layout="prev, pager, next"
+        :total="20"
+        @current-change="handlePageChange"
+      />
+  </div>
+    </div>
+<div v-if="dialogFormVisiblea">
+  <!-- 杩涚倝鍓� -->
+  <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;">
+    <div v-if="adjustedRectsa.length > 0">
+    <div style="text-align: center;"> {{ $t('processCard.temperinglayout') }}锛歿{ adjustedRectsa[0].engineerId }}-{{ adjustedRectsa[0].temperingLayoutId }} </div>
+    <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplaya }}-{{ adjustedRects[0].temperingLayoutId }}</div>   -->
+      <el-scrollbar height="750px" style="background-color: #e9e9eb;">
+    <div  style="position: relative;max-width: 1400px;">  
+      <div
+      v-for="(rect, index) in adjustedRectsa"  
+      :key="index"  
+      @click="showDialoga(rect)"  
+      class="rect"  
+      :style="{ position: 'absolute',  top: `${rect.y}px`, left: `${rect.x}px`,
+       width: `${rect.width}px`, height: `${rect.height}px`,
+      backgroundColor: rect.isActive ? '#ADFF2F' : getRectColora(rect.state) }">
+    <div  class="centered-text">
+    <div style="font-size: 15px;font-weight: bold;">{{ rect.glassId }}</div>  
+    <div style="font-size: 15px;font-weight: bold;">{{ rect.flowCardId }}</div>  
+    <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
+  </div>
+  </div> 
+   </div>
+   </el-scrollbar>
+   </div>
+   </el-card>
+</div>
+<div v-if="dialogFormVisibleb">
+  <!-- 宸插嚭鐐� -->
+  <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;">
+      <div v-if="adjustedRectsb.length > 0">
+    <div style="text-align: center;"> {{ $t('processCard.temperinglayout') }}锛歿{ adjustedRectsb[0].engineerId }}-{{ adjustedRectsb[0].temperingLayoutId }} </div>
+    <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplayb }}-{{ adjustedRects[0].temperingLayoutId }}</div>   -->
+      <el-scrollbar height="750px" style="background-color: #e9e9eb;">
+    <div  style="position: relative;max-width: 1400px;">
+      <div  
+      v-for="(rect, index) in adjustedRectsb"  
+      :key="index"  
+      @click="showDialogb(rect)"  
+      class="rect"  
+      :style="{ position: 'absolute',  top: `${rect.y}px`, left: `${rect.x}px`,
+       width: `${rect.width}px`, height: `${rect.height}px`,
+      backgroundColor: rect.isActive ? '#ADFF2F' : getRectColorb(rect.state) }">
+       <!-- backgroundColor: rect.state === 4 ? '#911005' : '#f8e3c5' }"> -->
+     <div  class="centered-text">
+    <div style="font-size: 15px;font-weight: bold;">{{ rect.glassId }}</div>  
+    <div style="font-size: 15px;font-weight: bold;">{{ rect.flowCardId }}</div>  
+    <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
+  </div>
+  </div> 
+   </div>
+   </el-scrollbar>
+   </div>
+   </el-card>
+</div>
+<!-- 杩涚倝涓� -->
+<el-dialog v-model="blind1" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose1">
+        <el-button :disabled="!canSelectProject1" type="warning" plain @click="handleDamage1"  style="width: 150px;margin-left: 10px;">
+          {{ $t('order.dilapidation') }}
+        </el-button>
+        <el-button :disabled="!cantakea" type="danger" plain @click="takeoutc"  style="width: 150px;margin-left: 10px;margin-top: 10px;">
+          <el-icon class="el-icon--right"><Upload /></el-icon>
+          {{ $t('order.takeaway') }}
+        </el-button>
+  </el-dialog>  
+<el-dialog v-model="blind2" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose2">
+        <el-button :disabled="!canSelectProject2" type="warning" plain @click="handleDamage2"  style="width: 150px;margin-left: 10px;">
+          {{ $t('order.dilapidation') }}
+        </el-button>
+        <el-button :disabled="!cantakea" type="danger" plain @click="takeoutd"  style="width: 150px;margin-left: 10px;margin-top: 10px;">
+          <el-icon class="el-icon--right"><Upload /></el-icon>
+          {{ $t('order.takeaway') }}
+        </el-button>
+  </el-dialog>  
+  <!-- 杩涚倝鍓� -->
+<el-dialog v-model="blinda" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClosea">
+  <el-button type="warning" plain @click="handleDamagea" :disabled="!canSelectProjecta" style="width: 150px;margin-left: 10px;">
+          {{ $t('order.dilapidation') }}
+        </el-button>
+        <el-button :disabled="!cantakea" type="danger" plain @click="takeouta"  style="width: 150px;margin-left: 10px;margin-top: 10px;">
+          <el-icon class="el-icon--right"><Upload /></el-icon>
+          {{ $t('order.takeaway') }}
+        </el-button>
+        <el-button type="success" plain @click="takeona" :disabled="!canona" style="width: 150px;margin-left: 10px;margin-top: 10px;">
+          {{ $t('order.takeon') }}
+        </el-button>
+  </el-dialog>  
+  <!-- 宸插嚭鐐� -->
+<el-dialog v-model="blindb" top="30vh" width="15%" style="text-align: center;" @close="handleDialogCloseb">
+        <el-button :disabled="!canSelectProjectb" type="warning" plain  @click="handleDamageb"  style="width: 150px;margin-left: 10px;">
+          {{ $t('order.dilapidation') }}
+        </el-button>
+        <el-button :disabled="!cantakeb" type="danger" plain @click="takeoutb"  style="width: 150px;margin-left: 10px;margin-top: 10px;">
+          <el-icon class="el-icon--right"><Upload /></el-icon>
+          {{ $t('order.takeaway') }}
+        </el-button>
+        <!-- <el-button type="success" plain  @click="takeonb" :disabled="!canonb" style="width: 150px;margin-left: 10px;margin-top: 10px;">
+          {{ $t('order.takeon') }}
+        </el-button> -->
+  </el-dialog> 
+  <el-dialog  
+      v-model="dialogVisible"
+      width="100%" 
+      top="0vh"
+      :show-close="false"
+      >  
+      <div class="custom-title" style="text-align: center; margin-bottom: 20px;">  
+      {{ $t('processCard.glasstakeout') }}  
+    </div>  
+      <el-table  
+        :data="tableData"  
+        style="width: 100%;height: 760px"  
+      >
+        <el-table-column prop="flowCardId" :label="$t('processCard.flowcard')" width="140" align="center"/>
+        <el-table-column prop="layer" :label="$t('processCard.layer')" align="center" width="52"/>
+        <el-table-column prop="engineerId" :label="$t('processCard.project')" align="center" width="110"/>
+        <el-table-column prop="temperingLayoutId" :label="$t('processCard.temperinglayout')" align="center" width="52"/>
+        <el-table-column prop="temperingFeedSequence" :label="$t('processCard.temperingfeed')" align="center" width="52"/>
+        <el-table-column prop="width" :label="$t('processCard.width')" align="center" width="80"/>
+        <el-table-column prop="height" :label="$t('processCard.height')" align="center" width="80"/>
+        <el-table-column prop="thickness" :label="$t('processCard.thickness')" align="center" width="52"/>
+      </el-table>
+  </el-dialog>
+    </div>
+  </div>
+</template>
+<style scoped>
+#boxa{
+  border: 1px solid rgb(119, 116, 116);
+  background-color:  #529b2e;
+  text-align: center;
+  display: inline-block;
+    /* align-items:center; */
+    /* justify-content:center; */
+  margin-left: 20px;
+}
+#boxb{
+  border: 1px solid rgb(119, 116, 116);
+  background-color:  #a0cfff;
+  /* display:flex; */
+  text-align: center;
+  display: inline-block;
+  align-items:center;
+  justify-content:center;
+  margin-left: 20px;
+}
+#box{
+  border: 1px solid black;
+  background-color:  #337ecc;
+  display:flex;
+  align-items:center; 
+  justify-content:center;
+}
+#home-card {
+  width: 100%;
+  overflow: hidden;
+  padding: 10px 0px;
+  display: flex;
+  flex-wrap: wrap;
+  #home-item {
+    border-style: solid;
+    border-width: 1px;
+    border-color: #E4E4E4;
+    width: calc(34% - 20px);
+    padding: 20px 0px 20px 20px;
+    margin-right: 10px;
+    margin-bottom: 10px;
+    display: flex;
+    justify-content: center;
+    /* align-items: center; */
+    background: #fff;
+    #home-img {
+      display: inline-block;
+      width: 160px;
+      height: 60px;
+      margin: 0;
+      padding: 0;
+    }
+      #home-right {
+        display: flex;
+        flex-direction: column;
+        justify-content: center;
+        align-items: flex-start;
+        margin-left: 10px;
+        #home-num {
+          font-size: 40px;
+          margin: 5px 0;
+        }
+      }
+    }
+  }
+  .rect {  
+  border: 1px solid black; /* 璁剧疆鐭╁舰鐨勮竟妗� */  
+  /* background-color: lightblue; 璁剧疆鐭╁舰鐨勮儗鏅壊   */
+} 
+#rect {  
+  position: relative; /* 纭繚绠ご鍙互鐩稿浜庣煩褰㈠畾浣� */  
+}  
+.centered-text {
+  /* 璁剧疆鏂囧瓧灞呬腑鏍峰紡 */  
+  /* display: flex; */
+  justify-content: center;  
+  align-items: center; 
+  height: 100%; /* 纭繚div鍗犳嵁鏁翠釜鐭╁舰鐨勯珮搴� */  
+  /* font-size: small; */
+} 
+.custom-title {  
+  font-size: 20px;
+  font-weight: bold;
+} 
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
new file mode 100644
index 0000000..befea3a
--- /dev/null
+++ b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
@@ -0,0 +1,306 @@
+<template>
+  <div style="height: 500px;">
+    <div style="display: flex;">
+      <el-input v-model="engineerId" style="margin-left: 15px;margin-top: 10px;width: 240px" :placeholder="$t('order.projectnumber')"/>
+          <el-button type="primary" style="margin-left: 10px;margin-top: 10px;" @click="sethistorical()">{{$t('reportmanage.inquire')}}</el-button>
+       <el-pagination
+          v-model:current-page="currentPage"
+          :page-size="pageSize"
+          :size="size"
+          :disabled="disabled"
+          layout="prev, pager, next, jumper"
+          :total="totalPages"
+          @current-change="handleCurrentChange"
+          style="margin-top: 10px;"
+      />
+      </div>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;">
+      <el-scrollbar height="750px" width="1400px" style="background-color: #e9e9eb;">
+  <div style="position: relative;">  
+    <div
+      v-for="(rect, index) in adjustedRects"  
+      :key="rect.glassId"  
+      class="rect"  
+      @click="showDialog(rect.glassId)"  
+      :style="{ position: 'absolute', 
+      top: `${rect.y}px`, left: `${rect.x}px`, width: `${rect.width}px`, height: `${rect.height}px`,
+      backgroundColor: rect.isActive ? '#ADFF2F' : getRectColor(rect.state)
+       }"  
+    >
+     <div  class="centered-text">
+    <div style="font-size: 20px;font-weight: bold;">{{ rect.glassId }}</div>
+    <div style="font-size: 20px;font-weight: bold;">{{ rect.flowCardId }}</div>
+    <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
+  </div>
+  </div> 
+   </div>
+      </el-scrollbar>
+      <el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose">
+        <el-button :disabled="currentGlassRect?.state === 8 || currentGlassRect?.state === 9" type="warning"
+                   plain @click="handleDamage(currentGlassId)" style="width: 140px;margin-left: 10px;">
+          {{ $t('order.dilapidation') }}
+        </el-button>
+        <el-button :disabled="currentGlassRect?.state === 9 || currentGlassRect?.state === 8" type="danger"
+                   plain @click="handleManualTake(currentGlassId)" style="width: 140px;margin-top: 10px;">
+          <el-icon class="el-icon--right">
+            <Upload/>
+          </el-icon>
+          {{ $t('order.takeaway') }}
+        </el-button>
+      </el-dialog>
+    </el-card>
+  </div>
+</template>
+<script setup lang="ts">
+import {ElMessage} from 'element-plus'
+import {computed, onMounted, onUnmounted, ref} from 'vue';
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const blind = ref(false)
+const engineerId = ref();
+const currentGlassId = ref(null); 
+const temperingLayoutId = ref(null); 
+const adjustedRects = ref([]);
+const raw = ref([]);
+let webSocket: WebSocket | null = null;  
+const totalPages = ref(0);
+const pageSize = ref(1);
+const currentPage = ref('');
+const disabled = false;
+const size = 'small';
+const rawData = ref([]);
+// 鏄剧ず瀵硅瘽妗嗗苟璁剧疆褰撳墠 glassId  
+const currentGlassRect = computed(() => {
+  return adjustedRects.value.find(rect => rect.glassId === currentGlassId.value);
+}); 
+  function showDialog(glassId: number) {
+  currentGlassId.value = glassId;  
+  blind.value = true;  
+  adjustedRects.value = adjustedRects.value.map(rect =>  
+  rect.glassId === glassId ? { ...rect, isActive: true } : rect  
+  ); 
+}  
+const handleDialogClose = () => {  
+  adjustedRects.value = adjustedRects.value.map(rect => ({  
+    ...rect,  
+    isActive: false  
+  }));  
+}
+// 鐮存崯
+const handleDamage = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+      glassId: currentGlassId.value,
+      line: 4001,
+      state: 8,
+      workingProcedure: '閽㈠寲',
+      temperingLayoutId: currentPage.value,
+      engineerId: engineerId.value,
+    })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      blind.value = false;
+      updateRectstate(currentGlassId.value, 8); 
+    } else {
+      ElMessage.error(response.msg);
+    }
+}
+catch (error) {
+    // 澶勭悊閿欒
+    console.error(error);
+  }
+}
+ // 浜哄伐鎷胯蛋
+const handleManualTake = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+      glassId: currentGlassId.value,
+      line: 4001,
+      state: 9,
+      workingProcedure: '閽㈠寲',
+      temperingLayoutId: currentPage.value,
+      engineerId: engineerId.value,
+    })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      blind.value = false;
+      updateRectstate(currentGlassId.value, 9); 
+  } else {
+      ElMessage.error(response.msg);
+    }
+}
+catch (error) {
+    console.error(error);
+  }
+}
+const sethistorical = async () => {
+  search()
+  fetchTableData()
+}
+const fetchTableData = async () => {
+  try {
+    const response = await request.post("/temperingGlass/temperingGlassInfo/selectTempering", {
+      engineerId: engineerId.value,
+    })
+    if (response.code === 200) {
+    totalPages.value = response.data.id;
+}
+  } catch (error) {
+  }
+};
+const search = async () => {
+    const response = await request.post('/temperingGlass/temperingGlassInfo/selectTemperingGlass', {
+      engineerId: engineerId.value,
+      temperingLayoutId: 1
+    })
+    if (response.code === 200) {
+      const scaleFactor =  1621.78/6000; 
+      const scaleFactory =  750/2800; 
+    const adjustedRectsData = response.data.map(rect => {  
+      const scaleFactor =  1621.78/6000; 
+      const scaleFactorY =  750/2800; 
+      let adjustedWidth, adjustedHeight,widtha,heighta;; 
+  let newX = rect.ycoordinate; 
+      if (rect.width < rect.height) {
+        widtha = rect.height;
+        heighta = rect.width;
+      }else {
+        widtha = rect.width;
+        heighta = rect.height;
+      }
+  if (rect.angle === 0) {  
+    adjustedWidth = widtha * scaleFactor;  
+    adjustedHeight = heighta * scaleFactorY;
+    newX = 6000 - (rect.ycoordinate + widtha); 
+    } else {  
+    adjustedWidth = heighta * scaleFactor;  
+    adjustedHeight = widtha * scaleFactorY;  
+    newX = 6000 - (rect.ycoordinate + heighta);  
+  }  
+  return {  
+    ...rect, 
+    x: newX * scaleFactor,  
+    y: rect.xcoordinate* scaleFactorY,  
+    width: adjustedWidth,  
+    height: adjustedHeight,  
+    widtha: rect.width, 
+    heighta: rect.height,
+  }
+    }); 
+    adjustedRects.value = adjustedRectsData;
+       currentPage.value = 1;
+    }  
+};
+const handleCurrentChange = async(val: number) => {  
+  currentPage.value = val;
+    const response = await request.post('/temperingGlass/temperingGlassInfo/selectTemperingGlass', {
+      engineerId: engineerId.value,
+      temperingLayoutId: currentPage.value
+    })
+    if (response.code === 200) {
+      const scaleFactor =  1621.78/6000; 
+      const scaleFactory =  750/2800; 
+    const adjustedRectsData = response.data.map(rect => {  
+      const scaleFactor =  1621.78/6000; 
+      const scaleFactorY =  750/2800; 
+      let adjustedWidth, adjustedHeight,widtha,heighta;; 
+  let newX = rect.ycoordinate; 
+      if (rect.width < rect.height) {
+        widtha = rect.height;
+        heighta = rect.width;
+      }else {
+        widtha = rect.width;
+        heighta = rect.height;
+      }
+  if (rect.angle === 0) {  
+    adjustedWidth = widtha * scaleFactor;  
+    adjustedHeight = heighta * scaleFactorY;
+    newX = 6000 - (rect.ycoordinate + widtha); 
+    } else {  
+    adjustedWidth = heighta * scaleFactor;  
+    adjustedHeight = widtha * scaleFactorY;  
+    newX = 6000 - (rect.ycoordinate + heighta);  
+  }  
+  return {  
+    ...rect, 
+    x: newX * scaleFactor,  
+    y: rect.xcoordinate* scaleFactorY,  
+    width: adjustedWidth,  
+    height: adjustedHeight,  
+    widtha: rect.width, 
+    heighta: rect.height,
+  }
+    }); 
+    adjustedRects.value = adjustedRectsData;
+    } 
+};
+function getRectColor(state: number): string {
+  switch (state) {
+    // case -1:
+    //   return '#CDAF95';
+    // case 0:
+    //   return '#7AC5CD';
+    // case 1:
+    //   return '#95d475';
+    // case 2:
+    //   return 'lightblue';
+    // case 3:
+    //   return '#eebe77';
+    case 4:
+      return '#CD6090';
+    case 8:
+      return '#911005';
+    case 9:
+      return '#4682B4';
+    default:
+      return '#CDAF95'; 
+  }
+}
+// 鏇存柊鐭╁舰鐘舵��  
+function updateRectstate(glassId: string, state: number) {  
+  adjustedRects.value.forEach(rect => {  
+    if (rect.glassId === glassId) {  
+      rect.state = state; // 鏇存柊鐭╁舰鐨勭姸鎬�  
+    }  
+  });  
+}
+</script>  
+<style scoped>  
+.rect {  
+  border: 1px solid black; /* 璁剧疆鐭╁舰鐨勮竟妗� */  
+} 
+.centered-text {
+  justify-content: center;  
+  align-items: center; 
+  height: 100%;
+  /* font-size: large; */
+}
+#rect {  
+  position: relative; /* 纭繚绠ご鍙互鐩稿浜庣煩褰㈠畾浣� */  
+}  
+
+#arrow {  
+  position: absolute;  
+  top: 70%; /* 绠ご浣嶄簬鐭╁舰涓棿 */  
+  left: 200px; /* 绠ご鍦ㄧ煩褰㈠乏渚т竴浜涜窛绂� */  
+  transform: translateY(-50%); /* 鍨傜洿灞呬腑 */  
+  width: 0;  
+  height: 0;  
+  border-top: 10px solid transparent; /* 涓婅竟妗� */  
+  border-bottom: 10px solid transparent; /* 涓嬭竟妗� */  
+  border-right: 20px solid #911005; /* 鍙宠竟妗嗭紝褰㈡垚绠ご */  
+}  
+  
+#line {  
+  position: absolute;  
+  top: 70%; /* 鐩寸嚎浣嶄簬鐭╁舰涓棿 */  
+  left: 210px; /* 鐩寸嚎鍦ㄧ澶村彸渚т竴浜涜窛绂� */  
+  transform: translateY(-50%); /* 鍨傜洿灞呬腑 */  
+  height: 2px; /* 鐩寸嚎鐨勯珮搴� */  
+  width: 240px; /* 鐩寸嚎鐨勯暱搴︼紝鏍规嵁闇�瑕佽皟鏁� */  
+  background-color: #911005; /* 鐩寸嚎鐨勯鑹� */  
+}  
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/RegisterView.vue b/UI-Project/src/views/RegisterView.vue
new file mode 100644
index 0000000..31a83f7
--- /dev/null
+++ b/UI-Project/src/views/RegisterView.vue
@@ -0,0 +1,219 @@
+<script setup lang="ts">
+  import {useRouter,useRoute} from 'vue-router'
+  import { reactive, ref } from 'vue'
+  import type { FormProps,FormInstance, FormRules } from 'element-plus'
+  import {ElMessage,ElMessageBox} from "element-plus";
+  import request from "@/utils/request";
+  import { Lock,Avatar } from '@element-plus/icons-vue'
+  // import {Avatar, UserFilled} from "@element-plus/icons-vue";
+  import { useI18n } from 'vue-i18n'
+  const { t } = useI18n()
+  let language = ref(localStorage.getItem('lang') || 'zh')
+  const router = useRouter()
+  const route = useRoute()
+  let loginLoadings= ref(false)
+  const labelPosition = ref<FormProps['labelPosition']>('right')
+  //娉ㄥ唽鐢ㄦ埛鍙傛暟
+  const register = reactive({
+    userName: '',
+    // loginName: '',
+    passWord: '',
+    confirmPassword:''
+  })
+  /*鏂规硶*/
+  const checkName = (rule: any, value: any, callback: any) => {
+    if (value.trim() === '') {
+      callback(new Error(t('login.namea')))
+    }else if(value.length>16){
+      callback(new Error(t('login.len')))
+    }else{
+      callback()
+    }
+  }
+  const checkPassword = (rule: any, value: any, callback: any) => {
+    if (value.trim() === '') {
+      callback(new Error(t('login.passnull')))
+    }else if(value.length>16 || value.length<6){
+      callback(new Error(t('login.leng')))
+    }else{
+      callback()
+    }
+  }
+  const checkConfirmPassword = (rule: any, value: any, callback: any) => {
+    if (value.trim() === '') {
+      callback(new Error(t('login.spwn')))
+    }else if(value !== register.passWord){
+      callback(new Error(t('login.depass')))
+    }else if(value.length>16 || value.length<6){
+      callback(new Error(t('login.leng')))
+    }else{
+      callback()
+    }
+  }
+  const ruleFormRef  = ref<FormInstance>()
+  const rules = reactive<FormRules<typeof register>>({
+    userName: [{ validator: checkName, trigger: 'blur' }],
+    passWord:[{ validator: checkPassword, trigger: 'blur' }],
+    confirmPassword:[{ validator: checkConfirmPassword, trigger: 'blur' }],
+    // loginName: [{ validator: validateString, trigger: 'blur' }]
+  })
+  const submitForm = (formEl: FormInstance | undefined) => {
+    if (!formEl) return
+    formEl.validate((valid) => {
+      if (valid) {
+        loginLoadings.value=true
+        request.post('/user/register',
+            register).then((res) => {
+          if(res['code']==200){
+            ElMessageBox.alert(
+                `<strong>鐢ㄦ埛:<i style="color: #1890FF;">'${res.data.userName}</i>'
+                 <br>璐﹀彿ID:<i style="color: #1890FF;">${res.data.loginName}</i> </strong>`,
+                '娉ㄥ唽鎻愮ず锛�',
+                {
+                  dangerouslyUseHTMLString: true,
+                  confirmButtonText: '鐧婚檰',
+                  center: true,
+                }
+            ).then(()=>{
+              router.push({
+                path:'/login',
+                query: {
+                  id: res.data.loginName
+                }
+              })
+            })
+            ElMessage.success(t('register.registerSuccessful'))
+            loginLoadings.value=false
+          } else {
+            ElMessage.error(res['msg'])
+            return false
+          }
+        }).catch(error => {
+          ElMessage.error(t('main.connectErr'))
+          loginLoadings.value=false
+          return false
+        })
+      }
+    })
+  }
+  const toLogin = () => {
+              router.push({
+                path:'/login',
+              })
+  }
+</script>
+<template>
+  <div class="mainDiv" >
+    <div id="main-login">
+     <div>
+      <div style="position: absolute; left: 8vw; top: 6vw; ">
+        <img src="../../src/assets/3.png">
+      </div> 
+       <div style="position: absolute; left: 15vw; top: 22vw; font-size: 55px;color: rgba(29, 33, 41, 1);">
+        {{ $t('northglassMESsystem') }}
+      </div>
+    </div>
+    <div id="div-login">
+        <el-form
+            @submit.native.prevent
+            ref="ruleFormRef"
+            :model="register"
+            status-icon
+            :rules="rules"
+            label-width="75px"
+        >
+          <div id="title">{{ $t('register.newuserregister') }}</div>
+        <div id="center">
+            <!-- <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">濮撳悕</div> -->
+          <el-form-item prop="userName" :label="$t('register.name')">
+            <el-input
+            style="width: 200px;"
+                v-model="register.userName"
+                type="text"
+                autocomplete="off"
+                :prefix-icon="Avatar"
+                :placeholder="$t('register.inputname')"
+            />
+          </el-form-item>
+            <!-- <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">瀵嗙爜</div> -->
+          <el-form-item prop="passWord" :label="$t('register.password')">
+            <el-input
+            style="width: 200px;"
+                v-model="register.passWord"
+                type="password"
+                autocomplete="off"
+                :prefix-icon="Lock"
+                :placeholder="$t('register.pwErr')"
+                show-password
+            />
+          </el-form-item>
+            <!-- <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">纭瀵嗙爜</div> -->
+          <el-form-item prop="confirmPassword" :label="$t('register.passwordation')">
+            <el-input
+            style="width: 200px;"
+                v-model="register.confirmPassword" 
+                type="password"
+                :prefix-icon="Lock"
+                autocomplete="off"
+                show-password
+                :placeholder="$t('register.pwErration')"
+            />
+          </el-form-item>
+          <el-form-item id="submitForm">
+            <el-button
+            :loading="loginLoadings"
+                type="primary"
+                @click="submitForm(ruleFormRef)"
+                plain
+            >{{ $t('register.registration') }}
+            </el-button>
+            <el-button
+                type="primary"
+                @click="toLogin"
+                plain
+            >{{ $t('register.false') }}
+            </el-button>
+          </el-form-item>
+        </div>
+        </el-form>
+      </div>
+</div>
+</div>
+</template>
+<style scoped>
+#div-login{
+  margin-top: 5%;
+  /* margin-top: 20%; */
+  /* margin-left: 650px; */
+  background-color: #fff;
+  border-radius: 4px;
+  float: right;
+  width: 40%;
+  height: 60%;
+  min-width: 318px;
+  box-shadow: 0 8px 16px 0 rgba(0,0,0,0), 0 6px 5px 0 rgba(0,0,0,0.19);
+}
+#center{
+  margin-top: 45px;
+  margin-left: 100px;
+}
+.mainDiv{
+  overflow: hidden;
+  min-width: 718px;
+  background-image: url("../../src/assets/background.jpg");
+}
+#main-login{
+  margin: 150px auto 0 auto;
+  height: 70vh;
+  width: 80vw;
+}
+#submitForm{
+  margin-top: 30px;
+  margin-left: -10px;
+}
+#title{
+  font-size: 25px;
+  text-align: center;
+  margin-top: 10px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/ReportWork/reportWork.vue b/UI-Project/src/views/ReportWork/reportWork.vue
new file mode 100644
index 0000000..e3923e6
--- /dev/null
+++ b/UI-Project/src/views/ReportWork/reportWork.vue
@@ -0,0 +1,353 @@
+<template>
+  <div style="height: 600px;">
+    <div style="display: flex; flex-direction: row; align-items: center; margin-top: 20px;">
+      <span style="margin-left: 10px;" class="demonstration">{{ $t('reportmanage.productiontime') }}</span>
+        <el-date-picker v-model="timeRange" type="datetimerange" range-separator="鑷�" :start-placeholder="$t('reportmanage.starttime')" 
+             style="margin-left: 15px;" value-format = "YYYY-MM-DD hh:mm:ss"
+              :end-placeholder="$t('reportmanage.endtime')">
+            </el-date-picker>
+      <el-select v-model="report.type" :placeholder="$t('reportmanage.ctype')" style="margin-left: 10px;">
+        <el-option :label="$t('reportmanage.broke')" value="8"></el-option>
+        <el-option :label="$t('reportmanage.takeout')" value="9"></el-option>
+      </el-select>
+      <el-select v-model="report.status" :placeholder="$t('reportmanage.cstate')" style="margin-left: 10px;">
+        <!-- <el-option :label="$t('reportmanage.all')" value="0"></el-option> -->
+        <el-option :label="$t('reportmanage.dreportwork')" value="1"></el-option>
+        <el-option :label="$t('reportmanage.pendingwork')" value="7"></el-option>
+        <el-option :label="$t('reportmanage.reportwork')" value="3"></el-option>
+        <el-option :label="$t('reportmanage.reportworked')" value="8"></el-option>
+      </el-select>
+      <el-select v-model="report.workingProcedure" :placeholder="$t('reportmanage.cprocess')"
+        style="margin-left: 10px;">
+        <el-option :label="$t('reportmanage.all')" value="0"></el-option>
+        <el-option :label="$t('reportmanage.incise')" value="鍒囧壊"></el-option>
+        <el-option :label="$t('reportmanage.edging')" value="纾ㄨ竟"></el-option>
+        <el-option :label="$t('reportmanage.steel')" value="閽㈠寲"></el-option>
+      </el-select>
+      <el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('reportmanage.inquire')
+        }}</el-button>
+      <el-button type="success" style="margin-left: 10px;" :disabled="(!selectedStatus)" @click="handleConfirm">{{
+        $t('reportmanage.signingwork')
+        }}</el-button>
+    </div>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" >
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+        <el-table height="740" ref="table" :data="reportData"
+          :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+          <el-table-column prop="teamsGroupsName" align="center" :label="$t('reportmanage.reporteam')"
+            min-width="135" />
+          <el-table-column prop="deviceName" align="center" :label="$t('reportmanage.reportingequipment')"
+            min-width="156" />
+          <el-table-column prop="line" align="center" :label="$t('reportmanage.line')" min-width="120" />
+          <el-table-column prop="workingProcedure" align="center" :label="$t('reportmanage.process')" min-width="120" />
+          <el-table-column prop="glassId" align="center" :label="$t('reportmanage.glassID')" min-width="130" />
+          <el-table-column prop="engineerId" align="center" :label="$t('reportmanage.projectnumber')" min-width="120" />
+          <el-table-column prop="temperingLayoutId" align="center" :label="$t('reportmanage.layoutID')"
+            min-width="120" />
+          <el-table-column prop="formattedCreateTime" align="center" :label="$t('reportmanage.productiontime')"
+            min-width="230" />
+          <el-table-column
+            align="center"
+            :label="$t('reportmanage.type')"
+            min-width="120"
+            prop="type"
+          >
+          <template #default="scope">  
+        <el-tag :type="gettypeType(scope.row.type)">  
+          {{ gettypeText(scope.row.type) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column
+            align="center"
+            :label="$t('reportmanage.state')"
+            min-width="120"
+            prop="status"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusType(scope.row.status)">  
+          {{ getStatusText(scope.row.status) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column prop="processId" align="center" :label="$t('reportmanage.processcards')" min-width="140" />
+          <el-table-column prop="orderNumber" align="center" :label="$t('reportmanage.number')" min-width="120" />
+          <el-table-column prop="technologyNumber" align="center" :label="$t('reportmanage.layer')" min-width="120" />
+          <el-table-column prop="breakageType" align="center" :label="$t('reportmanage.typebreakage')" min-width="180">
+            <template #default="{ row }">
+              <el-select v-model="row.breakageType" filterable :placeholder="$t('reportmanage.pcausebreakage')" :disabled="selectedType"
+                clearable @input="handleInputChangea($event, row.id)">
+                <el-option v-for="item in selectOptionsa" :key="item.basicName" :label="item.basicName"
+                  :value="item.basicName" />
+              </el-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="breakageReason" align="center" :label="$t('reportmanage.causebreakage')"
+            min-width="180">
+            <template #default="{ row }">
+              <el-select v-model="row.breakageReason" filterable :placeholder="$t('reportmanage.ptypebreakage')" :disabled="selectedType"
+                clearable @input="handleInputChangea($event, row.id)">
+                <el-option v-for="item in selectOptionsb" :key="item.basicName" :label="item.basicName"
+                  :value="item.basicName" />
+              </el-select>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" :label="$t('reportmanage.responsibleprocess')" min-width="120">
+            <template #default="{ row }">
+              <el-select v-model="row.responsibleProcess" filterable :placeholder="$t('reportmanage.ptypebreakage')" :disabled="selectedType"
+                clearable @input="handleInputChangea($event, row.id)">
+               <el-option :label="$t('reportmanage.incise')" value="鍒囧壊"></el-option>
+               <el-option :label="$t('reportmanage.edging')" value="纾ㄨ竟"></el-option>
+               <el-option :label="$t('reportmanage.steel')" value="閽㈠寲"></el-option>
+              </el-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="responsiblePersonnel" align="center" :label="$t('reportmanage.responsiblepersonnel')"
+            min-width="180">
+            <template #default="{ row }">
+              <el-input :placeholder="$t('reportmanage.presponsiblepersonnel')" v-model="row.responsiblePersonnel" :disabled="selectedType"
+                autocomplete="off" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="responsibleTeam" align="center" :label="$t('reportmanage.responsibleteam')"
+            min-width="180">
+            <template #default="{ row }">
+              <el-select v-model="row.responsibleTeam" filterable :placeholder="$t('reportmanage.presponsibleteam')" :disabled="selectedType"
+                clearable @input="handleInputChangea($event, row.id)">
+                <el-option v-for="item in selectOptionsc" :key="item.basicName" :label="item.basicName"
+                  :value="item.basicName" />
+              </el-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="responsibleEquipment" align="center" :label="$t('reportmanage.responsibleequipment')" :disabled="selectedType"
+            min-width="180">
+            <template #default="{ row }">
+              <el-select v-model="row.responsibleEquipment" filterable
+                :placeholder="$t('reportmanage.presponsibleequipment')" clearable  :disabled="selectedType"
+                @input="handleInputChangea($event, row.id)">
+                <el-option v-for="item in selectOptionsd" :key="item.basicName" :label="item.basicName"
+                  :value="item.basicName" />
+              </el-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="remark" align="center" :label="$t('reportmanage.remark')" min-width="180">
+            <template #default="{ row }">
+              <el-input :placeholder="$t('reportmanage.premark')" v-model="row.remark" autocomplete="off" :disabled="selectedType" />
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+  </div>
+</template>
+<script lang="ts" setup>
+import { Delete, Upload } from '@element-plus/icons-vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { ref, onMounted, onBeforeUnmount, reactive, computed, shallowRef, onUnmounted, watchEffect } from "vue";
+import request from "@/utils/request"
+import { WebSocketHost, host } from '@/utils/constants'
+import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
+import { useI18n } from 'vue-i18n'
+import { inject } from 'vue';
+const globalDate = inject('globalDate');
+const timeRange = ref([])
+const { t } = useI18n()
+const report = ref({
+  type: '8',
+  status: '1',
+  workingProcedure: '0',
+});
+const reportData = ref([])
+function formatTimestamp(timestamp) {
+  const date = new Date(timestamp);
+  const year = date.getFullYear();
+  const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+  const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+  const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+// 鏍煎紡鍖栧悗绔椂闂村苟璁$畻涓�鍛ㄥ墠鐨勬椂闂�
+const defaultTime = ref<[Date, Date]>([new Date(), new Date()]);
+function parseAndSetTime() {
+  const backendTime = new Date(globalDate);
+  const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 鍑忓幓7澶�
+  oneWeekAgo.setHours(0, 0, 0, 0);
+  timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+  window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+}
+// const timeRange = ref([formatTimestamp(startDate), formatTimestamp(globalDate)]);
+const selectOptionsa = ref([]);
+const selectOptionsb = ref([]);
+const selectOptionsc = ref([]);
+const selectOptionsd = ref([]);
+const selectValuesa = reactive({});
+const selectValuesb = reactive({});
+const selectValuesc = reactive({});
+const selectValuesd = reactive({});
+const selectValuese = reactive({});
+const inputValuesa = reactive({});
+const inputValuesb = reactive({});
+const selectedType = ref(true);
+const selectedStatus = ref(false);
+// 鏌ヨ鏁版嵁
+const selectReportData = async () => {
+  const response = await request.post("/cacheVerticalGlass/damage/selectDamage", {
+    startTime: (timeRange.value && timeRange.value[0]) || '',
+    endTime: (timeRange.value && timeRange.value[1]) || '',
+    type: report.value.type,
+    status: report.value.status,
+    workingProcedure: report.value.workingProcedure
+  })
+  if (report.value.type == 8) {
+    selectedType.value = false;
+  }else{
+    selectedType.value = true;
+  }
+  if ((report.value.status == 1||report.value.status == 7)&&(report.value.type == 8||report.value.type == 1)) {
+    selectedStatus.value = true;
+  }else{
+    selectedStatus.value = false;
+  }
+  if (response.code === 200) {
+    const formattedData = response.data.map(record => ({
+        ...record,
+        formattedCreateTime: formatTimestamp(record.damageTime),
+      }));
+    reportData.value = formattedData;
+    ElMessage.success(response.message);
+
+  } else {
+    ElMessage.error(response.message);
+  }
+  // const responses = await request.post("/cacheVerticalGlass/damage/insertDamage", {
+  //   glassId:"P24081502|1|1",
+  //   line:"1001",
+  //   workingProcedure:"鍒囧壊",
+  //   remark:"",
+  //   status:"0"
+  // })
+};
+// 鎶ュ伐
+const handleConfirm = async () => {
+  const hasEmptyOrNullBreakType = reportData.value.some(
+    item => item.breakageType === null || item.breakageType === ''
+      || item.breakageReason === null || item.breakageReason === ''
+      || item.responsibleProcess === null || item.responsibleProcess === ''
+      || item.responsibleTeam === null || item.responsibleTeam === ''
+      || item.responsibleEquipment === null || item.responsibleEquipment === ''
+  );
+  if (hasEmptyOrNullBreakType&&selectedType.value==false) {
+    // 濡傛灉鎵惧埌浜嗘湭閫夋嫨椤癸紝鏄剧ず閿欒淇℃伅
+    ElMessage.error('璇峰~鍐欐墍鏈夌幓鐠冪殑鐮存崯淇℃伅');
+  } else {
+    const response = await request.post("/cacheVerticalGlass/damage/submitDamage", reportData.value)
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+    } else {
+      ElMessage.error(response.message);
+    }
+  }
+  selectReportData();
+};
+const fetchTableData = async () => {
+  try {
+    const response = await request.post('/cacheVerticalGlass/basic_data_produce/selectBasicDataProduceGroup');
+    if (response.code == 200) {
+      selectOptionsa.value = response.data.breakagetype.filter(item => item !== null)
+        .map(item => ({ basicName: item.basicName }));
+      selectOptionsb.value = response.data.breakagereason.filter(item => item !== null)
+        .map(item => ({ basicName: item.basicName }));
+      selectOptionsc.value = response.data.teamsgroups.filter(item => item !== null)
+        .map(item => ({ basicName: item.basicName }));
+      selectOptionsd.value = response.data.device.filter(item => item !== null)
+        .map(item => ({ basicName: item.basicName }));
+    } else {
+      ElMessage.warning(response.data);
+    }
+  } catch (error) {
+    console.error('Error fetching options:', error);
+  }
+};
+const handleInputChangea = (value, rowId) => {
+  // 鏇存柊瀵瑰簲琛岀殑 select 鍊�  
+  selectValuesa[rowId] = value;
+  selectValuesb[rowId] = value;
+  selectValuesc[rowId] = value;
+  selectValuesd[rowId] = value;
+  selectValuese[rowId] = value;
+  inputValuesa[rowId] = value;
+  inputValuesb[rowId] = value;
+};
+fetchTableData();
+function gettypeType(type: number) {  
+  switch (type) {
+    case 9: 
+      return 'success';  
+    case 8: 
+      return 'danger';  
+  }
+}  
+function gettypeText(type: number) {
+  switch (type) {
+    case 9:  
+      return t('reportmanage.takeout'); 
+    case 8:  
+      return t('reportmanage.broke'); 
+  }  
+}
+function getStatusType(status: number) {  
+  switch (status) {  
+    case 1:
+      return 'warning';  
+    case 3: 
+      return 'info';  
+    case 7: 
+      return 'success';  
+    case 8: 
+      return 'primary';  
+  }
+}  
+function getStatusText(status: number) {
+  switch (status) {
+    case 1:  
+      return t('reportmanage.dreportwork');
+    case 3:  
+      return t('reportmanage.reportwork'); 
+    case 7:  
+      return t('reportmanage.pendingwork'); 
+    case 8:  
+      return t('reportmanage.reportworked'); 
+  }  
+}
+let socket = null;
+// const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/screen`;
+// const handleMessage = (data) => {
+// adjustedRects.value = data.device[0].map(rect => ({  
+//       ...rect, 
+//       completed: rect.completedQuantity,
+//       breakage: rect.breakageQuantity,
+//       thisProcess: rect.thisProcess,
+//     })); 
+// };
+// let socket;
+onUnmounted(() => {
+  socket.close();
+});
+onMounted(() => {
+  fetchTableData();
+  parseAndSetTime();
+  // socket = initializeWebSocket(socketUrl, handleMessage);
+});
+onUnmounted(() => {
+  if (socket) {
+    closeWebSocket(socket);
+  }
+});
+onBeforeUnmount(() => {
+  closeWebSocket();
+});
+</script>
+
+<style scoped></style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Returns/return.vue b/UI-Project/src/views/Returns/return.vue
new file mode 100644
index 0000000..06fecfb
--- /dev/null
+++ b/UI-Project/src/views/Returns/return.vue
@@ -0,0 +1,38 @@
+<script setup>
+import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
+import {useRouter} from "vue-router";
+let indexFlag=$ref(1)
+function changeRouter(index){
+  indexFlag=index
+}
+</script>
+<template>
+    <div id="main-body">
+      <router-view  />
+    </div>
+</template>
+<style scoped>
+#main-div{
+  width: 100%;
+  height: 100%;
+}
+#div-title{
+  height: 2%;
+  width: 100%;
+}
+#searchButton{
+  margin-top: -5px;
+  margin-left: 1rem;
+}
+#main-body{
+  width: 100%;
+  height: 95%;
+  /* margin-top: 1%; */
+}
+#select{
+  margin-left:0.5rem;
+}
+:deep(.indexTag .el-breadcrumb__inner){
+  color: #5CADFE !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Returns/upreturnhistory.vue b/UI-Project/src/views/Returns/upreturnhistory.vue
new file mode 100644
index 0000000..f9d95f8
--- /dev/null
+++ b/UI-Project/src/views/Returns/upreturnhistory.vue
@@ -0,0 +1,310 @@
+<template>  
+    <div>  
+  <div style="display: flex;width: 1770px;">
+    <el-input v-model="rawGlassWidth" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('Mounting.width')" />
+    <el-input v-model="rawGlassHeight" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('Mounting.height')" />
+    <el-input v-model="rawGlassThickness" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('Mounting.thickness')" />
+    <el-input v-model="rawGlassfilmsId" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('workOrder.coatingtypesbe')" />
+    <el-input v-model="slot" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('workOrder.upnumber')" />
+    <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('searchOrder.taskstatus')" clearable
+        style="width: 200px;margin-left: 10px;">
+        <el-option :label="$t('searchOrder.empty')" value="0"></el-option>
+        <el-option :label="$t('film.execution')" value="1"></el-option>
+        <el-option :label="$t('searchOrder.endtask')" value="2"></el-option>
+      </el-select>
+            <el-date-picker
+            style="margin-left: 15px;"
+             v-model="timeRange"
+             type="datetimerange"
+             :shortcuts="shortcuts"
+             range-separator="鑷�"
+             :start-placeholder="$t('reportmanage.starttime')"
+             :end-placeholder="$t('reportmanage.endtime')"
+           />
+          <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="sethistorical()">{{$t('reportmanage.inquire')}}</el-button>
+     </div>
+        <el-table ref="table" style="margin-top: 20px;height: 580px;width: 1770px;" :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+      <el-table-column prop="rawGlassWidth" align="center" :label="$t('Mounting.width')" min-width="70" />
+      <el-table-column prop="rawGlassHeight" align="center" :label="$t('Mounting.height')" min-width="70" />
+      <el-table-column prop="rawGlassThickness" align="center" :label="$t('Mounting.thickness')" min-width="80" />
+    <el-table-column prop="rawGlassFilmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80" />
+    <el-table-column prop="slot" align="center" :label="$t('workOrder.upnumber')" min-width="80" />
+      <el-table-column prop="totalCount" align="center" :label="$t('basicData.tonumber')" min-width="80" />
+      <el-table-column prop="finishCount" align="center" :label="$t('basicData.finishnumber')" min-width="80" />
+      <el-table-column prop="damageCount" align="center" :label="$t('hellow.damagenumber')" min-width="80" />
+          <el-table-column
+            align="center"
+            :label="$t('film.taskstatus')"
+            min-width="80"
+            prop="taskState"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusTypeb(scope.row.taskState)">  
+          {{ getStatusTextb(scope.row.taskState) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column prop="formattedCreateTime" align="center" :label="$t('reportmanage.starttime')" min-width="100" />
+          <el-table-column prop="formattedUpdateTime" align="center" :label="$t('reportmanage.endtime')" min-width="100" />
+        </el-table>
+  <div style="margin-top: 20px;margin-left: 40%;">
+        <el-pagination
+          v-model:current-page="currentPage2"
+          :page-size="pageSize"
+          :size="large"
+          :disabled="disabled"
+          layout="prev, pager, next, jumper"
+          :total="totalRecords"
+          @current-change="handlePageChange2"
+          style="margin-top: 10px;"
+      />
+    </div>
+  </div>
+  </template>  
+<script lang="ts" setup>
+import {useI18n} from 'vue-i18n'
+import {useRouter} from "vue-router"
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {ElMessage, ElMessageBox} from 'element-plus'
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+import { inject } from 'vue';
+const globalDate = inject('globalDate');
+const router = useRouter()
+const timeRange = ref([])
+const selectValuesa = reactive([]);
+const tableDatax = ref([])
+const currentPage2 = ref(1)
+const totalRecords = ref(0)
+const rawGlassHeight = ref('');
+const rawGlassThickness = ref('');
+const rawGlassWidth = ref('');
+const rawGlassfilmsId = ref('');
+const slot = ref('');
+let getglobalDate = window.localStorage.getItem('getglobalDate')
+const historical = async () => {
+  try {
+  let startTime = window.localStorage.getItem('startTime')
+      const response = await request.post("/loadGlass/loadglassdevicetaskhistory/queryLoadGlassHistoryTask", {
+        pageNo: 1,
+        pageSize: 20,
+        rawGlassHeight: '',
+        rawGlassThickness: '',
+        rawGlassWidth: '',
+        rawGlassfilmsId: '',
+        slot: 0,
+        station: 1,
+        taskStateList: [],
+        beginDate: startTime,
+        endDate: getglobalDate
+    })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        const formattedData = response.data.records.map(record => ({
+        ...record,
+        formattedCreateTime: formatTimestamp(record.createTime),
+        formattedUpdateTime: formatTimestamp(record.updateTime),
+      }));
+        // tableDatax.value = response.data.records;
+        tableDatax.value = formattedData;
+        totalRecords.value = response.data.total/2 || 0
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    console.error(error);
+  }
+}
+const handlePageChange2 = (newPage) => {
+  currentPage2.value = newPage;
+  window.localStorage.setItem('pagenumber', currentPage2.value)
+  historicala(currentPage2.value);
+};
+const historicala = async (page) => {
+  try { 
+let pslot= ''
+let celllist=[]
+if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+  if(selectValuesa[0]!=""){
+    celllist=[selectValuesa[0]];
+  }
+}
+if(slot.value != ""){
+  pslot = slot.value
+}else{
+  pslot = '0'
+}
+  let page = window.localStorage.getItem('pagenumber')
+  let startTime = window.localStorage.getItem('startTime')
+      const response = await request.post("/loadGlass/loadglassdevicetaskhistory/queryLoadGlassHistoryTask", {
+        pageNo: page,
+        pageSize: 20,
+        rawGlassHeight: rawGlassHeight.value,
+        rawGlassThickness: rawGlassThickness.value,
+        rawGlassWidth: rawGlassWidth.value,
+        rawGlassfilmsId: rawGlassfilmsId.value,
+        slot: pslot,
+        station: 1,
+        taskStateList: celllist,
+        beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+        endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+    })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        const formattedData = response.data.records.map(record => ({
+        ...record,
+        formattedCreateTime: formatTimestamp(record.createTime),
+        formattedUpdateTime: formatTimestamp(record.updateTime),
+      }));
+        // tableDatax.value = response.data.records;
+        tableDatax.value = formattedData;
+        totalRecords.value = response.data.total/2 || 0
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    console.error(error);
+  }
+}
+// 鍘嗗彶鏌ヨ鐐瑰嚮
+const sethistorical = async () => {
+  try { 
+let pslot= ''
+let celllist=[]
+if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+  if(selectValuesa[0]!=""){
+    celllist=[selectValuesa[0]];
+  }
+}
+if(slot.value != ""){
+  pslot = slot.value
+}else{
+  pslot = '0'
+}
+  let startTime = window.localStorage.getItem('startTime')
+  let page = window.localStorage.getItem('pagenumber')
+  const response = await request.post("/loadGlass/loadglassdevicetaskhistory/queryLoadGlassHistoryTask", {
+        pageNo: 1,
+        pageSize: 20,
+        rawGlassHeight: rawGlassHeight.value,
+        rawGlassThickness: rawGlassThickness.value,
+        rawGlassWidth: rawGlassWidth.value,
+        rawGlassfilmsId: rawGlassfilmsId.value,
+        slot: pslot,
+        station: 1,
+        taskStateList: celllist,
+        beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+        endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+      })
+      if (response.code == 200) {
+        currentPage2.value = 1
+        ElMessage.success(response.message);
+        const formattedData = response.data.records.map(record => ({
+        ...record,
+        formattedCreateTime: formatTimestamp(record.createTime),
+        formattedUpdateTime: formatTimestamp(record.updateTime),
+      }));
+        // tableDatax.value = response.data.records;
+        tableDatax.value = formattedData;
+        totalRecords.value = response.data.total/2 || 0
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    console.error(error);
+  }
+}
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp) {
+  const date = new Date(timestamp);
+  const year = date.getFullYear();
+  const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+  const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+  const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+const shortcuts = [
+  {
+    text: '鏈�杩戜竴鍛�',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setDate(oneWeekAgo.getDate() - 7)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+    },
+  },
+  {
+    text: '鏈�杩戜竴涓湀',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 1)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+    },
+  },
+  {
+    text: '鏈�杩戜笁涓湀',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 3)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+},
+  },
+]
+function parseAndSetTime() {
+  const backendTime = new Date(getglobalDate);
+  const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 鍑忓幓7澶�
+  oneWeekAgo.setHours(0, 0, 0, 0);
+  timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+  window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+}
+function getStatusTypeb(taskState: number) {  
+  switch (taskState) {  
+    case 0:
+      return 'primary';  
+    case 1: 
+      return 'success';  
+    case 2: 
+      return 'info';  
+  }  
+}
+function getStatusTextb(taskState: number) {
+  switch (taskState) {
+    case 0:  
+      return t('searchOrder.empty');
+    case 1:  
+      return t('film.execution');
+    case 2:  
+      return t('searchOrder.endtask');
+  }  
+}
+function getStatusTypea(taskRunning: number) {  
+  switch (taskRunning) {  
+    case 0: 
+      return 'primary';  
+    case 1: 
+      return 'success';  
+  }  
+}
+onMounted(() => {
+  parseAndSetTime();
+  historical();
+});
+  </script>
+  <style scoped>  
+  </style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Returns/upreturnhistory2.vue b/UI-Project/src/views/Returns/upreturnhistory2.vue
new file mode 100644
index 0000000..24a2c7e
--- /dev/null
+++ b/UI-Project/src/views/Returns/upreturnhistory2.vue
@@ -0,0 +1,312 @@
+<template>  
+  <div>  
+<div style="display: flex;width: 1770px;">
+  <el-input v-model="rawGlassWidth" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('Mounting.width')" />
+  <el-input v-model="rawGlassHeight" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('Mounting.height')" />
+  <el-input v-model="rawGlassThickness" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('Mounting.thickness')" />
+  <el-input v-model="rawGlassfilmsId" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('workOrder.coatingtypesbe')" />
+  <el-input v-model="slot" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('workOrder.upnumber')" />
+  <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('searchOrder.taskstatus')" clearable
+      style="width: 200px;margin-left: 10px;">
+      <el-option :label="$t('searchOrder.empty')" value="0"></el-option>
+      <el-option :label="$t('film.execution')" value="1"></el-option>
+      <el-option :label="$t('searchOrder.endtask')" value="2"></el-option>
+    </el-select>
+    <el-date-picker
+            style="margin-left: 15px;"
+             v-model="timeRange"
+             type="datetimerange"
+             :shortcuts="shortcuts"
+             range-separator="鑷�"
+             :start-placeholder="$t('reportmanage.starttime')"
+             :end-placeholder="$t('reportmanage.endtime')"
+           />
+        <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="sethistorical()">{{$t('reportmanage.inquire')}}</el-button>
+   </div>
+      <el-table ref="table" style="margin-top: 20px;height: 580px;width: 1770px;" :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+    <el-table-column prop="rawGlassWidth" align="center" :label="$t('Mounting.width')" min-width="70" />
+    <el-table-column prop="rawGlassHeight" align="center" :label="$t('Mounting.height')" min-width="70" />
+    <el-table-column prop="rawGlassThickness" align="center" :label="$t('Mounting.thickness')" min-width="80" />
+    <el-table-column prop="rawGlassFilmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80" />
+    <el-table-column prop="slot" align="center" :label="$t('workOrder.upnumber')" min-width="80" />
+    <el-table-column prop="totalCount" align="center" :label="$t('basicData.tonumber')" min-width="80" />
+    <el-table-column prop="finishCount" align="center" :label="$t('basicData.finishnumber')" min-width="80" />
+    <el-table-column prop="damageCount" align="center" :label="$t('hellow.damagenumber')" min-width="80" />
+        <el-table-column
+          align="center"
+          :label="$t('film.taskstatus')"
+          min-width="80"
+          prop="taskState"
+        >
+        <template #default="scope">  
+      <el-tag :type="getStatusTypeb(scope.row.taskState)">  
+        {{ getStatusTextb(scope.row.taskState) }}  
+      </el-tag>  
+    </template> 
+        </el-table-column>
+        <el-table-column prop="formattedCreateTime" align="center" :label="$t('reportmanage.starttime')" min-width="100" />
+        <el-table-column prop="formattedUpdateTime" align="center" :label="$t('reportmanage.endtime')" min-width="100" />
+      </el-table>
+<div style="margin-top: 20px;margin-left: 40%;">
+      <el-pagination
+        v-model:current-page="currentPage2"
+        :page-size="pageSize"
+        :size="large"
+        :disabled="disabled"
+        layout="prev, pager, next, jumper"
+        :total="totalRecords"
+        @current-change="handlePageChange2"
+        style="margin-top: 10px;"
+    />
+  </div>
+</div>
+</template>  
+<script lang="ts" setup>
+import {useI18n} from 'vue-i18n'
+import {useRouter} from "vue-router"
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {ElMessage, ElMessageBox} from 'element-plus'
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+import { inject } from 'vue';
+const globalDate = inject('globalDate');
+const router = useRouter()
+const timeRange = ref([])
+const selectValuesa = reactive([]);
+const tableDatax = ref([])
+const currentPage2 = ref(1)
+const totalRecords = ref(0)
+const rawGlassHeight = ref('');
+const rawGlassThickness = ref('');
+const rawGlassWidth = ref('');
+const rawGlassfilmsId = ref('');
+const slot = ref('');
+let getglobalDate = window.localStorage.getItem('getglobalDate')
+const historical = async () => {
+try {
+let startTime = window.localStorage.getItem('startTime')
+    const response = await request.post("/loadGlass/loadglassdevicetaskhistory/queryLoadGlassHistoryTask", {
+      pageNo: 1,
+      pageSize: 20,
+      rawGlassHeight: '',
+      rawGlassThickness: '',
+      rawGlassWidth: '',
+      rawGlassfilmsId: '',
+      slot: 0,
+      station: 2,
+      taskStateList: [],
+      beginDate: startTime,
+      endDate: getglobalDate
+  })
+    if (response.code == 200) {
+        currentPage2.value = 1
+        ElMessage.success(response.message);
+      const formattedData = response.data.records.map(record => ({
+      ...record,
+      formattedCreateTime: formatTimestamp(record.createTime),
+      formattedUpdateTime: formatTimestamp(record.updateTime),
+    }));
+      // tableDatax.value = response.data.records;
+      tableDatax.value = formattedData;
+      totalRecords.value = response.data.total/2 || 0
+    } else {
+      ElMessage.error(response.message);
+  }
+}
+catch (error) {
+  console.error(error);
+}
+}
+const handlePageChange2 = (newPage) => {
+currentPage2.value = newPage;
+window.localStorage.setItem('pagenumber', currentPage2.value)
+historicala(currentPage2.value);
+};
+const historicala = async (page) => {
+try { 
+let pslot= ''
+let celllist=[]
+if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+if(selectValuesa[0]!=""){
+  celllist=[selectValuesa[0]];
+}
+}
+if(slot.value != ""){
+pslot = slot.value
+}else{
+pslot = '0'
+}
+let page = window.localStorage.getItem('pagenumber')
+let startTime = window.localStorage.getItem('startTime')
+    const response = await request.post("/loadGlass/loadglassdevicetaskhistory/queryLoadGlassHistoryTask", {
+      pageNo: page,
+      pageSize: 20,
+      rawGlassHeight: rawGlassHeight.value,
+      rawGlassThickness: rawGlassThickness.value,
+      rawGlassWidth: rawGlassWidth.value,
+      rawGlassfilmsId: rawGlassfilmsId.value,
+      slot: pslot,
+      station: 2,
+      taskStateList: celllist,
+        beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+        endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+  })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      const formattedData = response.data.records.map(record => ({
+      ...record,
+      formattedCreateTime: formatTimestamp(record.createTime),
+      formattedUpdateTime: formatTimestamp(record.updateTime),
+    }));
+      // tableDatax.value = response.data.records;
+      tableDatax.value = formattedData;
+      totalRecords.value = response.data.total/2 || 0
+    } else {
+      ElMessage.error(response.message);
+  }
+}
+catch (error) {
+  console.error(error);
+}
+}
+// 鍘嗗彶鏌ヨ鐐瑰嚮
+const sethistorical = async () => {
+try { 
+let pslot= ''
+let celllist=[]
+if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+if(selectValuesa[0]!=""){
+  celllist=[selectValuesa[0]];
+}
+}
+if(slot.value != ""){
+pslot = slot.value
+}else{
+pslot = '0'
+}
+let startTime = window.localStorage.getItem('startTime')
+let page = window.localStorage.getItem('pagenumber')
+const response = await request.post("/loadGlass/loadglassdevicetaskhistory/queryLoadGlassHistoryTask", {
+      pageNo: 1,
+      pageSize: 20,
+      rawGlassHeight: rawGlassHeight.value,
+      rawGlassThickness: rawGlassThickness.value,
+      rawGlassWidth: rawGlassWidth.value,
+      rawGlassfilmsId: rawGlassfilmsId.value,
+      slot: pslot,
+      station: 2,
+      taskStateList: celllist,
+        beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+        endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+  })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      const formattedData = response.data.records.map(record => ({
+      ...record,
+      formattedCreateTime: formatTimestamp(record.createTime),
+      formattedUpdateTime: formatTimestamp(record.updateTime),
+    }));
+      // tableDatax.value = response.data.records;
+      tableDatax.value = formattedData;
+      totalRecords.value = response.data.total/2 || 0
+    } else {
+      ElMessage.error(response.message);
+  }
+}
+catch (error) {
+  console.error(error);
+}
+}
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp) {
+const date = new Date(timestamp);
+const year = date.getFullYear();
+const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+const shortcuts = [
+  {
+    text: '鏈�杩戜竴鍛�',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setDate(oneWeekAgo.getDate() - 7)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+    },
+  },
+  {
+    text: '鏈�杩戜竴涓湀',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 1)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+    },
+  },
+  {
+    text: '鏈�杩戜笁涓湀',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 3)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+},
+  },
+]
+// 鏍煎紡鍖栧悗绔椂闂村苟璁$畻涓�鍛ㄥ墠鐨勬椂闂�
+const defaultTime = ref<[Date, Date]>([new Date(), new Date()]);
+function parseAndSetTime() {
+const backendTime = new Date(getglobalDate);
+const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 鍑忓幓7澶�
+oneWeekAgo.setHours(0, 0, 0, 0);
+timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+}
+function getStatusTypeb(taskState: number) {  
+switch (taskState) {  
+  case 0:
+    return 'primary';  
+  case 1: 
+    return 'success';  
+  case 2: 
+    return 'info';  
+}  
+}
+function getStatusTextb(taskState: number) {
+switch (taskState) {
+  case 0:  
+    return t('searchOrder.empty');
+  case 1:  
+    return t('film.execution');
+  case 2:  
+    return t('searchOrder.endtask');
+}  
+}
+function getStatusTypea(taskRunning: number) {  
+switch (taskRunning) {  
+  case 0: 
+    return 'primary';  
+  case 1: 
+    return 'success';  
+}  
+}
+onMounted(() => {
+parseAndSetTime();
+historical();
+});
+</script>
+<style scoped>  
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Returns/upreturns.vue b/UI-Project/src/views/Returns/upreturns.vue
new file mode 100644
index 0000000..b658a1f
--- /dev/null
+++ b/UI-Project/src/views/Returns/upreturns.vue
@@ -0,0 +1,635 @@
+<script lang="ts" setup>
+import { onBeforeUnmount, onMounted, onUnmounted, reactive, ref, computed } from "vue";
+import { useRouter } from "vue-router"
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { useI18n } from 'vue-i18n'
+import { host, WebSocketHost } from '@/utils/constants'
+import request from "@/utils/request"
+import { closeWebSocket, initializeWebSocket } from '@/utils/WebSocketService';
+const router = useRouter()
+const { t } = useI18n()
+const selectValuesa = reactive([]);
+const selectedProjectNo = ref('');
+const stationCell = ref('1');
+const filmRemove = ref('');
+const dialogFormVisible = ref(false)
+const blind = ref(false)
+const blinda = ref(false)
+const blindb = ref(false)
+const blindbd = ref(false)
+const ReportData = ref(true);
+const canSelectProjecta = ref(true);
+const canSelectProjectb = ref(true);
+const canSelectProjectc = ref(false);
+const tableDatax = ref([])
+const tableDatad = ref([])
+const upstatus = ref(t('basicData.machineaa'));
+const cuttingMachineStatusColor = ref('#911005');
+const tableDataa = ref<any[]>([]);
+const tableDatab = ref<any[]>([]);
+const stationInfos = reactive({});
+const buttonEnabledStatus = ref({});
+const globalDate = inject('globalDate');
+import { inject } from 'vue';
+import { tr } from "element-plus/es/locale";
+const tableData = ref([])
+const titleSelectJson = ref({
+  engineerId: [],
+})
+request.post("/loadGlass/up-patten-usage/setUpPattenRequest", {
+  state: null,
+  stationCell: 5
+}).then((response) => {
+  if (response.code == 200) {
+  } else {
+    // ElMessage.warning(response.msg)
+  }
+});
+const selectproject = () => {
+  dialogFormVisible.value = true;
+  selectgong();
+};
+const markingMachineStatus = ref('#911005');
+const cuttingMachineStatus = ref('#911005');
+const confirmMarkingMachine = () => {
+  markingMachineStatus.value = 'green';
+};
+const confirmCuttingMachine = () => {
+  cuttingMachineStatus.value = 'green';
+};
+onMounted(() => {
+  socket = initializeWebSocket(socketUrl, handleMessage);
+});
+onUnmounted(() => {
+  if (socket) {
+    closeWebSocket(socket);
+  }
+});
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlassOne`;
+const handleMessage = (data: any) => {
+  if (data.inkageState != null) {
+    cuttingMachineStatusColor.value = data.inkageState[0] === 1 ? 'green' : '#911005';
+  }
+  if (data.stationList.length != 0) {
+    const processedData = [...data.stationList[0]];
+    if (processedData.length > 0) {
+      processedData[0] = { ...processedData[0], workstationId: 1 };
+    }
+    if (processedData.length > 1) {
+      processedData[1] = { ...processedData[1], workstationId: 2 };
+    }
+    tableDataa.value = processedData;
+  } else {
+    tableDataa.value = []
+  }
+  if (data.upPattenUsages.length != 0) {
+    tableData.value = data.upPattenUsages[0]
+    window.localStorage.setItem('engineeringIda', tableData.value[0].engineeringId)
+    canSelectProjecta.value = false;
+    canSelectProjectb.value = false;
+    canSelectProjectc.value = true;
+  }
+  else {
+    canSelectProjecta.value = true;
+    canSelectProjectb.value = true;
+    canSelectProjectc.value = false;
+    tableData.value = [];
+    window.localStorage.setItem('engineeringIda', '')
+  }
+};
+onBeforeUnmount(() => {
+  closeWebSocket();
+});
+const requestData = {
+  state: 100
+};
+const selectgong = async (queryString: string) => {
+  try {
+    const response = await request.post('/loadGlass/optimizeProject/listByState', {
+      ...requestData,
+      query: queryString
+    });
+    if (response.code == 200) {
+      titleSelectJson.value.engineerId = response.data;
+    } else {
+      // ElMessage.error(response.message);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+};
+//閫夋嫨宸ョ▼棰勮纭
+const handlesure = async () => {
+  try {
+    const response = await request.post('/loadGlass/up-patten-usage/selectUpPattenUsage', {
+      stationCell: 5,
+      engineerId: selectedProjectNo.value,
+      filmRemove: parseInt(filmRemove.value, 10),
+    })
+    window.localStorage.setItem('engineeringIda', selectedProjectNo.value)
+    window.localStorage.setItem('filmRemove', filmRemove.value)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      closeWebSocket(socket);
+      tableData.value = response.data;
+      dialogFormVisible.value = false;
+      selectedProjectNo.value = '';
+      filmRemove.value = '';
+      markingMachineStatus.value = '#911005';
+      cuttingMachineStatus.value = '#911005';
+      ReportData.value = false;
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+}
+// 寮�濮嬩笂鐗�
+const handleon = async () => {
+  let filmRemove = window.localStorage.getItem('filmRemove')
+  let engineeringId = window.localStorage.getItem('engineeringIda')
+  if (markingMachineStatus.value === 'green' && cuttingMachineStatus.value === 'green') {
+    try {
+      const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
+        stationCell: 5,
+        filmRemove: filmRemove,
+        engineerId: engineeringId,
+        state: 1,
+      })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        canSelectProjecta.value = false;
+        canSelectProjectb.value = false;
+        canSelectProjectc.value = true;
+        socket = initializeWebSocket(socketUrl, handleMessage);
+        blind.value = false;
+        ReportData.value = true;
+      } else {
+        ElMessage.error(response.message);
+      }
+    } catch (error) {
+      console.error(error);
+    }
+  } else if (markingMachineStatus.value === '#911005' || cuttingMachineStatus.value === '#911005') {
+    ElMessage.warning(t('basicData.pausea'));
+  }
+}
+// 鏆傚仠
+const handleup = async () => {
+  try {
+    let filmRemove = window.localStorage.getItem('filmRemove')
+    let engineeringId = window.localStorage.getItem('engineeringIda')
+    if (engineeringId !== '') {
+      const response = await request.post('/loadGlass/engineering/engineering/pause', {
+        stationCell: 5,
+        filmRemove: filmRemove,
+        engineerId: engineeringId,
+        state: 0,
+      })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        blinda.value = false;
+      } else {
+        ElMessage.error(response.message);
+      }
+    } else {
+      ElMessage({
+        type: 'info',
+        message: t('basicData.infonull'),
+      })
+    }
+  } catch (error) {
+    console.error(error);
+  }
+}
+// 鏌ヨ鏁版嵁
+const selectReportData = async () => {
+  let stateList = []
+  if (selectValuesa[0] != null && selectValuesa[0] != 'undefined') {
+    if (selectValuesa[0] != "") {
+      stateList = [selectValuesa[0]];
+    }
+  }
+  const response = await request.post("/loadGlass/up-patten-usage/setUpPattenRequest", {
+    state: selectValuesa[0],
+    stationCell: 5
+  })
+  if (response.code === 200) {
+    tableData.value = response.data;
+    ElMessage.success(response.message);
+  } else {
+    ElMessage.error(response.message);
+  }
+};
+// 寮�濮嬩笂鐗�
+const handleBind = (row) => {
+  blind.value = true;
+};
+// 鏆傚仠
+const handleBinda = (row) => {
+  blinda.value = true;
+};
+const toggleEnableState = async (row: any) => {
+  if (!row.id) {
+    ElMessage.error(t('basicData.updatanull'));
+    return;
+  }
+  const newState = row.state === 100 ? 0 : 100;
+  try {
+    const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', { id: row.id, state: newState });
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      row.state = newState;
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    ElMessage.error(t('basicData.glassnull'));
+  }
+};
+// 鐮存崯
+const opena = async (row) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('searchOrder.broke'),
+      t('productStock.prompt'),
+      {
+        confirmButtonText: t('productStock.yes'),
+        cancelButtonText: t('productStock.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+      const response = await request.post('/loadGlass/engineering/engineering/identControls', {
+        glassId: row.glassId,
+        line: 5,
+        status: 1,
+        state: 8,
+        workingProcedure: '涓婄墖',
+      })
+      if (response.code === 200) {
+        ElMessage.success(response.message);
+      } else {
+        ElMessage.error(response.msg);
+      }
+    }
+  } catch (error) {
+    console.error('鍙戠敓閿欒:', error);
+  }
+};
+// 浜哄伐鎷胯蛋
+const openb = async (row) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('order.takeawaya'),
+      t('productStock.prompt'),
+      {
+        confirmButtonText: t('productStock.yes'),
+        cancelButtonText: t('productStock.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+      const response = await request.post('/loadGlass/engineering/engineering/identControls', {
+        glassId: row.glassId,
+        line: 5,
+        status: 1,
+        state: 9,
+        workingProcedure: '涓婄墖',
+      })
+      if (response.code === 200) {
+        ElMessage.success(response.message);
+      } else {
+        ElMessage.error(response.msg);
+      }
+    }
+  } catch (error) {
+    console.error('鍙戠敓閿欒:', error);
+  }
+};
+
+// 鏋跺瓙澶嶄綅
+const handleptask = async (workstationId: number) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('basicData.prackreset'),
+      t('workOrder.prompt'),
+      {
+        confirmButtonText: t('workOrder.yes'),
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+
+      const slot = workstationId === 1 ? 101 : (workstationId === 2 ? 102 : null);
+      if (slot !== null) {
+        const response = await request.post('/glassStorage/rawGlassStorageDetails/shelfReset', {
+          slot: slot,
+        })
+        // const url = `/loadGlass/rawGlassStorageDetails/shelfReset?slot=${slot}`;
+        // const response = await request.post(url);
+        if (response.code === 200) {
+          ElMessage.success(response.message);
+        } else {
+          ElMessage.error(response.message);
+        }
+      } else {
+      }
+    }
+  } catch (error) {
+  }
+};
+// 缁撴潫宸ョ▼
+const deleteTask = async () => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('searchOrder.pdeleteTask'),
+      t('workOrder.prompt'),
+      {
+        confirmButtonText: t('workOrder.yes'),
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+      let engineeringId = window.localStorage.getItem('engineeringIda')
+      if (engineeringId !== '') {
+        const response = await request.post('/loadGlass/engineering/engineering/deleteTask', {
+          engineerId: engineeringId,
+        })
+        if (response.code == 200) {
+          ElMessage.success(response.message);
+          canSelectProjecta.value = true;
+          canSelectProjectb.value = true;
+          canSelectProjectc.value = false;
+          blindb.value = true;
+          tableDatad.value = response.data;
+        } else {
+          ElMessage.error(response.message);
+        }
+      } else {
+      }
+    }
+  } catch (error) {
+  }
+};
+// 鍘嗗彶浠诲姟
+const iframeUrl = ref('');
+const handlehistorical = (row) => {
+  blindbd.value = true;
+  iframeUrl.value = `${window.location.origin}/#/Returns/upreturnhistory`;
+};
+function getStatusType2(filmRemove) {
+  switch (filmRemove) {
+    case 0:
+      return 'success';
+    case 1:
+      return 'info';
+    case 2:
+      return 'warning';
+  }
+}
+function getStatusText2(filmRemove) {
+  switch (filmRemove) {
+    case 0:
+      return t('Mounting.noremoval');//瀹屾垚
+    case 1:
+      return t('Mounting.coarselyground');//鏂板缓
+    case 2:
+      return t('Mounting.finegrinding');//鎵ц涓�
+  }
+}
+</script>
+<template>
+  <div style="height: 500px;">
+    <div>
+      <div id="dotClass">
+        <div>{{ $t('basicData.laserprinting') }}</div>
+        <i
+          :style="{ marginTop: '2px', backgroundColor: markingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+        <el-button @click="confirmMarkingMachine" style="margin-left: 30px;margin-top: -3px;">{{
+          $t('basicData.yes')
+        }}
+        </el-button>
+        <div style="margin-left: 70px;">{{ $t('basicData.cuttingmachine') }}</div>
+        <i
+          :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+        <el-button @click="confirmCuttingMachine" style="margin-left: 30px;margin-top: -3px;">{{
+          $t('basicData.yes')
+        }}
+        </el-button>
+        <div style="margin-left: 70px;">{{ upstatus }}</div>
+        <i
+          :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+      </div>
+      <el-button :disabled="!canSelectProjecta" style="margin-top: 5px;margin-left: 15px;" type="primary"
+        @click="selectproject">{{ $t('Mounting.previewproject') }}</el-button>
+      <el-button :disabled="!canSelectProjectb" style="margin-top: 5px;margin-left: 20px;" type="success"
+        @click="handleBind">{{ $t('basicData.startloading') }}</el-button>
+      <el-button :disabled="!canSelectProjectc" style="margin-top: 5px;margin-left: 20px;" id="searchButton"
+        type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button>
+      <el-button :disabled="!canSelectProjectc" style="margin-top: 5px;margin-left: 20px;" id="searchButton"
+        type="danger" @click="deleteTask">{{ $t('searchOrder.deleteTask') }}</el-button>
+      <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="info" @click="handlehistorical">{{
+        $t('searchOrder.historicaltasks') }}</el-button>
+      <el-select disabled v-model="selectValuesa[1]" clearable :placeholder="$t('Mounting.oneloadingline')"
+        style="margin-top: 5px;margin-left: 20px;">
+        <el-option :label="$t('Mounting.all')" value="0"></el-option>
+        <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
+        <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
+      </el-select>
+      <el-select v-model="selectValuesa[0]" clearable :placeholder="$t('film.taskstatus')"
+        style="margin-top: 5px;margin-left: 20px;">
+        <el-option :label="$t('Mounting.all')" value="null"></el-option>
+        <el-option :label="$t('Mounting.waiting')" value="0"></el-option>
+        <el-option :label="$t('Mounting.pass')" value="100"></el-option>
+      </el-select>
+      <el-button :disabled="!ReportData" type="primary" style="margin-left: 10px;" @click="selectReportData()">{{
+        $t('Mounting.setparameters') }}</el-button>
+      <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;">
+        <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+          <el-table height="400" ref="table" :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }"
+            :data="tableData">
+            <el-table-column prop="engineeringId" :label="$t('Mounting.project')" width="120" align="center" />
+            <el-table-column prop="width" :label="$t('Mounting.width')" width="200" align="center" />
+            <el-table-column prop="height" :label="$t('Mounting.height')" align="center" />
+            <el-table-column prop="thickness" :label="$t('Mounting.thickness')" align="center" />
+            <el-table-column prop="filmsId" :label="$t('Mounting.loadinglinea')" align="center" />
+            <el-table-column prop="layoutSequence" :label="$t('Mounting.projectnumber')" align="center" />
+            <el-table-column align="center" :label="$t('Mounting.state')" min-width="80" prop="state">
+              <template #default="scope">
+                <el-tag :type="scope.row.state === 100 ? 'success' : 'warning'" @click="toggleEnableState(scope.row)">
+                  {{ scope.row.state === 100 ? $t('Mounting.pass') : $t('Mounting.waiting') }}
+                </el-tag>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </el-card>
+      <div style="display: flex;">
+        <div style="width: 49%;float: left;margin-left: 300px;">
+          <div style="display: flex;">
+            <img src="../../assets/shangpianji.png" alt=""
+              style="max-width: 20%;max-height: 25%;margin-left: 10%;margin-top: 5%;">
+            <el-table :data="tableDataa" border style="margin-top: 10%;margin-left: 8%;" width="500"
+              :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+              <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="65" />
+              <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="75" />
+              <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="75" />
+              <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80" />
+              <el-table-column prop="remainQuantity" align="center" :label="$t('basicData.quantity')" min-width="80" />
+              <el-table-column prop="patternThickness" align="center" :label="$t('basicData.thickness')"
+                min-width="60" />
+              <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="100">
+                <template #default="scope">
+                  <el-button :disabled="(!scope.row.patternThickness)" type="text" plain
+                    @click="handleptask(scope.row.workstationId)">{{ $t('basicData.rackreset') }}</el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+          </div>
+        </div>
+      </div>
+      <el-dialog v-model="blind" top="30vh" width="25%" :title="$t('basicData.startfilm')">
+        <template #footer>
+          <div id="dialog-footer">
+            <el-button type="primary" @click="handleon">
+              {{ $t('basicData.confirm') }}
+            </el-button>
+            <el-button @click="blind = false">{{ $t('basicData.cancel') }}</el-button>
+          </div>
+        </template>
+      </el-dialog>
+      <!-- 缁撴潫宸ョ▼ -->
+      <el-dialog v-model="blindb" top="10vh" width="80%">
+        <el-table ref="table" style="margin-top: 20px;height: 450px;" :data="tableDatad"
+          :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+          <el-table-column prop="engineerId" fixed align="center" :label="$t('basicData.projectnumber')" />
+          <el-table-column prop="glassId" fixed align="center" :label="$t('searchOrder.glassID')" />
+          <el-table-column prop="temperingLayoutId" fixed align="center" :label="$t('searchOrder.layoutID')" />
+          <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" />
+          <el-table-column prop="width" align="center" :label="$t('basicData.width')" />
+          <el-table-column prop="height" align="center" :label="$t('basicData.height')" />
+          <el-table-column prop="thickness" align="center" :label="$t('basicData.thickness')" />
+          <el-table-column prop="filmsid" align="center" :label="$t('basicData.coatingtypes')" />
+          <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.processcards')" />
+          <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="200">
+            <template #default="scope">
+              <el-button type="text" plain @click="opena(scope.row)">{{ $t('order.dilapidation') }}</el-button>
+              <el-button type="text" plain @click="openb(scope.row)">{{ $t('order.takeaway') }}</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <template #footer>
+          <div id="dialog-footer">
+            <el-button @click="blindb = false">{{ $t('large.close') }}</el-button>
+          </div>
+        </template>
+      </el-dialog>
+      <el-dialog v-model="blinda" top="24vh" width="30%" :title="$t('basicData.whetherpause')">
+        <div style="margin-left: 50px;margin-bottom: 10px;">
+          <el-form-item :label="$t('Mounting.loadingline')" :required="true">
+            <el-select disabled v-model="stationCell" clearable :placeholder="$t('Mounting.inloadingline')"
+              style="margin-left: 20px;">
+              <el-option :label="$t('Mounting.all')" value="0"></el-option>
+              <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
+              <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
+            </el-select>
+          </el-form-item>
+        </div>
+        <template #footer>
+          <div id="dialog-footer">
+            <el-button type="primary" @click="handleup">
+              {{ $t('basicData.confirm') }}
+            </el-button>
+            <el-button @click="blinda = false">{{ $t('basicData.cancel') }}</el-button>
+          </div>
+        </template>
+      </el-dialog>
+    </div>
+    <el-dialog v-model="dialogFormVisible" top="24vh" width="70%">
+      <div class="flex-container" style="margin-left: 50px;margin-bottom: 10px;">
+        <el-form-item :label="$t('Mounting.loadingline')" :required="true">
+          <el-select disabled v-model="stationCell" clearable :placeholder="$t('Mounting.inloadingline')">
+            <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
+            <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item :label="$t('Mounting.projecta')" :required="true">
+          <el-select v-model="selectedProjectNo" filterable clearable :placeholder="$t('basicData.plselectproject')"
+            style="width: 220px" @input="handleInputChange">
+            <el-option v-for="item in titleSelectJson['engineerId']" :key="item.id" :label="item.projectNo"
+              :value="item.projectNo" />
+          </el-select>
+        </el-form-item>
+        <el-form-item :label="$t('Mounting.removalmethoda')" :required="true">
+          <el-select v-model="filmRemove" clearable :placeholder="$t('Mounting.removalmethod')">
+            <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
+            <el-option :label="$t('Mounting.coarselyground')" value="1"></el-option>
+            <el-option :label="$t('Mounting.finegrinding')" value="2"></el-option>
+          </el-select>
+        </el-form-item>
+      </div>
+      <template #footer>
+        <div id="dialog-footer">
+          <el-button type="primary" @click="handlesure">
+            {{ $t('basicData.confirm') }}
+          </el-button>
+          <el-button @click="dialogFormVisible = false">{{ $t('basicData.cancel') }}</el-button>
+        </div>
+      </template>
+    </el-dialog>
+    <!-- 鍘嗗彶浠诲姟 -->
+    <el-dialog v-model="blindbd" top="5vh" width="95%" @close="iframeUrl=''">
+      <iframe :src="iframeUrl" marginwidth="2000px" marginheight="2000px" width="100%" height="750px"
+        frameborder="0"></iframe>
+    </el-dialog>
+  </div>
+</template>
+<style scoped>
+.flex-container {
+  display: flex;
+  align-items: center;
+}
+
+.flex-container .el-form-item {
+  flex: 1;
+  margin-right: 0;
+  /* 绉婚櫎榛樿鐨勫彸渚ц竟璺� */
+}
+
+.flex-container .el-form-item:last-child {
+  margin-left: 20px;
+  /* 涓虹浜屼釜琛ㄥ崟椤规坊鍔犲乏渚ц竟璺� */
+}
+
+#dt {
+  display: block;
+  float: left;
+  line-height: 20px;
+  margin-left: 100px;
+}
+
+#dta {
+  display: block;
+  float: left;
+  line-height: 20px;
+  margin-left: 80%;
+}
+
+#dialog-footer {
+  text-align: center;
+  margin-top: -15px;
+}
+
+#dotClass {
+  display: flex;
+  margin-left: 20px;
+  size: 50px;
+  margin-top: 20px;
+  margin-bottom: 10px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Returns/upreturns2.vue b/UI-Project/src/views/Returns/upreturns2.vue
new file mode 100644
index 0000000..bfbad91
--- /dev/null
+++ b/UI-Project/src/views/Returns/upreturns2.vue
@@ -0,0 +1,638 @@
+<script lang="ts" setup>
+import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref, computed} from "vue";
+import {useRouter} from "vue-router"
+import { ElMessage, ElMessageBox } from 'element-plus'
+import {useI18n} from 'vue-i18n'
+import {host, WebSocketHost} from '@/utils/constants'
+import request from "@/utils/request"
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+const router = useRouter()
+const {t} = useI18n()
+const selectValuesa = reactive([]);
+const selectedProjectNo = ref('');
+const stationCell = ref('2');
+const filmRemove = ref('');
+const dialogFormVisible = ref(false)
+const blind = ref(false)
+const blinda = ref(false)
+const ReportData = ref(true);
+const blindb = ref(false)
+const blindbd = ref(false)
+const canSelectProjecta = ref(true);
+const canSelectProjectb = ref(true);
+const canSelectProjectc = ref(false);
+const tableDatad = ref([])
+const upstatus = ref(t('basicData.machineaa'));
+const cuttingMachineStatusColor = ref('#911005');
+const tableDataa = ref<any[]>([]);
+const tableDatab = ref<any[]>([]);
+const tableData = ref([])
+const titleSelectJson = ref({
+  engineerId: [],
+})
+request.post("/loadGlass/up-patten-usage/setUpPattenRequest",{
+  state: null,
+  stationCell: 6
+}).then((response) => {
+          if (response.code == 200) {
+          } else {
+          // ElMessage.warning(response.msg)
+          }
+          });
+const selectproject = () => {
+  dialogFormVisible.value = true;
+  selectgong();
+};
+const markingMachineStatus = ref('#911005');
+const cuttingMachineStatus = ref('#911005');
+const confirmMarkingMachine = () => {
+  markingMachineStatus.value = 'green';
+};
+const confirmCuttingMachine = () => {
+  cuttingMachineStatus.value = 'green';
+};
+onMounted(() => {
+  socket = initializeWebSocket(socketUrl, handleMessage);
+});
+onUnmounted(() => {
+  if (socket) {
+    closeWebSocket(socket);
+  }
+});
+const fetchTableData = async () => {
+  try {
+    const response = await request.get("/loadGlass/up-patten-usage/prioritylist");
+    if (response.code === 200) {
+      tableData.splice(0, tableData.length, ...response.data);
+      // ElMessage.error(response.message);
+      window.localStorage.setItem('engineeringIda', tableData[0].engineeringId)
+    }
+  } catch (error) {
+  }
+};
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlassTwo`;
+const handleMessage = (data: any) => {
+  if (data.stationList.length != 0) {
+    const processedData = [...data.stationList[0]];
+ if (processedData.length > 0) {
+   processedData[0] = { ...processedData[0], workstationId: 1 };
+ }
+ if (processedData.length > 1) {
+   processedData[1] = { ...processedData[1], workstationId: 2 };
+ }
+  tableDataa.value = processedData;
+  }else {
+    tableDataa.value = []
+  }
+  if (data.inkageState != null) {
+    cuttingMachineStatusColor.value = data.inkageState[0] === 1 ? 'green' : '#911005';
+  }
+  if (data.upPattenUsages.length != 0) {
+  tableData.value = data.upPattenUsages[0]
+  window.localStorage.setItem('engineeringIda', tableData.value[0].engineeringId)
+  canSelectProjecta.value = false;
+  canSelectProjectb.value = false;
+  canSelectProjectc.value = true;
+}
+else {
+  tableData.value = [];
+  canSelectProjecta.value = true;
+  canSelectProjectb.value = true;
+  canSelectProjectc.value = false;
+}
+};
+onBeforeUnmount(() => {
+  closeWebSocket();
+});
+// 缁撴潫宸ョ▼
+const handledelete = (row) => {
+  blindb.value = true;
+};
+const requestData = {
+  state: 100
+};
+const selectgong = async (queryString: string) => {
+  try {
+    const response = await request.post('/loadGlass/optimizeProject/listByState', {
+      ...requestData,
+      query: queryString
+    });
+    if (response.code == 200) {
+      titleSelectJson.value.engineerId = response.data;
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+};
+// 鏋跺瓙澶嶄綅
+const handleptask = async (workstationId: number) => {
+      try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('basicData.prackreset'),
+      t('workOrder.prompt'),
+      {
+        confirmButtonText: t('workOrder.yes'),
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+      
+      const slot = workstationId === 3 ? 103 : (workstationId === 4 ? 104 : null);
+      if (slot !== null) {
+        const response = await request.post('/glassStorage/rawGlassStorageDetails/shelfReset', {
+          slot: slot,
+    })
+        if (response.code === 200) {
+          ElMessage.success(response.message);
+        } else {
+          ElMessage.error(response.message);
+        }
+      } else {
+      }
+    }
+  } catch (error) {
+  }
+};
+//閫夋嫨宸ョ▼棰勮纭
+const handlesure = async () => {
+  try {
+    const response = await request.post('/loadGlass/up-patten-usage/selectUpPattenUsage', {
+      stationCell: 6,
+      engineerId: selectedProjectNo.value,
+      filmRemove: parseInt(filmRemove.value, 10),
+    })
+    window.localStorage.setItem('engineeringIda', selectedProjectNo.value)
+    window.localStorage.setItem('filmRemove', filmRemove.value)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      closeWebSocket(socket);
+      tableData.value = response.data;
+      dialogFormVisible.value = false;
+      selectedProjectNo.value = '';
+      filmRemove.value = '';
+      markingMachineStatus.value = '#911005';
+      cuttingMachineStatus.value = '#911005';
+      ReportData.value = false;
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+}
+// 缁撴潫宸ョ▼
+const deleteTask = async () => {
+      try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('searchOrder.pdeleteTask'),
+      t('workOrder.prompt'),
+      {
+        confirmButtonText: t('workOrder.yes'),
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+    let engineeringId = window.localStorage.getItem('engineeringIda')
+    if (engineeringId !== '') {
+      const response = await request.post('/loadGlass/engineering/engineering/deleteTask', {
+        engineerId: engineeringId,
+      })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        canSelectProjecta.value = true;
+        canSelectProjectb.value = true;
+        canSelectProjectc.value = false;
+        blindb.value = true;
+        tableDatad.value = response.data;
+      } else {
+          ElMessage.error(response.message);
+        }
+      } else {
+      }
+    }
+  } catch (error) {
+  }
+};
+// 寮�濮嬩笂鐗�
+const handleon = async () => {
+  let filmRemove = window.localStorage.getItem('filmRemove')
+  let engineeringIda = window.localStorage.getItem('engineeringIda')
+  if (markingMachineStatus.value === 'green' && cuttingMachineStatus.value === 'green') {
+    try {
+      const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
+        stationCell: 6,
+        filmRemove: filmRemove,
+        engineerId: engineeringIda,
+        state: 1,
+      })
+      if (response.code == 200) {
+        ElMessage.success(response.message);  
+        canSelectProjecta.value = false;
+        canSelectProjectb.value = false;
+        canSelectProjectc.value = true;
+        socket = initializeWebSocket(socketUrl, handleMessage);
+        blind.value = false;
+        ReportData.value = true;
+      } else {
+        ElMessage.error(response.message);
+      }
+    } catch (error) {
+      console.error(error);
+    }
+  } else if (markingMachineStatus.value === '#911005' || cuttingMachineStatus.value === '#911005') {
+    ElMessage.warning(t('basicData.pausea'));
+  }
+}
+// 鏆傚仠
+const handleup = async () => {
+  try {
+    let filmRemove = window.localStorage.getItem('filmRemove')
+    let engineeringId = window.localStorage.getItem('engineeringIda')
+    if (engineeringId !== '') {
+      const response = await request.post('/loadGlass/engineering/engineering/pause', {
+        stationCell: 6,
+        filmRemove: filmRemove,
+        engineerId: engineeringId,
+        state: 0,
+      })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        blinda.value = false;
+      } else {
+        ElMessage.error(response.message);
+      }
+    } else {
+      ElMessage({
+        type: 'info',
+        message: t('basicData.infonull'),
+      })
+    }
+  } catch (error) {
+    console.error(error);
+  }
+}
+// 鏌ヨ鏁版嵁
+const selectReportData = async () => {
+  let stateList = []
+  if (selectValuesa[0] != null && selectValuesa[0] != 'undefined') {
+    if (selectValuesa[0] != "") {
+      stateList = [selectValuesa[0]];
+    }
+  }
+  const response = await request.post("/loadGlass/up-patten-usage/setUpPattenRequest", {
+    state: selectValuesa[0],
+    stationCell: 6
+  })
+  if (response.code === 200) {
+    tableData.value = response.data;
+    ElMessage.success(response.message);
+  } else {
+    ElMessage.error(response.message);
+  }
+};
+onMounted(fetchTableData);
+// 寮�濮嬩笂鐗�
+const handleBind = (row) => {
+  blind.value = true;
+};
+// 鏆傚仠
+const handleBinda = (row) => {
+  blinda.value = true;
+};
+const toggleEnableState = async (row: any) => {
+  if (!row.id) {  
+    ElMessage.error(t('basicData.updatanull'));  
+    return;
+  }  
+  const newState = row.state === 100 ? 0 : 100;
+  try {
+    const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', {id: row.id, state: newState});
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      row.state = newState;
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    ElMessage.error(t('basicData.glassnull'));
+  }
+};
+// 鐮存崯
+const opena = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.broke'), 
+      t('productStock.prompt'),  
+      {  
+        confirmButtonText: t('productStock.yes'), 
+        cancelButtonText: t('productStock.cancel'),
+        type: 'warning',  
+      } 
+    );
+    if (confirmResult === 'confirm') {
+     const response = await request.post('/loadGlass/engineering/engineering/identControls', {
+       glassId: row.glassId,
+       line: 6,
+       status: 1,
+       state: 8,
+       workingProcedure: '涓婄墖',
+    })
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {
+    console.error('鍙戠敓閿欒:', error);  
+  }  
+}; 
+// 浜哄伐鎷胯蛋
+const openb = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('order.takeawaya'), 
+      t('productStock.prompt'),  
+      {  
+        confirmButtonText: t('productStock.yes'), 
+        cancelButtonText: t('productStock.cancel'),
+        type: 'warning',  
+      } 
+    );
+    if (confirmResult === 'confirm') {
+      const response = await request.post('/loadGlass/engineering/engineering/identControls', {
+       glassId: row.glassId,
+       line: 6,
+       status: 1,
+       state: 9,
+       workingProcedure: '涓婄墖',
+    })
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {
+    console.error('鍙戠敓閿欒:', error);  
+  }  
+}; 
+// 鍘嗗彶浠诲姟
+const iframeUrl = ref('');
+const handlehistorical = (row) => {
+  blindbd.value = true;
+  iframeUrl.value = `${window.location.origin}/#/Returns/upreturnhistory`;
+};
+function getStatusType2(filmRemove) {
+  switch (filmRemove) {
+    case 0:
+      return 'success';
+    case 1:
+      return 'info';
+    case 2:
+      return 'warning';
+  }
+}
+function getStatusText2(filmRemove) {
+  switch (filmRemove) {
+    case 0:
+      return t('Mounting.noremoval');//瀹屾垚
+    case 1:
+      return t('Mounting.coarselyground');//鏂板缓
+    case 2:
+      return t('Mounting.finegrinding');//鎵ц涓�
+  }
+}
+</script>
+<template>
+  <div style="height: 500px;">
+    <div>
+      <div id="dotClass">
+        <div>{{ $t('basicData.laserprinting') }}</div>
+        <i :style="{ marginTop: '2px', backgroundColor: markingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+        <el-button @click="confirmMarkingMachine" style="margin-left: 30px;margin-top: -3px;">{{
+            $t('basicData.yes')
+          }}
+        </el-button>
+        <div style="margin-left: 70px;">{{ $t('basicData.cuttingmachine') }}</div>
+        <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+        <el-button @click="confirmCuttingMachine" style="margin-left: 30px;margin-top: -3px;">{{
+            $t('basicData.yes')
+          }}
+        </el-button>
+        <div style="margin-left: 70px;">{{ upstatus }}</div>
+        <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+  </div>
+    <el-button :disabled="!canSelectProjecta" style="margin-top: 5px;margin-left: 15px;"  type="primary" @click="selectproject">{{ $t('Mounting.previewproject') }}</el-button>
+    <el-button :disabled="!canSelectProjectb" style="margin-top: 5px;margin-left: 20px;" type="success" @click="handleBind">{{ $t('basicData.startloading') }}</el-button>
+    <el-button :disabled="!canSelectProjectc" style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button>
+    <el-button :disabled="!canSelectProjectc" style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="danger" @click="deleteTask">{{ $t('searchOrder.deleteTask') }}</el-button>
+    <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="info" @click="handlehistorical">{{ $t('searchOrder.historicaltasks') }}</el-button>
+    <el-select disabled v-model="selectValuesa[1]" clearable :placeholder="$t('Mounting.twoloadingline')"
+               style="margin-top: 5px;margin-left: 20px;">
+      <el-option :label="$t('Mounting.all')" value="0"></el-option>
+      <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
+      <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
+    </el-select>
+    <el-select v-model="selectValuesa[0]" clearable :placeholder="$t('film.taskstatus')" style="margin-top: 5px;margin-left: 20px;" >
+      <el-option :label="$t('Mounting.all')" value="null"></el-option>
+      <el-option :label="$t('Mounting.waiting')" value="0"></el-option>
+      <el-option :label="$t('Mounting.pass')" value="100"></el-option>
+    </el-select>
+    <el-button :disabled="!ReportData" type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('Mounting.setparameters') }}</el-button>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+        <el-table
+            height="400"
+            ref="table"
+            :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
+            :data="tableData"
+        >
+          <el-table-column prop="engineeringId" :label="$t('Mounting.project')" width="120" align="center"/>
+          <el-table-column prop="width" :label="$t('Mounting.width')" width="200" align="center"/>
+          <el-table-column prop="height" :label="$t('Mounting.height')" align="center"/>
+          <el-table-column prop="thickness" :label="$t('Mounting.thickness')" align="center"/>
+          <el-table-column prop="filmsId" :label="$t('Mounting.loadinglinea')" align="center"/>
+          <el-table-column prop="layoutSequence" :label="$t('Mounting.projectnumber')" align="center"/>
+          <el-table-column
+              align="center"
+              :label="$t('Mounting.state')"
+            min-width="80"
+            prop="state"
+          >
+          <template #default="scope">
+            <el-tag
+                :type="scope.row.state === 100 ? 'success' : 'warning'"
+                @click="toggleEnableState(scope.row)"
+            >
+              {{ scope.row.state === 100 ? $t('Mounting.pass') : $t('Mounting.waiting') }}
+            </el-tag>
+          </template>
+      </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+    <div style="display: flex;">
+      <div style="width: 49%;float: left;margin-left: 300px;">
+        <div style="display: flex;">
+          <img src="../../assets/shangpianji.png" alt=""
+               style="max-width: 20%;max-height: 25%;margin-left: 10%;margin-top: 5%;">
+            <el-table :data="tableDataa" border style="margin-top: 10%;margin-left: 8%;" width="500"
+                    :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" >
+            <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="65"/>
+            <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="75"/>
+            <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="75"/>
+            <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80"/>
+            <el-table-column prop="remainQuantity" align="center" :label="$t('basicData.quantity')" min-width="80"/>
+            <el-table-column prop="patternThickness" align="center" :label="$t('basicData.thickness')" min-width="60"/>
+            <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="100">
+            <template #default="scope">
+          <el-button :disabled="(!scope.row.patternThickness)" type="text" plain @click="handleptask(scope.row.workstationId)">{{ $t('basicData.rackreset') }}</el-button>
+            </template>
+        </el-table-column>
+          </el-table>
+    </div>
+  </div>
+</div>
+   <!-- 鍘嗗彶浠诲姟 -->
+   <el-dialog v-model="blindbd" top="5vh" width="95%" @close="iframeUrl=''">
+     <iframe 
+     :src="iframeUrl" 
+     marginwidth="2000px"
+     marginheight="2000px"
+     width="100%" 
+     height="750px" 
+     frameborder="0"
+     ></iframe>
+  </el-dialog>
+  <el-dialog v-model="blind" top="30vh" width="25%" :title="$t('basicData.startfilm')">
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleon">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="blind = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+<!-- 缁撴潫宸ョ▼ -->
+  <el-dialog v-model="blindb" top="10vh" width="80%">
+    <el-table ref="table" style="margin-top: 20px;height: 450px;" :data="tableDatad" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+        <el-table-column prop="engineerId" fixed align="center" :label="$t('basicData.projectnumber')"/>
+        <el-table-column prop="glassId" fixed align="center" :label="$t('searchOrder.glassID')"/>
+        <el-table-column prop="temperingLayoutId" fixed align="center" :label="$t('searchOrder.layoutID')"/>
+        <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')"/>
+        <el-table-column prop="width" align="center" :label="$t('basicData.width')"/>
+        <el-table-column prop="height" align="center" :label="$t('basicData.height')"/>
+        <el-table-column prop="thickness" align="center" :label="$t('basicData.thickness')"/>
+        <el-table-column prop="filmsid" align="center" :label="$t('basicData.coatingtypes')"/>
+        <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.processcards')"/>
+        <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="200">
+            <template #default="scope">
+              <el-button type="text" plain @click="opena(scope.row)">{{ $t('order.dilapidation') }}</el-button>
+              <el-button type="text" plain @click="openb(scope.row)">{{ $t('order.takeaway') }}</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+        <template #footer>
+      <div id="dialog-footer">
+        <el-button type="danger" @click="deleteTask()">{{ $t('searchOrder.deleteTask') }}</el-button>
+        <el-button @click="blindb = false">{{ $t('large.close') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <el-dialog v-model="blinda" top="24vh" width="30%" :title="$t('basicData.whetherpause')">
+    <div style="margin-left: 50px;margin-bottom: 10px;">
+    <el-form-item :label="$t('Mounting.loadingline')" :required="true">
+      <el-select disabled v-model="stationCell" clearable :placeholder="$t('Mounting.inloadingline')" style="margin-left: 20px;">
+        <el-option :label="$t('Mounting.all')" value="0"></el-option>
+        <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
+        <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
+      </el-select>
+    </el-form-item>
+    </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleup">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="blinda = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+        </div>
+  <el-dialog v-model="dialogFormVisible" top="24vh" width="70%">
+    <div class="flex-container" style="margin-left: 50px;margin-bottom: 10px;">
+      <el-form-item :label="$t('Mounting.loadingline')" :required="true">
+        <el-select disabled v-model="stationCell" clearable :placeholder="$t('Mounting.inloadingline')">
+          <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
+          <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item :label="$t('Mounting.projecta')" :required="true">
+        <el-select
+            v-model="selectedProjectNo"
+            filterable
+            clearable
+            :placeholder="$t('basicData.plselectproject')"
+            style="width: 220px"
+            @input="handleInputChange"
+        >
+          <el-option
+              v-for="item in titleSelectJson['engineerId']"
+              :key="item.id"
+              :label="item.projectNo"
+              :value="item.projectNo"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item :label="$t('Mounting.removalmethoda')" :required="true">
+        <el-select v-model="filmRemove" clearable :placeholder="$t('Mounting.removalmethod')">
+          <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
+          <el-option :label="$t('Mounting.coarselyground')" value="1"></el-option>
+          <el-option :label="$t('Mounting.finegrinding')" value="2"></el-option>
+        </el-select>
+      </el-form-item>
+    </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handlesure">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="dialogFormVisible = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  </div>
+</template>
+<style scoped>
+ .flex-container {  
+  display: flex;  
+  align-items: center;
+}  
+.flex-container .el-form-item {  
+  flex: 1;
+  margin-right: 0; /* 绉婚櫎榛樿鐨勫彸渚ц竟璺� */  
+}  
+.flex-container .el-form-item:last-child {  
+  margin-left: 20px; /* 涓虹浜屼釜琛ㄥ崟椤规坊鍔犲乏渚ц竟璺� */  
+}
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#dotClass {
+  display: flex;
+  margin-left: 20px; 
+  size: 50px;
+  margin-top: 20px;
+  margin-bottom: 10px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Returns/upreturns3.vue b/UI-Project/src/views/Returns/upreturns3.vue
new file mode 100644
index 0000000..fd66797
--- /dev/null
+++ b/UI-Project/src/views/Returns/upreturns3.vue
@@ -0,0 +1,839 @@
+<script lang="ts" setup>
+import { onBeforeUnmount, onMounted, onUnmounted, reactive, ref, computed } from "vue";
+import { useRouter } from "vue-router"
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { useI18n } from 'vue-i18n'
+import { host, WebSocketHost } from '@/utils/constants'
+import request from "@/utils/request"
+import { closeWebSocket, initializeWebSocket } from '@/utils/WebSocketService';
+const router = useRouter()
+const { t } = useI18n()
+const selectValuesa = reactive([]);
+const selectedProjectNo = ref('');
+const stationCell = ref('1');
+const filmRemove = ref('');
+const dialogFormVisible = ref(false)
+const blind = ref(false)
+const blinda = ref(false)
+const ReportData = ref(true);
+const blindb = ref(false)
+const blindbd = ref(false)
+const canSelectProjecta = ref(true);
+const canSelectProjectb = ref(true);
+const canSelectProjectc = ref(false);
+const tableDatad = ref([])
+const upstatus = ref(t('basicData.machineaa'));
+const cuttingMachineStatusColor = ref('#911005');
+const tableDataa = ref<any[]>([]);
+const tableDatab = ref<any[]>([]);
+const tableData = ref([])
+
+const dialogFormVisiblea = ref(false)
+
+
+const titleSelectJson = ref({
+  engineerId: [],
+})
+request.post("/loadGlass/up-patten-usage/setUpPattenRequest", {
+  state: null,
+  stationCell: 5
+}).then((response) => {
+  if (response.code == 200) {
+  } else {
+    // ElMessage.warning(response.msg)
+  }
+});
+const selectproject = () => {
+  dialogFormVisible.value = true;
+  selectgong();
+};
+const markingMachineStatus = ref('#911005');
+const cuttingMachineStatus = ref('#911005');
+const confirmMarkingMachine = () => {
+  markingMachineStatus.value = 'green';
+};
+const confirmCuttingMachine = () => {
+  cuttingMachineStatus.value = 'green';
+};
+
+//鑾峰彇鍘熺墖浠撳偍淇℃伅
+let socketB = null;
+const socketUrlB = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/rawGlass`;
+
+// 娣诲姞鏂扮殑娑堟伅澶勭悊鍑芥暟
+const handleMessageB = (data) => {
+  if (data.rawStationDetailsList != null) {
+    tableDatab.value = data.rawStationDetailsList[0];
+  }
+};
+
+onMounted(() => {
+  socket = initializeWebSocket(socketUrl, handleMessage);
+  socketB = initializeWebSocket(socketUrlB, handleMessageB);
+});
+onUnmounted(() => {
+  if (socket) {
+    closeWebSocket(socket);
+  }
+  if (socketB) {
+    closeWebSocket(socketB);
+  }
+});
+const fetchTableData = async () => {
+  try {
+    const response = await request.get("/loadGlass/up-patten-usage/prioritylist");
+    if (response.code === 200) {
+      tableData.splice(0, tableData.length, ...response.data);
+      // ElMessage.error(response.message);
+      window.localStorage.setItem('engineeringIda', tableData[0].engineeringId)
+    }
+  } catch (error) {
+  }
+};
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlassOne`;
+const handleMessage = (data: any) => {
+  if (data.inkageState != null) {
+    cuttingMachineStatusColor.value = data.inkageState[0] === 1 ? 'green' : '#911005';
+  }
+  if (data.stationList.length != 0) {
+    const processedData = [...data.stationList[0]];
+    if (processedData.length > 0) {
+      processedData[0] = { ...processedData[0], workstationId: 1 };
+    }
+    if (processedData.length > 1) {
+      processedData[1] = { ...processedData[1], workstationId: 2 };
+    }
+    tableDataa.value = processedData;
+  } else {
+    tableDataa.value = []
+  }
+  if (data.upPattenUsages.length != 0) {
+    tableData.value = data.upPattenUsages[0]
+    window.localStorage.setItem('engineeringIda', tableData.value[0].engineeringId)
+    canSelectProjecta.value = false;
+    canSelectProjectb.value = false;
+    canSelectProjectc.value = true;
+  }
+  else {
+    canSelectProjecta.value = true;
+    canSelectProjectb.value = true;
+    canSelectProjectc.value = false;
+    tableData.value = [];
+    window.localStorage.setItem('engineeringIda', '')
+  }
+};
+onBeforeUnmount(() => {
+  closeWebSocket();
+});
+// // 缁撴潫宸ョ▼
+// const handledelete = (row) => {
+//   blindb.value = true;
+// };
+// const requestData = {
+//   state: 100
+// };
+// const selectgong = async (queryString: string) => {
+//   try {
+//     const response = await request.post('/up-patten-usage/deleteTask', {
+//       ...requestData,
+//       query: queryString
+//     });
+//     if (response.code == 200) {
+//       titleSelectJson.value.engineerId = response.data;
+//     } else {
+//       ElMessage.error(response.message);
+//     }
+//   } catch (error) {
+//     console.error(error);
+//   }
+// };
+// 鏋跺瓙澶嶄綅
+const handleptask = async (workstationId: number) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('basicData.prackreset'),
+      t('workOrder.prompt'),
+      {
+        confirmButtonText: t('workOrder.yes'),
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+
+      const slot = workstationId === 3 ? 103 : (workstationId === 4 ? 104 : null);
+      if (slot !== null) {
+        const response = await request.post('/glassStorage/rawGlassStorageDetails/shelfReset', {
+          slot: slot,
+        })
+        if (response.code === 200) {
+          ElMessage.success(response.message);
+        } else {
+          ElMessage.error(response.message);
+        }
+      } else {
+      }
+    }
+  } catch (error) {
+  }
+};
+//閫夋嫨宸ョ▼棰勮纭
+// const handlesure = async () => {
+//   try {
+//     const response = await request.post('/loadGlass/up-patten-usage/selectUpPattenUsage', {
+//       stationCell: 5,
+//       engineerId: selectedProjectNo.value,
+//       filmRemove: parseInt(filmRemove.value, 10),
+//     })
+//     window.localStorage.setItem('engineeringIda', selectedProjectNo.value)
+//     window.localStorage.setItem('filmRemove', filmRemove.value)
+//     if (response.code == 200) {
+//       ElMessage.success(response.message);
+//       closeWebSocket(socket);
+//       tableData.value = response.data;
+//       dialogFormVisible.value = false;
+//       selectedProjectNo.value = '';
+//       filmRemove.value = '';
+//       markingMachineStatus.value = '#911005';
+//       cuttingMachineStatus.value = '#911005';
+//       ReportData.value = false;
+//     } else {
+//       ElMessage.error(response.message);
+//     }
+//   } catch (error) {
+//     console.error(error);
+//   }
+// }
+// 缁撴潫宸ョ▼
+const deleteTask = async () => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('searchOrder.pdeleteTask'),
+      t('workOrder.prompt'),
+      {
+        confirmButtonText: t('workOrder.yes'),
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+      let engineeringId = window.localStorage.getItem('engineeringIda')
+      if (engineeringId !== '') {
+        const response = await request.post('/loadGlass/engineering/engineering/deleteTask', {
+          engineerId: engineeringId,
+        })
+        if (response.code == 200) {
+          ElMessage.success(response.message);
+          canSelectProjecta.value = true;
+          canSelectProjectb.value = true;
+          canSelectProjectc.value = false;
+          blindb.value = true;
+          tableDatad.value = response.data;
+        } else {
+          ElMessage.error(response.message);
+        }
+      } else {
+      }
+    }
+  } catch (error) {
+  }
+};
+// 寮�濮嬩笂鐗囨寜閽�
+const handleBind = (row) => {
+  const quantity = inputQuantities.value[row.slot];
+  if (!quantity) {
+    ElMessage.warning('璇疯緭鍏ユ暟閲�');
+    return;
+  }
+  handleon(parseInt(row.slot), quantity);
+};
+const inputQuantities = ref<{ [key: string]: string }>({});  // 鐢ㄤ簬瀛樺偍杈撳叆鏁伴噺
+const currentRow = ref(null);
+
+// 寮�濮嬩笂鐗�
+const handleon = async (slot: number, quantity: string) => {
+  try {
+    // 杞崲涓烘暣鏁�
+    const quantityNum = Number(quantity);
+    const slotNum = Number(slot);
+
+    // 楠岃瘉鏄惁涓烘湁鏁堟暣鏁�
+    if (!Number.isInteger(quantityNum) || !Number.isInteger(slotNum)) {
+      ElMessage.warning('鏁伴噺鍜屾灦浣嶅彿蹇呴』鏄暣鏁�');
+      return;
+    }
+
+    const response = await request.post('/loadGlass/up-patten-usage/insertTask?quantity=' + quantityNum + '&slot=' + slotNum);
+    
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      blind.value = false;
+      dialogFormVisiblea.value = false;
+      inputQuantities.value[slot] = '';
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    console.error(error);
+    ElMessage.error('鎿嶄綔澶辫触');
+  }
+};
+
+// 鏆傚仠
+const handleup = async () => {
+  try {
+    let filmRemove = window.localStorage.getItem('filmRemove')
+    let engineeringId = window.localStorage.getItem('engineeringIda')
+    if (engineeringId !== '') {
+      const response = await request.post('/loadGlass/engineering/engineering/pause', {
+        stationCell: 5,
+        filmRemove: filmRemove,
+        engineerId: engineeringId,
+        state: 0,
+      })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        blinda.value = false;
+      } else {
+        ElMessage.error(response.message);
+      }
+    } else {
+      ElMessage({
+        type: 'info',
+        message: t('basicData.infonull'),
+      })
+    }
+  } catch (error) {
+    console.error(error);
+  }
+}
+// 鏌ヨ鏁版嵁
+const selectReportData = async () => {
+  let stateList = []
+  if (selectValuesa[0] != null && selectValuesa[0] != 'undefined') {
+    if (selectValuesa[0] != "") {
+      stateList = [selectValuesa[0]];
+    }
+  }
+  const response = await request.post("/loadGlass/up-patten-usage/setUpPattenRequest", {
+    state: selectValuesa[0],
+    stationCell: 5
+  })
+  if (response.code === 200) {
+    tableData.value = response.data;
+    ElMessage.success(response.message);
+  } else {
+    ElMessage.error(response.message);
+  }
+};
+onMounted(fetchTableData);
+
+
+// 鏆傚仠
+const handleBinda = (row) => {
+  blinda.value = true;
+};
+const toggleEnableState = async (row: any) => {
+  if (!row.id) {
+    ElMessage.error(t('basicData.updatanull'));
+    return;
+  }
+  const newState = row.state === 100 ? 0 : 100;
+  try {
+    const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', { id: row.id, state: newState });
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      row.state = newState;
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    ElMessage.error(t('basicData.glassnull'));
+  }
+};
+// 鐮存崯
+const opena = async (row) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('searchOrder.broke'),
+      t('productStock.prompt'),
+      {
+        confirmButtonText: t('productStock.yes'),
+        cancelButtonText: t('productStock.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+      const response = await request.post('/loadGlass/engineering/engineering/identControls', {
+        glassId: row.glassId,
+        line: 6,
+        status: 1,
+        state: 8,
+        workingProcedure: '涓婄墖',
+      })
+      if (response.code === 200) {
+        ElMessage.success(response.message);
+      } else {
+        ElMessage.error(response.msg);
+      }
+    }
+  } catch (error) {
+    console.error('鍙戠敓閿欒:', error);
+  }
+};
+// 浜哄伐鎷胯蛋
+const openb = async (row) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('order.takeawaya'),
+      t('productStock.prompt'),
+      {
+        confirmButtonText: t('productStock.yes'),
+        cancelButtonText: t('productStock.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+      const response = await request.post('/loadGlass/engineering/engineering/identControls', {
+        glassId: row.glassId,
+        line: 6,
+        status: 1,
+        state: 9,
+        workingProcedure: '涓婄墖',
+      })
+      if (response.code === 200) {
+        ElMessage.success(response.message);
+      } else {
+        ElMessage.error(response.msg);
+      }
+    }
+  } catch (error) {
+    console.error('鍙戠敓閿欒:', error);
+  }
+};
+// 鍘嗗彶浠诲姟
+const iframeUrl = ref('');
+const handlehistorical = (row) => {
+  blindbd.value = true;
+  iframeUrl.value = `${window.location.origin}/#/Returns/upreturnhistory`;
+};
+function getStatusType2(filmRemove) {
+  switch (filmRemove) {
+    case 0:
+      return 'success';
+    case 1:
+      return 'info';
+    case 2:
+      return 'warning';
+  }
+}
+function getStatusText2(filmRemove) {
+  switch (filmRemove) {
+    case 0:
+      return t('Mounting.noremoval');//瀹屾垚
+    case 1:
+      return t('Mounting.coarselyground');//鏂板缓
+    case 2:
+      return t('Mounting.finegrinding');//鎵ц涓�
+  }
+}
+
+// 杈撳叆妗嗛檺鍒�
+const handleInput = (row) => {
+  const inputValue = parseInt(row.filmRemove);
+  const maxValue = row.remainQuantity;
+  if (inputValue > maxValue) {
+    row.filmRemove = maxValue;
+  }
+};
+
+
+// 鏋跺瓙鏁版嵁瀵规瘮 锛堜换鎰忎竴琛屾瘮鍖归厤閮芥樉绀虹孩鑹诧級
+// const tableRowClassName = ({
+//   row,
+//   rowIndex: number  
+// }) => {
+//   // 鑾峰彇绗竴鏉℃暟鎹�
+//   const firstData = tableData.value[0];
+  
+//   // 濡傛灉绗竴鏉℃暟鎹瓨鍦ㄤ笖鐘舵�佷笉鏄�100
+//   if (firstData && firstData.state !== 100) {
+//     // 鑾峰彇褰撳墠琛屼笌绗竴鏉℃暟鎹�
+//     const previousRow = tableDataa.value.slice(0, rowIndex).reverse().find(item => 
+//       item && item.patternWidth && item.patternHeight && item.patternThickness && item.filmsId
+//     );
+    
+//     // 濡傛灉褰撳墠琛屾湁鏁版嵁锛岃繘琛屾瘮瀵�
+//     if (row && row.patternWidth) {
+//       const isMatch = 
+//         row.patternWidth === firstData.width &&
+//         row.patternHeight === firstData.height &&
+//         row.patternThickness === firstData.thickness &&
+//         row.filmsId === firstData.filmsId;
+      
+//       return !isMatch ? 'danger-row' : '';
+//     }
+//   }
+  
+//   return '';
+// }
+
+
+// 鏋跺瓙鏁版嵁瀵规瘮 锛堟枡鏋�1绗竴琛屾湁鏁版嵁锛岃繘琛屾瘮瀵癸紝鏂欐灦2绗竴琛屾病鏈夋暟鎹紝杩涜姣斿锛�
+const tableRowClassName = ({
+  row,
+  rowIndex
+}: {
+  row: any;
+  rowIndex: number;
+}) => {
+  // 鑾峰彇绗竴鏉℃暟鎹�
+  const firstData = tableData.value[0];
+  
+  // 濡傛灉绗竴鏉℃暟鎹瓨鍦ㄤ笖鐘舵�佷笉鏄�100
+  if (firstData && firstData.state !== 100) {
+    // 鏂欐灦1
+    if (rowIndex === 0) {
+      // 鏂欐灦1绗竴琛屾湁鏁版嵁锛岃繘琛屾瘮瀵�
+      if (row && row.patternWidth) {
+        const isMatch = 
+          row.patternWidth === firstData.width &&
+          row.patternHeight === firstData.height &&
+          row.patternThickness === firstData.thickness &&
+          row.filmsId === firstData.filmsId;
+        
+        return !isMatch ? 'danger-row' : '';
+      }
+    } 
+    // 鏂欐灦2
+    else if (rowIndex === 1) {
+      const firstRow = tableDataa.value[0];
+      if (!firstRow || !firstRow.patternWidth) {
+        if (row && row.patternWidth) {
+          const isMatch = 
+            row.patternWidth === firstData.width &&
+            row.patternHeight === firstData.height &&
+            row.patternThickness === firstData.thickness &&
+            row.filmsId === firstData.filmsId;
+          
+          return !isMatch ? 'danger-row' : '';
+        }
+      }
+    }
+  }
+  
+  return '';
+}
+
+// 鍒犻櫎浠诲姟
+const deleteWarehousing = async (row: any) => {
+  try {
+    // 纭鎻愮ず
+    await ElMessageBox.confirm(
+      t('basicData.deletemessage'), 
+      t('sorter.prompt'),          
+      {
+        confirmButtonText: t('basicData.confirm'),
+        cancelButtonText: t('basicData.cancel'),
+        type: 'warning',
+      }
+    );
+
+    // 杞崲涓烘暣鏁�
+    const id = Number(row.id);
+
+    const response = await request.post('/loadGlass/up-patten-usage/deleteTask?id=' + id);
+
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    console.error(error);
+    // 濡傛灉鏄敤鎴峰彇娑堟搷浣滐紝涓嶆樉绀洪敊璇彁绀�
+    if (error !== 'cancel') {
+      ElMessage.error('鍒犻櫎澶辫触');
+    }
+  }
+};
+
+</script>
+<template>
+  <div style="height: 500px;">
+    <div>
+      <div id="dotClass">
+        <!-- <div>{{ $t('basicData.laserprinting') }}</div>
+        <i
+          :style="{ marginTop: '2px', backgroundColor: markingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+        <el-button @click="confirmMarkingMachine" style="margin-left: 30px;margin-top: -3px;">{{
+          $t('basicData.yes')
+        }}
+        </el-button>
+        <div style="margin-left: 70px;">{{ $t('basicData.cuttingmachine') }}</div>
+        <i
+          :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+        <el-button @click="confirmCuttingMachine" style="margin-left: 30px;margin-top: -3px;">{{
+          $t('basicData.yes')
+        }}
+        </el-button>
+        <div style="margin-left: 70px;">{{ upstatus }}</div>
+        <i
+          :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+      -->
+      </div>
+      <!-- <el-button :disabled="!canSelectProjecta" style="margin-top: 5px;margin-left: 15px;" type="primary"
+        @click="selectproject">{{ $t('Mounting.previewproject') }}</el-button> -->
+
+      <!--寮�濮嬩笂鐗�-->
+      <el-button style="margin-top: 5px;margin-left: 20px;" type="primary" @click="dialogFormVisiblea = true">{{
+        $t('basicData.startloading') }}</el-button>
+      <el-dialog v-model="dialogFormVisiblea" top="5vh" width="85%">
+        <el-table ref="table" style="margin-top: 20px;height: 700px;" :data="tableDatab"
+          :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+          <el-table-column prop="deviceId" fixed align="center" :label="$t('film.station')" min-width="80" />
+          <el-table-column prop="slot" fixed align="center" :label="$t('film.slot')" min-width="80" />
+          <el-table-column prop="patternWidth" align="center" :label="$t('film.width')" min-width="80" />
+          <el-table-column prop="patternHeight" align="center" :label="$t('film.height')" min-width="80" />
+          <el-table-column prop="patternThickness" align="center" :label="$t('film.thickness')" min-width="80" />
+          <el-table-column prop="filmsId" align="center" :label="$t('film.films')" min-width="80" />
+          <el-table-column prop="remainQuantity" align="center" :label="$t('film.remainquantity')" min-width="120" />
+          <el-table-column align="center" :label="$t('film.enablestate')" min-width="80" prop="state">
+            <template #default="scope">
+              <el-tag :type="scope.row.state == 1 ? 'success' : 'danger'" @click="toggleEnableState(scope.row)">
+                {{ scope.row.state == 1 ? $t('film.start') : $t('film.disable') }}
+              </el-tag>
+            </template>
+          </el-table-column>
+          <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="270">
+            <template #default="scope">
+              <el-input v-model="inputQuantities[scope.row.slot]" type="number" min="0" @input="handleInput(scope.row)"
+                :placeholder="$t('basicData.selectquantity')" :disabled="scope.row.slot > 100" style="width: 120px; margin-right: 10px;">
+              </el-input>
+              <el-button type="text" :disabled="scope.row.slot > 100" @click="handleBind(scope.row)">
+                {{ $t('basicData.startloading') }} </el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </el-dialog>
+
+      <!--鏆傚仠-->
+      <el-button :disabled="!canSelectProjectc" style="margin-top: 5px;margin-left: 20px;" id="searchButton"
+        type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button>
+
+      <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="info" @click="handlehistorical">{{
+        $t('searchOrder.historicaltasks') }}</el-button>
+      <!-- <el-select disabled v-model="selectValuesa[1]" clearable :placeholder="$t('Mounting.twoloadingline')"
+        style="margin-top: 5px;margin-left: 20px;">
+        <el-option :label="$t('Mounting.all')" value="0"></el-option>
+        <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
+        <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
+      </el-select>
+      <el-select v-model="selectValuesa[0]" clearable :placeholder="$t('film.taskstatus')"
+        style="margin-top: 5px;margin-left: 20px;">
+        <el-option :label="$t('Mounting.all')" value="null"></el-option>
+        <el-option :label="$t('Mounting.waiting')" value="0"></el-option>
+        <el-option :label="$t('Mounting.pass')" value="100"></el-option>
+      </el-select> 
+      <el-button :disabled="!ReportData" type="primary" style="margin-left: 10px;" @click="selectReportData()">{{
+        $t('Mounting.setparameters') }}</el-button>-->
+      <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;">
+        <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+          <el-table height="400" ref="table" :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }"
+            :data="tableData">
+            <el-table-column prop="engineeringId" :label="$t('Mounting.project')" width="120" align="center" />
+            <el-table-column prop="width" :label="$t('film.width')" width="200" align="center" />
+            <el-table-column prop="height" :label="$t('film.height')" align="center" />
+            <el-table-column prop="thickness" :label="$t('film.thickness')" align="center" />
+            <el-table-column prop="filmsId" :label="$t('film.films')" align="center" />
+            <el-table-column prop="layoutSequence" :label="$t('Mounting.projectnumber')" align="center" />
+            <el-table-column align="center" :label="$t('Mounting.state')" min-width="80" prop="state">
+              <template #default="scope">
+                <el-tag :type="scope.row.state === 100 ? 'success' : 'warning'" @click="toggleEnableState(scope.row)">
+                  {{ scope.row.state === 100 ? $t('Mounting.pass') : $t('Mounting.waiting') }}
+                </el-tag>
+              </template>
+            </el-table-column>
+            <el-table-column align="center" :label="$t('film.operate')" min-width="80" prop="state">
+              <template #default="scope">
+                <el-button type="text" plain @click="deleteWarehousing(scope.row)">{{
+                  $t('film.delete') }}</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </el-card>
+
+      <!--鏋跺瓙-->
+      <div style="display: flex;">
+        <div style="width: 49%;float: left;margin-left: 300px;">
+          <div style="display: flex;">
+            <img src="../../assets/shangpianji.png" alt=""
+              style="max-width: 20%;max-height: 25%;margin-left: 10%;margin-top: 5%;">
+            <el-table :data="tableDataa" border style="margin-top: 10%;margin-left: 8%;" width="500"
+              :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }" :row-class-name="tableRowClassName">
+              <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="65" />
+              <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="75" />
+              <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="75" />
+              <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80" />
+              <el-table-column prop="remainQuantity" align="center" :label="$t('basicData.quantity')" min-width="80" />
+              <el-table-column prop="patternThickness" align="center" :label="$t('basicData.thickness')"
+                min-width="60" />
+              <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="100">
+                <template #default="scope">
+                  <el-button :disabled="(!scope.row.patternThickness)" type="text" plain
+                    @click="handleptask(scope.row.workstationId)">{{ $t('basicData.rackreset') }}</el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+          </div>
+        </div>
+      </div>
+
+      <!-- 鍘嗗彶浠诲姟 -->
+      <el-dialog v-model="blindbd" top="5vh" width="95%" @close="iframeUrl = ''">
+        <iframe :src="iframeUrl" marginwidth="2000px" marginheight="2000px" width="100%" height="750px"
+          frameborder="0"></iframe>
+      </el-dialog>
+      <el-dialog v-model="blind" top="30vh" width="25%" :title="$t('basicData.startfilm')">
+        <template #footer>
+          <div id="dialog-footer">
+            <el-button type="primary" @click="handleon">
+              {{ $t('basicData.confirm') }}
+            </el-button>
+            <el-button @click="blind = false">{{ $t('basicData.cancel') }}</el-button>
+          </div>
+        </template>
+      </el-dialog>
+      <!-- 缁撴潫宸ョ▼ -->
+      <!-- <el-dialog v-model="blindb" top="10vh" width="80%">
+        <el-table ref="table" style="margin-top: 20px;height: 450px;" :data="tableDatad"
+          :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+          <el-table-column prop="engineerId" fixed align="center" :label="$t('basicData.projectnumber')" />
+          <el-table-column prop="glassId" fixed align="center" :label="$t('searchOrder.glassID')" />
+          <el-table-column prop="temperingLayoutId" fixed align="center" :label="$t('searchOrder.layoutID')" />
+          <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" />
+          <el-table-column prop="width" align="center" :label="$t('basicData.width')" />
+          <el-table-column prop="height" align="center" :label="$t('basicData.height')" />
+          <el-table-column prop="thickness" align="center" :label="$t('basicData.thickness')" />
+          <el-table-column prop="filmsid" align="center" :label="$t('basicData.coatingtypes')" />
+          <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.processcards')" />
+          <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="200">
+            <template #default="scope">
+              <el-button type="text" plain @click="opena(scope.row)">{{ $t('order.dilapidation') }}</el-button>
+              <el-button type="text" plain @click="openb(scope.row)">{{ $t('order.takeaway') }}</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <template #footer>
+          <div id="dialog-footer">
+            <el-button type="danger" @click="deleteTask()">{{ $t('searchOrder.deleteTask') }}</el-button>
+            <el-button @click="blindb = false">{{ $t('large.close') }}</el-button>
+          </div>
+        </template>
+      </el-dialog> -->
+      <el-dialog v-model="blinda" top="24vh" width="30%" :title="$t('basicData.whetherpause')">
+        <div style="margin-left: 50px;margin-bottom: 10px;">
+          <el-form-item :label="$t('Mounting.loadingline')" :required="true">
+            <el-select disabled v-model="stationCell" clearable :placeholder="$t('Mounting.inloadingline')"
+              style="margin-left: 20px;">
+              <el-option :label="$t('Mounting.all')" value="0"></el-option>
+              <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
+              <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
+            </el-select>
+          </el-form-item>
+        </div>
+        <template #footer>
+          <div id="dialog-footer">
+            <el-button type="primary" @click="handleup">
+              {{ $t('basicData.confirm') }}
+            </el-button>
+            <el-button @click="blinda = false">{{ $t('basicData.cancel') }}</el-button>
+          </div>
+        </template>
+      </el-dialog>
+    </div>
+    <el-dialog v-model="dialogFormVisible" top="24vh" width="70%">
+      <div class="flex-container" style="margin-left: 50px;margin-bottom: 10px;">
+        <el-form-item :label="$t('Mounting.loadingline')" :required="true">
+          <el-select disabled v-model="stationCell" clearable :placeholder="$t('Mounting.inloadingline')">
+            <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
+            <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item :label="$t('Mounting.projecta')" :required="true">
+          <el-select v-model="selectedProjectNo" filterable clearable :placeholder="$t('basicData.plselectproject')"
+            style="width: 220px" @input="handleInputChange">
+            <el-option v-for="item in titleSelectJson['engineerId']" :key="item.id" :label="item.projectNo"
+              :value="item.projectNo" />
+          </el-select>
+        </el-form-item>
+        <el-form-item :label="$t('Mounting.removalmethoda')" :required="true">
+          <el-select v-model="filmRemove" clearable :placeholder="$t('Mounting.removalmethod')">
+            <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
+            <el-option :label="$t('Mounting.coarselyground')" value="1"></el-option>
+            <el-option :label="$t('Mounting.finegrinding')" value="2"></el-option>
+          </el-select>
+        </el-form-item>
+      </div>
+      <template #footer>
+        <div id="dialog-footer">
+          <el-button type="primary" @click="handlesure">
+            {{ $t('basicData.confirm') }}
+          </el-button>
+          <el-button @click="dialogFormVisible = false">{{ $t('basicData.cancel') }}</el-button>
+        </div>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+<style scoped>
+
+:deep(.el-table .danger-row) {
+  background-color: var(--el-color-danger-light-9);
+}
+
+.flex-container {
+  display: flex;
+  align-items: center;
+}
+
+.flex-container .el-form-item {
+  flex: 1;
+  margin-right: 0;
+  /* 绉婚櫎榛樿鐨勫彸渚ц竟璺� */
+}
+
+.flex-container .el-form-item:last-child {
+  margin-left: 20px;
+  /* 涓虹浜屼釜琛ㄥ崟椤规坊鍔犲乏渚ц竟璺� */
+}
+
+#dt {
+  display: block;
+  float: left;
+  line-height: 20px;
+  margin-left: 100px;
+}
+
+#dta {
+  display: block;
+  float: left;
+  line-height: 20px;
+  margin-left: 80%;
+}
+
+#dialog-footer {
+  text-align: center;
+  margin-top: -15px;
+}
+
+#dotClass {
+  display: flex;
+  margin-left: 20px;
+  size: 50px;
+  margin-top: 20px;
+  margin-bottom: 10px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
new file mode 100644
index 0000000..9065931
--- /dev/null
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -0,0 +1,1760 @@
+<script lang="ts" setup>
+import {useI18n} from 'vue-i18n'
+import {useRouter} from "vue-router"
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {ElMessage, ElMessageBox} from 'element-plus'
+const scanGlass = ref([])
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+import { inject } from 'vue';
+const router = useRouter()
+const timeRange = ref([])
+const dialogFormVisiblea = ref(false)
+const dialogFormVisiblec = ref(false)
+const dialogFormVisibled = ref(false)
+const dialogFormVisiblee = ref(false)
+const dialogFormVisiblef = ref(false)
+const dialogFormVisibles = ref(false)
+const blindb = ref(false)
+const inkageEntity = ref('#911005');
+const requestEntity = ref('#911005');
+const mesReplyEntity = ref('#911005');
+const outInkageEntity = ref('#911005');
+const outRequestEntity = ref('#911005');
+const tableDataa = ref([])
+const tableDatagh = ref([])
+const tableDatab = ref([])
+const tableDatac = ref([])
+const tableDatad = ref([])
+const tableDataf = ref([])
+const tableDatae = ref([])
+const tableDatas = ref([])
+const tableDatass = ref([])
+const tableDatax = ref([]);
+const tableDatalack = ref([])
+const tableDataspecify = ref([])
+const tableDatacagedetails = ref([])
+const selectValuesa = reactive([]);
+const carPosition = ref([])
+const ganghua = ref('')
+const diaodu = ref('')
+const flowCardId = ref('')
+const filmsId = ref('')
+const adjust = ref([]);
+const adjusta = ref([]);
+const adjustedRects = ref([]);
+const adjustedRectsa = ref([]);
+const adjustedRectsb = ref([]);
+const adjustedRectsc = ref([]);
+const subRectsCounts = ref([]);
+const subRectsCountsa = ref([]);
+const subRectsCountsb = ref([]);
+const subRectsCountsc = ref([]);
+const currentRow = reactive({}); // 褰撳墠琛岀殑鏁版嵁 
+const currentPage2 = ref(1)
+const globalDate = inject('globalDate');
+const inputValuesa = reactive({});
+const add = ref(false)
+const gap = ref('');
+const glassId = ref('');
+const startSlot = ref('');
+const targetSlot = ref('');
+const taskStateList = ref('');
+const taskTypeList = ref('');
+const beginDate = ref('');
+const endDate = ref('');
+const thickness = ref('');
+const width = ref('');
+const cell1=ref(true);
+const cell2=ref(true);
+const cell3=ref(true);
+const cell4=ref(true);
+const canEdit = ref(true);
+const selectedRow = ref(null);
+const temperingtotal = ref(0);
+const glasstotal = ref(0);
+const fulltotals = ref(0);
+const temperingengineerId=ref('');
+const printFlowCardId = ref('')
+const printLayer = ref('')
+const printGlassId = ref('')
+const open1 = async (row) => {
+printFlowCardId.value = row.flowCardId;
+printLayer.value = row.layer
+printGlassId.value = row.glassId
+}
+//     setInterval(() => {  
+//     localStorage.clear(); // 娓呴櫎鎵�鏈塴ocalStorage鏁版嵁  
+// }, 60000);
+//  function cleanUp() {
+// }
+// // 鍋囪鎴戜滑姣�2鍒嗛挓鎵ц涓�娆℃竻鐞�  
+// setInterval(cleanUp, 1 * 60 * 1000);
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+const handlePageChange2 = (newPage) => {
+  currentPage2.value = newPage;
+  window.localStorage.setItem('pagenumber', currentPage2.value)
+  fetchxiang(currentPage2.value);
+};
+const handleBindRack = (row) => {
+  selectedRow.value = row; // 鏇存柊閫変腑鐨勮鏁版嵁  
+  currentRow.deviceId  = row.deviceId; // 鐩存帴璁剧疆鍝嶅簲寮忓睘鎬�  
+  currentRow.slot = row.slot;  
+  window.localStorage.setItem('deviceId', row.deviceId)
+  window.localStorage.setItem('slot', row.slot)
+  add.value = true;
+};
+// 鎼滅储
+const searchout = async () => {
+  try {
+    const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/selectBigStorageCageDetails',{
+      glassId:glassId.value
+    });
+    if (response.code == 200) {
+      tableDataf.value = response.data;
+      ElMessage.success(response.message);
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+  }
+};
+// 鏄惁绂佺敤
+const toggleEnableState = async (row) => {
+  const newState = row.enableState === 1 ? 0 : 1;  
+  var url="/cacheVerticalGlass/bigStorageCage/updateStorageCageDisabled?slot="+row.slot + "&enableState=" + newState;
+      const response = await request.get(url) 
+  if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {  
+      ElMessage.error(response.message);
+      }  
+  row.enableState = newState;  
+}; 
+// 鏄惁鐮存崯
+const broken = async (row) => {
+  try  {
+  const newState = row.isDamage === 1 ? 0 : 1;
+  const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/bigStorageGlassDamageByGlassId', { glassId: row.glassId });  
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+    } else {
+      ElMessage.error(response.message);
+    }
+  row.isDamage = newState;   
+}
+catch (error) {
+  }
+}
+ // 鍒犻櫎 
+ const opena = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.deletemessage'), 
+      t('searchOrder.prompt'),  
+      {  
+        confirmButtonText: t('searchOrder.yes'), 
+        cancelButtonText: t('searchOrder.cancel'),
+        type: 'warning',  
+      } 
+    ); 
+    if (confirmResult === 'confirm') {
+      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/deleteBigStorageCageDetails",row)
+    if (response.code === 200) {
+     tableDataa.value = response.data;
+     ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.message);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+ // 鐮存崯
+ const broke = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.broke'), 
+      t('searchOrder.prompt'),  
+      {  
+        confirmButtonText: t('searchOrder.yes'), 
+        cancelButtonText: t('searchOrder.cancel'),
+        type: 'warning',  
+      } 
+    ); 
+    if (confirmResult === 'confirm') {  
+      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/damageBigStorageCageDetails?status="+8, row)
+    if (response.code === 200) {
+     tableDataa.value = response.data;
+     ElMessage.success(response.message);
+      } else {  
+      ElMessage.error(response.message);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+// 鍘嗗彶浠诲姟
+const iframeUrl = ref('');
+const handlehistorical = (row) => {
+  blindb.value = true;
+  iframeUrl.value = `${window.location.origin}/#/Slicecage/slicecagehistory`;
+};
+ // 鎷胯蛋
+ const brokec = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.brokeb'), 
+      t('searchOrder.prompt'),  
+      {  
+        confirmButtonText: t('searchOrder.yes'), 
+        cancelButtonText: t('searchOrder.cancel'),
+        type: 'warning',  
+      } 
+    ); 
+    if (confirmResult === 'confirm') {  
+      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/damageBigStorageCageDetails?status="+9, row)
+    if (response.code === 200) {
+     tableDataa.value = response.data;
+     ElMessage.success(response.message);
+      } else {  
+      ElMessage.error(response.message);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+ // 鍑虹墖
+ const outfil = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.outfil'), 
+      t('searchOrder.prompt'),  
+      {  
+        confirmButtonText: t('searchOrder.yes'), 
+        cancelButtonText: t('searchOrder.cancel'),
+        type: 'warning',  
+      } 
+    ); 
+    if (confirmResult === 'confirm') {
+      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/outBigStorageCageDetails", row)
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {  
+      ElMessage.error(response.message);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+ // 鍑虹墖闃熷垪鐮存崯
+ const brokea = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.broke'), 
+      t('searchOrder.prompt'),  
+      {  
+        confirmButtonText: t('searchOrder.yes'), 
+        cancelButtonText: t('searchOrder.cancel'),
+        type: 'warning',  
+      } 
+    ); 
+    if (confirmResult === 'confirm') {  
+      const response = await request.post("/cacheVerticalGlass/temperingGlassInfo/damageTemperingGlassInfo?status="+8, row)
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {  
+      ElMessage.error(response.message);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+ // 鎸囧畾閽㈠寲
+ const brokee = async(row,temperingFeedSequence) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.specifytemperinga'), 
+      t('searchOrder.prompt'),  
+      {  
+        confirmButtonText: t('searchOrder.yes'), 
+        cancelButtonText: t('searchOrder.cancel'),
+        type: 'warning',  
+      } 
+    ); 
+    if (confirmResult === 'confirm') {  
+      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/TemperingGlass",{
+        engineerId: row.engineerId,
+        temperingLayoutId: row.temperingLayoutId,
+        temperingFeedSequence:temperingFeedSequence
+    });
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {  
+      ElMessage.error(response.message);
+      }  
+    }  
+  } catch (error) {
+  }  
+  handleganghua();
+}; 
+ // 鎸囧畾宸ョ▼
+ const brokek = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.specifytemperinga'), 
+      t('searchOrder.prompt'),  
+      {  
+        confirmButtonText: t('searchOrder.yes'), 
+        cancelButtonText: t('searchOrder.cancel'),
+        type: 'warning',  
+      } 
+    ); 
+    if (confirmResult === 'confirm') {
+      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/appointTemperingEngineerId?engineerId=" + row.engineerId);
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {  
+      ElMessage.error(response.message);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+// 鍙栨秷鎸囧畾
+const broked = async() => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.specifytemperinga'), 
+      t('searchOrder.prompt'),  
+      {  
+        confirmButtonText: t('searchOrder.yes'), 
+        cancelButtonText: t('searchOrder.cancel'),
+        type: 'warning',  
+      } 
+    ); 
+    if (confirmResult === 'confirm') {  
+      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/cancelTemperingTask");
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {  
+      ElMessage.error(response.message);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+ // 鎸囧畾娴佺▼鍗�
+ const brokes = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.specifytemperinga'), 
+      t('searchOrder.prompt'),  
+      {  
+        confirmButtonText: t('searchOrder.yes'), 
+        cancelButtonText: t('searchOrder.cancel'),
+        type: 'warning',  
+      } 
+    ); 
+    if (confirmResult === 'confirm') { 
+      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/appointFlowCard",{
+        flowCardId: row.flow_card_id,
+        layer: row.layer,
+    });
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {  
+      ElMessage.error(response.message);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+// 鍑虹墖闃熷垪鎷胯蛋
+const brokeb = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.brokeb'), 
+      t('searchOrder.prompt'),  
+      {  
+        confirmButtonText: t('searchOrder.yes'), 
+        cancelButtonText: t('searchOrder.cancel'),
+        type: 'warning',  
+      } 
+    ); 
+    if (confirmResult === 'confirm') {  
+      const response = await request.post("/cacheVerticalGlass/temperingGlassInfo/damageTemperingGlassInfo?status="+9, row)
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {  
+      ElMessage.error(response.message);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+// 鍑虹墖闃熷垪鍒犻櫎
+const deletea = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.deletemessage'), 
+      t('searchOrder.prompt'),  
+      {  
+        confirmButtonText: t('searchOrder.yes'), 
+        cancelButtonText: t('searchOrder.cancel'),
+        type: 'warning',  
+      } 
+    ); 
+    if (confirmResult === 'confirm') {  
+      const dataToSend = {  
+        ...row,
+        status: 1
+      };  
+      const response = await request.post("/cacheVerticalGlass/temperingGlassInfo/deleteTemperingGlassInfo", dataToSend)
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {  
+      ElMessage.error(response.message);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+// 瀹屾垚浠诲姟
+const finish = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.fin'), 
+      t('searchOrder.prompt'),  
+      {  
+        confirmButtonText: t('searchOrder.yes'), 
+        cancelButtonText: t('searchOrder.cancel'),
+        type: 'warning',  
+      } 
+    ); 
+    if (confirmResult === 'confirm') {  
+      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/finishBigStorageCageDetails", row)
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {  
+      ElMessage.error(response.message);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+// 纭娣诲姞
+const finisha = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.sureadda'), 
+      t('searchOrder.prompt'),  
+      {  
+        confirmButtonText: t('searchOrder.yes'), 
+        cancelButtonText: t('searchOrder.cancel'),
+        type: 'warning',  
+      } 
+    ); 
+    if (confirmResult === 'confirm') {  
+    let deviceId = window.localStorage.getItem('deviceId')
+    let slot = window.localStorage.getItem('slot')
+      const dataToSend = {  
+        ...row,
+        deviceId: deviceId,
+        slot: slot
+      };  
+  const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/insertBigStorageCageDetails", dataToSend)
+    if (response.code === 200) {
+      tableDataa.value = response.data;
+      add.value = false;
+      ElMessage.success(response.message);
+      glassId.value = '';
+      tableDataf.value = '';
+ 
+      } else {  
+      ElMessage.error(response.message);
+      }  
+    }  
+  } catch (error) {
+  }  
+};
+const handleganghua = () => {
+  dialogFormVisiblec.value = true;
+  fetchFlow(); 
+};
+const handlexiang = () => {
+  dialogFormVisiblea.value = true;
+  fetchxiang(); 
+  currentPage2.value = 1;
+  window.localStorage.setItem('pagenumber', currentPage2.value)
+  filmsId.value = ''
+  flowCardId.value = ''
+};
+// 缂虹墖鏁伴噺
+const handlelack = (row) => {
+  const { engineerId, temperingLayoutId } = row;
+  fetchlack(engineerId, temperingLayoutId); 
+  dialogFormVisibled.value = true;
+};
+// 绗煎唴璇︽儏
+const handlecagedetails = (row) => {
+  const { engineerId, temperingLayoutId } = row;
+  fetchcagedetails(engineerId, temperingLayoutId); 
+  dialogFormVisiblef.value = true;
+};
+// 閽㈠寲鏌ヨ
+onMounted(async () => {  
+  try {  
+    var url="/cacheVerticalGlass/bigStorageCageDetails/selectTemperingGlass?isTempering="+1;
+    const response = await request.post(url)
+    if (response.code === 200) {  
+      ElMessage.success(response.message);
+      tableDatagh.value = response.data
+    } else {  
+      ElMessage.warning(response.msg)
+    }  
+  } catch (error) {
+  }
+}); 
+// 鐞嗙墖绗间俊鎭�
+const fetchxiang = async () => {
+  try {     
+    const response = await request.post('/cacheVerticalGlass/bigStorageCage/querybigStorageCageDetail',{
+        // deviceId: page,
+        filmsId: filmsId.value,
+        flowCardId: flowCardId.value,
+    })
+    if (response.code === 200) {  
+      ElMessage.success(response.message);
+      tableDataa.value = response.data
+    } else {  
+      ElMessage.warning(response.msg)
+    }  
+  } catch (error) {
+  } 
+}
+const fetchxianga = async () => {
+  let page = window.localStorage.getItem('pagenumber')
+  try {     
+    const response = await request.post('/cacheVerticalGlass/bigStorageCage/querybigStorageCageDetail',{
+        deviceId: page,
+        filmsId: filmsId.value,
+        flowCardId: flowCardId.value,
+    })
+    if (response.code === 200) {  
+      ElMessage.success(response.message);
+      tableDataa.value = response.data
+      // filmsId.value = ''
+      // flowCardId.value = ''
+    } else {  
+      ElMessage.warning(response.msg)
+    }  
+  } catch (error) {
+  } 
+}
+// 闈為挗鍖栨祦绋嬪崱
+const fetchFlows = async () => {
+  try {  
+    var url="/cacheVerticalGlass/bigStorageCageDetails/selectTemperingGlass?isTempering="+0;
+    const response = await request.post(url)
+    if (response.code === 200) {  
+      ElMessage.success(response.message);
+      tableDatas.value = response.data
+    } else {  
+      ElMessage.warning(response.msg)
+    }  
+  } catch (error) {
+  } 
+}
+// 缂虹墖鏁伴噺
+const fetchlack = async (engineerId, temperingLayoutId) => {
+  try  {
+    const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/queryLackGlassInfo',{
+        engineerId: engineerId,
+        temperingLayoutId: temperingLayoutId,
+    })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableDatalack.value = response.data
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    // 澶勭悊閿欒
+  }
+}
+// 绗煎唴璇︽儏
+const fetchcagedetails = async (engineerId, temperingLayoutId) => {
+  try  {
+    const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/queryRealGlassInfo',{
+        engineerId: engineerId,
+        temperingLayoutId: temperingLayoutId,
+    })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableDatacagedetails.value = response.data
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+const fetchFlow = async () => {
+  try  {
+    var url="/cacheVerticalGlass/bigStorageCageDetails/selectTemperingGlass?isTempering="+1;
+    const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableDatagh.value = response.data
+      temperingtotal.value = response.data.length
+      let totalCount = 0;
+      let fullCount = 0;
+      response.data.forEach(item => { 
+        totalCount += item.realCount || 0;
+        if(item.lackCount==0){
+          fullCount+=1;
+        }
+      });
+      glasstotal.value = totalCount;
+      fulltotals.value = fullCount;
+ 
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+function handleRowClick(row) {  
+  selectedRow.value = row; // 鏇存柊閫変腑鐨勮鏁版嵁  
+}  
+// 閽㈠寲寮�鍏�
+  const handleChange = async () => {
+  try  {
+    const body = {  
+      flag: ganghua.value,
+    }; 
+    
+    var url="/cacheVerticalGlass/bigStorageCageDetails/temperingSwitch?flag="+ganghua.value;
+  const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      ganghua.value = response.data
+    }else {  
+      ElMessage.error(response.message);
+      }  
+}
+catch (error) {
+  }
+}
+// 璋冨害寮�鍏�
+const handlediaodu = async () => {
+  try  {
+    const body = {  
+      flag: diaodu.value,
+    };
+    var url="/cacheVerticalGlass/bigStorageCageDetails/dispatchSwitch?flag="+diaodu.value;
+  const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      diaodu.value = response.data
+    }else {  
+      ElMessage.error(response.message);
+      }  
+}
+catch (error) {
+  }
+}
+// 浠诲姟閲嶇疆
+const handleptask = async() => { 
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.partasks'), 
+      t('workOrder.prompt'),  
+      {  
+        confirmButtonText: t('workOrder.yes'), 
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',  
+      } 
+    );
+ if (confirmResult === 'confirm') {
+  const response = await request.post('/cacheVerticalGlass/bigStorageCage/resetCage')
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheVerticalGlass/api/talk/slicecage`;
+const handleMessage = (data) => {
+  if(data.bigStorageSummary!=null){
+    tableDatass.value = data.bigStorageSummary[0]
+  }else{
+    tableDatass.value = ''
+      }
+  if (data.inkageEntity != null) {
+    inkageEntity.value = data.inkageEntity[0] == true ? 'green' : '#911005';
+  }
+  if (data.requestEntity != null) {
+    requestEntity.value = data.requestEntity == 1 ? 'green' : '#911005';
+  }
+  if (data.mesReplyEntity != null) {
+    mesReplyEntity.value = data.mesReplyEntity == 1 ? 'green' : '#911005';
+  }
+  if (data.outInkageEntity != null) {
+    outInkageEntity.value = data.outInkageEntity[0] == true ? 'green' : '#911005';
+  }
+  if (data.outRequestEntity != null) {
+    outRequestEntity.value = data.outRequestEntity == 1 ? 'green' : '#911005';
+  }
+    if (data.scanGlass != null) {
+    scanGlass.value = data.scanGlass[0];
+    let width = scanGlass.value.width;
+    let height = scanGlass.value.height;
+    if (width < height) {
+      scanGlass.value.width = height;
+      scanGlass.value.height = width;
+    }
+    if (autoPrint.value == true && browser.value == true) {
+      open1(scanGlass);
+    }
+  }
+  //褰撳墠鎸囧畾宸ョ▼
+  if(data.bigStorageCageDetailsOutTask!=null){
+    temperingengineerId.value=data.temperingengineerId[0];
+  }
+  if(data.bigStorageCageDetailsOutTask!=null){
+    tableDatac.value = data.bigStorageCageDetailsOutTask[0]
+    adjusta.value = data.bigStorageCageDetailsOutTask[0].filter(rect => rect.slot !== null && rect.slot !== undefined);
+  } else {
+    tableDatac.value = '',
+    adjusta.value = ''
+  }
+  if(data.bigStorageCageDetailsFeedTask!=null){
+    tableDatax.value = data.bigStorageCageDetailsFeedTask[0]
+  } else {
+    tableDatax.value = ''
+  }
+  if(data.bigStorageCageDetailsFeedTask!=null){
+    tableDatad.value = data.bigStorageCageDetailsFeedTask[0]
+    adjust.value = data.bigStorageCageDetailsFeedTask[0].filter(rect => rect.slot !== null && rect.slot !== undefined); 
+  }else{
+    tableDatad.value = ''
+      }
+if(data.temperingGlassInfoList!=null){
+  tableDatab.value = data.temperingGlassInfoList[0]
+}else{
+    tableDatab.value = ''
+      }
+if(data.bigStorageCageUsage!=null){
+  tableDatae.value = data.bigStorageCageUsage[0]
+}else{
+    tableDatae.value = ''
+      }
+if(data.carPostion!=null){
+  carPosition.value = data.carPostion[0]
+}else{
+  carPosition.value = ''
+  }
+if(data.temperingSwitch!=null){
+  ganghua.value = data.temperingSwitch[0]
+}else{
+  ganghua.value = ''
+  }
+if(data.dispatchSwitch!=null){
+  diaodu.value = data.dispatchSwitch[0]
+}else{
+  diaodu.value = ''
+  }
+  if(data.bigStorageCageInfos!=null){
+  adjustedRects.value = data.bigStorageCageInfos[0][1].map((rect, index) => ({
+    id: index + 1,
+    height: 20/55,
+    top: 53/55,
+  }));
+subRectsCounts.value = data.bigStorageCageInfos[0][1].map(rect => rect.count);
+adjustedRectsa.value = data.bigStorageCageInfos[0][2].map((rect, index) => ({
+    id: index + 1,
+    height: 20/55,
+    top: 53/55,
+  }));
+subRectsCountsa.value = data.bigStorageCageInfos[0][2].map(rect => rect.count);
+adjustedRectsb.value = data.bigStorageCageInfos[0][3].map((rect, index) => ({
+    id: index + 1,
+    height: 20/55,
+    top: 53/55,
+  }));
+subRectsCountsb.value = data.bigStorageCageInfos[0][3].map(rect => rect.count);
+adjustedRectsc.value = data.bigStorageCageInfos[0][4].map((rect, index) => ({
+    id: index + 1,
+    height: 20/55,
+    top: 53/55,
+  }));
+subRectsCountsc.value = data.bigStorageCageInfos[0][4].map(rect => rect.count);
+  }else{
+    adjustedRects.value = '',
+    adjustedRectsa.value = '',
+    adjustedRectsb.value = '',
+    adjustedRectsc.value = ''
+  }
+};
+// 璁$畻姣忎釜澶х煩褰㈢殑鏍峰紡
+const rectStyle = (rect, index) => ({
+  position: 'absolute',
+  width: '170px',
+  right: '0px',
+  top: `${index*rect.top}px`,
+  height: `${rect.height}px`,
+});
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡鍜屾暟閲�
+const getSubRects = (rectIndex) => {
+  const count = subRectsCounts.value[rectIndex];
+  const subRects = [];
+  for (let i = 0; i < count; i++) {
+    subRects.push({});
+  }
+  return subRects;
+};
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡
+const subRectStyle = (rectIndex, subIndex) => {
+  const width = '18px';
+  const marginRight = '8px';
+  const totalWidth = 6 * (parseInt(width) + parseInt(marginRight));
+  const right = `${(subIndex * (parseInt(width) + parseInt(marginRight))) / totalWidth * 100}%`;
+  return {
+    position: 'absolute',
+    width,
+    height: '100%',
+    marginRight,
+    top: '0px',
+    backgroundColor: '#911005',
+    right,
+  };
+};
+// 璁$畻姣忎釜澶х煩褰㈢殑鏍峰紡
+const rectStylea = (rect, index) => ({
+  position: 'absolute',
+  width: '170px',
+  right: '0px',
+  top: `${index*rect.top}px`,
+  height: `${rect.height}px`,
+});
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡鍜屾暟閲�
+const getSubRectsa = (rectIndex) => {
+  const count = subRectsCountsa.value[rectIndex];
+  const subRects = [];
+  for (let i = 0; i < count; i++) {
+    subRects.push({});
+  }
+  return subRects;
+};
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡
+const subRectStylea = (rectIndex, subIndex) => {
+  const width = '18px';
+  const marginRight = '8px';
+  const totalWidth = 6 * (parseInt(width) + parseInt(marginRight));
+  const right = `${(subIndex * (parseInt(width) + parseInt(marginRight))) / totalWidth * 100}%`;
+  return {
+    position: 'absolute',
+    width,
+    height: '100%',
+    marginRight,
+    top: '0px',
+    backgroundColor: '#911005',
+    right,
+  };
+};
+// 璁$畻姣忎釜澶х煩褰㈢殑鏍峰紡
+const rectStyleb = (rect, index) => ({
+  position: 'absolute',
+  width: '170px',
+  right: '0px',
+  top: `${index*rect.top}px`,
+  height: `${rect.height}px`,
+});
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡鍜屾暟閲�
+const getSubRectsb = (rectIndex) => {
+  const count = subRectsCountsb.value[rectIndex];
+  const subRects = [];
+  for (let i = 0; i < count; i++) {
+    subRects.push({});
+  }
+  return subRects;
+};
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡
+const subRectStyleb = (rectIndex, subIndex) => {
+  const width = '18px';
+  const marginRight = '8px';
+  const totalWidth = 6 * (parseInt(width) + parseInt(marginRight));
+  const right = `${(subIndex * (parseInt(width) + parseInt(marginRight))) / totalWidth * 100}%`;
+  return {
+    position: 'absolute',
+    width,
+    height: '100%',
+    marginRight,
+    top: '0px',
+    backgroundColor: '#911005',
+    right,
+  };
+};
+// 璁$畻姣忎釜澶х煩褰㈢殑鏍峰紡
+const rectStylec = (rect, index) => ({
+  position: 'absolute',
+  width: '170px',
+  right: '0px',
+  top: `${index*rect.top}px`,
+  height: `${rect.height}px`,
+});
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡鍜屾暟閲�
+const getSubRectsc = (rectIndex) => {
+  const count = subRectsCountsc.value[rectIndex];
+  const subRects = [];
+  for (let i = 0; i < count; i++) {
+    subRects.push({});
+  }
+  return subRects;
+};
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡
+const subRectStylec = (rectIndex, subIndex) => {
+  const width = '18px';
+  const marginRight = '8px';
+  const totalWidth = 6 * (parseInt(width) + parseInt(marginRight));
+  const right = `${(subIndex * (parseInt(width) + parseInt(marginRight))) / totalWidth * 100}%`;
+  return {
+    position: 'absolute',
+    width,
+    height: '100%',
+    marginRight,
+    top: '0px',
+    backgroundColor: '#911005',
+    right,
+  };
+};
+// 鏍煎紡鍖栧悗绔椂闂村苟璁$畻涓�鍛ㄥ墠鐨勬椂闂�
+const defaultTime = ref<[Date, Date]>([new Date(), new Date()]);
+function parseAndSetTime() {
+  const backendTime = new Date(globalDate);
+  const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 鍑忓幓7澶�
+  oneWeekAgo.setHours(0, 0, 0, 0);
+  timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+  window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+}
+  onMounted(() => {
+  socket = initializeWebSocket(socketUrl, handleMessage);
+  parseAndSetTime();
+});
+  onUnmounted(() => {
+    if (socket) {
+    closeWebSocket(socket);
+    }
+    });
+function getStatusType(enableState: number) {  
+  switch (enableState) {  
+    case 100:
+      return 'success';  
+    case 102: 
+      return 'warning';  
+  }  
+}  
+function getStatusText(enableState: number) {
+  switch (enableState) {
+    case 100:  
+      return t('searchOrder.zailong');
+    case 102:  
+      return t('searchOrder.rengongxp'); 
+  }  
+}
+function getStatusTypea(ishorizontal: number) {  
+  switch (ishorizontal) {  
+    case 0:
+      return 'warning';  
+    case 1: 
+      return 'success';  
+  }  
+}  
+function getStatusTexta(ishorizontal: number) {
+  switch (ishorizontal) {
+    case 0:  
+      return t('searchOrder.noaccept');
+    case 1:  
+    return t('searchOrder.accept');
+  }  
+}
+function getStatusTypeb(state: number) {  
+  switch (state) {  
+    case 0:
+      return 'success';  
+    case 1: 
+      return 'primary';  
+  }  
+}  
+function getStatusTextb(state: number) {
+  switch (state) {
+    case 0:  
+      return t('searchOrder.filmcomplete');
+    case 1:  
+      return t('searchOrder.waiting');
+    case 2:  
+    return t('searchOrder.waiting');
+  }  
+}
+function getcasOnea(isSame) {  
+  switch (isSame) {  
+    case 1:
+      return 'danger';  
+    case 0: 
+      return 'info';  
+  }  
+}  
+function getStatuscasOnea(isSame) {
+  switch (isSame) {
+    case 1:  
+      return t('searchOrder.same');
+    case 0:  
+      return t('searchOrder.notsame'); 
+  }  
+}
+function tableRowClassName({ row }) {
+  if (row.isSame === 1) {
+    return 'row-red-background';
+  }
+  return '';
+}
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp) {
+  const date = new Date(timestamp);
+  const year = date.getFullYear();
+  const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+  const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+  const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+onBeforeUnmount(() => {
+  closeWebSocket();
+});
+</script>
+<template>
+  <div style="height: 600px;">
+    <el-button style="margin-top: 7px;margin-left: 10px;" id="searchButton" type="primary" @click="handlexiang">{{ $t('searchOrder.cageinformation') }}</el-button>
+    <el-button style="margin-top: 7px;margin-left: 10px;" id="searchButton" type="success" @click="handlehistorical">{{ $t('searchOrder.historicaltasks') }}</el-button>
+    <el-button style="margin-top: 7px;margin-left: 10px;" id="searchButton" type="warning" @click="handleganghua">{{ $t('searchOrder.temperingqueries') }}</el-button>
+    <el-button style="margin-top: 7px;margin-left: 10px;" id="searchButton" type="info" @click="dialogFormVisibles=true;fetchFlows()">{{ $t('searchOrder.searchlayout') }}</el-button>
+    <el-button style="margin-top: 7px;margin-left: 10px;" id="searchButton" type="danger" @click="handleptask()">{{ $t('searchOrder.partask') }}</el-button>
+    <el-switch style="margin-top: 7px;margin-left: 10px;" v-model="ganghua" class="mb-2" :inactive-text="$t('searchOrder.temperedswitch')" @change="handleChange" />
+    <el-switch style="margin-top: 7px;margin-left: 10px;" v-model="diaodu" class="mb-2" :inactive-text="$t('searchOrder.Schedulingswitch')" @change="handlediaodu" />
+    <div id="dotClass">
+        <div>{{ $t('searchOrder.inkageEntity') }}</div>
+        <i :style="{ marginTop: '2px', backgroundColor: inkageEntity, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+        <div style="margin-left: 70px;">{{ $t('searchOrder.requestEntity') }}</div>
+        <i :style="{ marginTop: '2px', backgroundColor: requestEntity, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+        <div style="margin-left: 70px;">{{ $t('searchOrder.mesReplyEntity') }}</div>
+        <i :style="{ marginTop: '2px', backgroundColor: mesReplyEntity, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+        <div style="margin-left: 70px;">{{ $t('searchOrder.outInkageEntity') }}</div>
+        <i :style="{ marginTop: '2px', backgroundColor: outInkageEntity, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+        <div style="margin-left: 70px;">{{ $t('searchOrder.outRequestEntity') }}</div>
+        <i :style="{ marginTop: '2px', backgroundColor: outRequestEntity, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+  </div>
+    <div class="table-container">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 300px;">
+       <el-table height="300px" ref="table" 
+        :row-class-name="tableRowClassName"
+        :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="glassId" align="center" :label="$t('searchOrder.intoglassid')" min-width="140" />
+          <el-table-column prop="startSlot" align="center" :label="$t('searchOrder.startposition')" min-width="120" />
+          <el-table-column prop="targetSlot" align="center" :label="$t('searchOrder.targetlocation')" min-width="120" />
+          <el-table-column prop="taskState" align="center" :label="$t('searchOrder.taskstatus')" min-width="120">
+          <template #default="scope">
+            <el-tag type="success" >{{ scope.row.taskState==0? $t('searchOrder.filmenter') : $t('searchOrder.infilm') }}</el-tag>
+          </template>
+          </el-table-column>
+          <el-table-column prop="isSame" align="center" :label="$t('searchOrder.whethersame')" min-width="120">
+          <template #default="scope">
+        <el-tag :type="getcasOnea(scope.row.isSame)">
+          {{ getStatuscasOnea(scope.row.isSame) }}
+        </el-tag>
+      </template>
+          </el-table-column>
+        </el-table>
+       </div>
+    </el-card>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;">
+      <el-table height="300px" ref="table" 
+       :data="tableDatac" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+         <el-table-column prop="glassId" align="center" :label="$t('searchOrder.outputglassID')" min-width="140" />
+         <el-table-column prop="startSlot" align="center" :label="$t('searchOrder.startposition')" min-width="120" />
+         <el-table-column prop="targetSlot" align="center" :label="$t('searchOrder.targetlocation')" min-width="120" />
+         <el-table-column prop="taskState" align="center" :label="$t('searchOrder.taskstatus')" min-width="157">
+           <template #default="scope">
+             <el-tag type="success" >{{ scope.row.taskState==0? $t('searchOrder.filmenter') : $t('searchOrder.infilm') }}</el-tag>
+           </template>
+         </el-table-column>
+       </el-table>
+            </el-card>
+  </div>
+    <div style="padding: 10px;display: flex;height:130px;">
+            <div v-for="(item, index) in tableDatae" :key="index" id="occupy">  
+               <el-col style="text-align:left;font-weight: bold;">#{{ item.device_id }}</el-col>  
+               <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">  
+                 <span>{{ $t('searchOrder.Usage') }}</span><span>{{ item.percentage }}%</span>  
+               </el-col>  
+               <hr style="width:80%;margin: 0 auto;" />  
+               <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">  
+                 <span>{{ $t('searchOrder.free') }}</span><span>{{ item.count }}</span>  
+               </el-col>  
+             </div>  
+    </div>
+<!-- // 鐖剁骇妗� -->
+<div class="img-dlpl" >
+    <div class="img-car1" :style="'z-index:999;left:290px;top:' + 350*carPosition[0] + 'px;position:absolute;'">
+      <div  
+      v-for="(rect, index) in adjusta"  
+      :key="rect.id"  
+      :style="{
+       width: '30px',
+       height: '5px',
+       backgroundColor: '#409EFF',
+       marginLeft: 5+ `px`,
+       top: '10px',
+       }"  
+    >
+    </div>
+    </div>
+    <div class="img-car4" :style="'z-index:999;left:735px;top:' + 350*carPosition[1] + 'px;position:absolute;'">
+      <div  
+      v-for="(rect, index) in adjust"  
+      :key="rect.id"  
+      :style="{
+       width: '30px',
+       height: '5px',
+       backgroundColor: '#409EFF',
+       marginLeft: 5+ `px`,
+       top: '10px',
+       }"  
+    >
+    </div>
+    </div>
+    <div style="position: relative;">
+    <div v-show="cell1" style="width: 170px;height: 53px;position: relative;top:63px;left: 525px;">
+      <div v-for="(rect, rectIndex) in adjustedRects" :key="rect.id" :style="rectStyle(rect, rectIndex)">
+    <div
+      v-for="(subRect, subIndex) in getSubRects(rectIndex)"
+      :key="subIndex"
+      :style="subRectStyle(rectIndex, subIndex)"
+    ></div>
+    </div>
+    </div>
+ <div v-show="cell2" style="width: 170px;height: 53px;position: relative;top:67px;left: 525px;">
+    <div v-for="(rect, rectIndex) in adjustedRectsa" :key="rect.id" :style="rectStylea(rect, rectIndex)">
+    <div
+      v-for="(subRect, subIndex) in getSubRectsa(rectIndex)"
+      :key="subIndex"
+      :style="subRectStylea(rectIndex, subIndex)"
+    ></div>
+    </div>
+    </div>
+  <div v-show="cell3" style="width: 170px;height: 53px;position: relative;top:72px;left: 525px;">
+    <div v-for="(rect, rectIndex) in adjustedRectsb" :key="rect.id" :style="rectStyleb(rect, rectIndex)">
+    <div
+      v-for="(subRect, subIndex) in getSubRectsb(rectIndex)"
+      :key="subIndex"
+      :style="subRectStyleb(rectIndex, subIndex)"
+    ></div>
+    </div>
+    </div>
+  <div v-show="cell4" style="width: 170px;height: 53px;position: relative;top:77px;left: 525px;">
+    <div v-for="(rect, rectIndex) in adjustedRectsc" :key="rect.id" :style="rectStylec(rect, rectIndex)">
+    <div
+      v-for="(subRect, subIndex) in getSubRectsc(rectIndex)"
+      :key="subIndex"
+      :style="subRectStylec(rectIndex, subIndex)"
+    ></div>
+    </div>
+    </div>
+</div>
+</div>
+<el-card style="flex: 1;margin-left: 1220px;margin-top: -510px;">
+      <div style="width: 100%; height: calc(100% - 35px); overflow-y: auto;max-height: 420px;">
+       <el-table height="420px" ref="table" border 
+       :data="tableDatass" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+         <el-table-column fixed prop="engineerId" align="center" :label="$t('Mounting.project')" min-width="100" />
+         <el-table-column prop="countTemp" align="center" :label="$t('searchOrder.totalfurnaces')" min-width="68" />
+         <el-table-column prop="fullTemp" align="center" :label="$t('searchOrder.furnaces')" min-width="82" />
+         <el-table-column prop="countGlass" align="center" :label="$t('searchOrder.cagesnumber')" min-width="82" />
+         <el-table-column prop="area" align="center" :label="$t('large.are')" min-width="70" />
+         <el-table-column prop="countSlot" align="center" :label="$t('searchOrder.slotnumber')" min-width="96" />
+         <el-table-column prop="percent" align="center" :label="$t('searchOrder.progress')" min-width="80" />
+       </el-table>
+       </div>
+    </el-card>
+
+  </div>
+  <el-dialog v-model="add" top="10vh" width="70%" :title="$t('searchOrder.addcage')" >
+    <div style="margin-bottom: 20px">
+      <el-form>
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="4">
+              <div id="dt" style="font-size: 15px;">
+              <el-form-item :label="$t('searchOrder.tida')"  style="width: 14vw">
+                {{ currentRow.deviceId }}
+              </el-form-item>
+              </div>
+          </el-col>
+          <el-col :span="5">
+            <div id="dta" style="font-size: 15px;">
+          <el-form-item :label="$t('searchOrder.gridnumbera')" style="width: 14vw">
+                {{ currentRow.slot }}
+              </el-form-item>
+              </div>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+      <div style="margin-top: -20px;margin-bottom: 40px;margin-left: 30px">
+          <el-input v-model="glassId"   :placeholder="$t('searchOrder.inputid')" clearable style="width: 200px;">
+          </el-input>
+          <el-button type="primary" plain style="margin-left: 10px;" @click="searchout">{{ $t('searchOrder.search') }}</el-button>
+    </div>
+    <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;">
+        <el-table height="100%" ref="table"
+        :data="tableDataf" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="120" />
+          <el-table-column prop="sequence" align="center" :label="$t('searchOrder.pieceingrid')" min-width="180" />
+          <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.cardnumber')" min-width="150" />
+          <el-table-column prop="glassType" align="center" :label="$t('searchOrder.typeglass')" min-width="150"/>
+          <el-table-column prop="width" align="center" :label="$t('searchOrder.width')" min-width="150"/>
+          <el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="150"/>
+          <el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="150"/>
+          <el-table-column prop="temperingLayoutId" align="center" :label="$t('searchOrder.layoutID')" min-width="150"/>
+          <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" min-width="150"/>
+          <el-table-column
+          align="center"
+            :label="$t('searchOrder.startstatus')"
+            min-width="80"
+            prop="state"
+          >
+          <template #default="scope">  
+          <el-tag  
+            :type="scope.row.state === 1 ? 'success' : 'danger'"  
+          >  
+          {{ scope.row.state === 1 ? $t('searchOrder.enable') : $t('searchOrder.disable') }}
+          </el-tag>  
+        </template> 
+          </el-table-column>
+          <el-table-column prop="gap" align="center" :label="$t('searchOrder.glassgaps')" min-width="150"/>
+          <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center" width="150">
+            <template #default="scope">
+              <el-button type="text" plain @click="finisha(scope.row)">{{ $t('searchOrder.sureadd') }}</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+  </el-dialog>
+<el-dialog v-model="dialogFormVisiblea" top="2vh" width="95%" :title="$t('searchOrder.cageinformation')">
+  <div style="display: flex;">
+    <el-input v-model="flowCardId" clearable style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('searchOrder.incardnumber')" />
+    <el-input v-model="filmsId" clearable style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('film.infilms')"/>
+    <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="fetchxianga">
+      {{$t('reportmanage.inquire')}}</el-button>
+  </div>
+    <el-table  
+          :data="tableDataa" 
+          @row-click="handleRowClick" 
+          height="700"
+          @expand-change="handleExpandChange"  
+          row-key="id" 
+          default-expand-all
+          :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" 
+        >  
+          <el-table-column type="expand">  
+            <template #default="props">  
+              <div v-if="props.row.bigStorageCageDetails && props.row.bigStorageCageDetails.length">  
+                <el-table  
+                  :data="props.row.bigStorageCageDetails"  
+                  border
+                  style="width: 98%;margin-left: 20px;"  
+                  row-key="id"  
+                  :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" 
+                >  
+          <!-- <el-table-column prop="menuName" label="浜岀骇鑿滃崟鏍�" align="center" min-width="140" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"/>   -->
+          <el-table-column prop="glassId" :label="$t('searchOrder.glassID')" align="center" min-width="120"/>
+          <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.cardnumber')" min-width="130" />
+          <el-table-column prop="filmsId" align="center" :label="$t('searchOrder.coatingtypes')" min-width="80" />
+          <!-- <el-table-column prop="glassType" align="center" :label="$t('searchOrder.typeglass')" min-width="80" /> -->
+          <el-table-column prop="width" align="center" :label="$t('searchOrder.width')" min-width="80" />
+          <el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="80" />
+          <el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="80" />
+          <el-table-column prop="temperingLayoutId" align="center" :label="$t('searchOrder.layoutID')" min-width="100" />
+          <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" min-width="120" />
+          <el-table-column
+            align="center"
+            :label="$t('searchOrder.startstatus')"
+            min-width="80"
+            prop="state"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusType(scope.row.state)">  
+          {{ getStatusText(scope.row.state) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column prop="gap" align="center" :label="$t('searchOrder.glassgaps')" min-width="80" />
+           <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center"  min-width="220">
+            <template #default="scope">
+              <el-button type="text" plain @click="broke(scope.row)">{{ $t('searchOrder.breakage') }}</el-button>
+              <el-button type="text" plain @click="brokec(scope.row)">{{ $t('searchOrder.takeout') }}</el-button>
+              <el-button type="text" plain @click="opena(scope.row)">{{ $t('searchOrder.delete') }}</el-button>
+              <el-button type="text" 
+              :disabled="!((props.row.bigStorageCageDetails[0].state !== 102 && scope.$index == 0 ) || (props.row.bigStorageCageDetails[(scope.$index - 1)<0?0:scope.$index-1].state==102)&&(scope.row.state!=102))"
+               plain @click="outfil(scope.row)">
+               {{ $t('searchOrder.outfilm') }}
+              </el-button>
+            </template>
+        </el-table-column>
+                </el-table>
+              </div>  
+            </template>  
+          </el-table-column>  
+          <el-table-column prop="id" :label="$t('searchOrder.cagetableID')" align="center" min-width="90"/>  
+          <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.cagenumber')" min-width="100" />
+          <el-table-column prop="slot" align="center" :label="$t('searchOrder.gridnumber')" min-width="150" />
+          <el-table-column
+          align="center"
+            :label="$t('searchOrder.startstatus')"
+            min-width="80"
+            prop="enableState"
+          >
+          <template #default="scope">  
+          <el-tag  
+            :type="scope.row.enableState === 1 ? 'success' : 'danger'"  
+            @click="toggleEnableState(scope.row)"  
+          >  
+            {{ scope.row.enableState === 1 ? $t('searchOrder.enable') : $t('searchOrder.disable')}}  
+          </el-tag>  
+        </template> 
+          </el-table-column>
+          <el-table-column prop="remainWidth" align="center" :label="$t('searchOrder.remainingwidth')" min-width="120" />
+          
+       <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center">
+            <template #default="scope">
+              <el-button type="text" plain  @click="handleBindRack(scope.row)">{{ $t('searchOrder.add') }}</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+        <div>
+    <!-- <div style="margin-top: 20px;margin-left: 40%;">
+      <el-pagination
+          background
+          size="large"
+          layout="prev, pager, next"
+          :total="40"
+          :current-page.sync="currentPage2"
+          @current-change="handlePageChange2"
+        />
+    </div> -->
+  </div>
+  </el-dialog>
+<!-- 鍘嗗彶浠诲姟 -->
+<el-dialog v-model="blindb" top="5vh" width="95%" @close="iframeUrl=''">
+     <iframe 
+     :src="iframeUrl" 
+     marginwidth="2000px"
+     marginheight="2000px"
+     width="100%" 
+     height="750px" 
+     frameborder="0"
+     ></iframe>
+  </el-dialog>
+<!-- 閽㈠寲鏌ヨ -->
+<el-dialog v-model="dialogFormVisiblec" top="5vh" width="85%" :title="$t('searchOrder.temperingqueries')">
+  <div style="margin-bottom: 20px">
+      <el-form>
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="2">
+              <div id="dt" style="font-size: 15px;">
+              <el-form-item :label="$t('searchOrder.temperingtotal')"  style="width: 14vw">
+                {{ temperingtotal }}
+              </el-form-item>
+              </div>
+          </el-col>
+          <el-col :span="5">
+            <div id="dta" style="font-size: 15px;">
+          <el-form-item :label="$t('searchOrder.glasstotal')" style="width: 14vw">
+                {{ glasstotal }}
+              </el-form-item>
+              </div>
+          </el-col>
+          <el-col :span="4">
+              <div id="dt" style="font-size: 15px;">
+              <el-form-item :label="$t('searchOrder.fullfurnaces')" style="width: 14vw">
+                {{ fulltotals }}
+              </el-form-item>
+              </div>
+          </el-col>
+          <el-col :span="4">
+              <div id="dt" style="font-size: 15px;">
+              <el-form-item :label="$t('searchOrder.specifiedproject')" style="width: 14vw">
+                {{ temperingengineerId }}
+              </el-form-item>
+              </div>
+          </el-col>
+          <el-col :span="4">
+              <div id="dt" style="font-size: 15px;">
+                <el-button type="text" plain @click="broked()">{{ $t('searchOrder.undesignate') }}</el-button>
+              </div>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+    <el-table  ref="table" style="margin-top: 20px;height: 500px;"
+        :data="tableDatagh" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="engineerId" fixed align="center" :label="$t('searchOrder.projectnumber')" min-width="150"/>
+          <el-table-column prop="thickness" align="center" :label="$t('basicData.thickness')" min-width="150" />
+          <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="150" />
+          <el-table-column prop="temperingLayoutId" align="center" :label="$t('searchOrder.layoutnumber')" min-width="120" />
+          <el-table-column prop="totalCount" align="center" :label="$t('searchOrder.allnumber')" min-width="150" />
+          <el-table-column prop="realCount" align="center" :label="$t('searchOrder.numbercages')" min-width="150" />
+          <el-table-column prop="lackCount" align="center" :label="$t('searchOrder.missingquantity')" min-width="150" />
+          <el-table-column prop="damageCount" align="center" :label="$t('searchOrder.breakquantity')" min-width="150" />
+          <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center" width="500">
+            <template #default="scope">
+              <el-button type="text" plain @click="brokee(scope.row,1)">{{ $t('searchOrder.specifytempering') }}</el-button>
+              <el-button type="text" plain @click="brokee(scope.row,0)">{{ $t('searchOrder.specifyout') }}</el-button>
+              <el-button type="text" plain @click="brokek(scope.row)">{{ $t('searchOrder.specifyengineerid') }}</el-button>
+              <el-button type="text" plain @click="handlelack(scope.row)">{{ $t('searchOrder.lacknumber') }}</el-button>
+              <el-button type="text" plain @click="handlecagedetails(scope.row)">{{ $t('searchOrder.cagedetails') }}</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+</el-dialog>
+<el-dialog v-model="dialogFormVisibled" top="5vh" width="85%" :title="$t('hellow.missingnumber')">
+    <el-table  ref="table" style="margin-top: 20px;height: 600px;"
+        :data="tableDatalack" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="engineerId" fixed align="center" :label="$t('searchOrder.projectnumber')" min-width="150"/>
+          <el-table-column prop="flowCardId" fixed align="center" :label="$t('searchOrder.cardnumber')" min-width="150" />
+          <el-table-column prop="glassId" fixed align="center" :label="$t('searchOrder.glassID')" min-width="150" />
+          <el-table-column prop="temperingLayoutId" fixed align="center" :label="$t('searchOrder.layoutID')" min-width="100" />
+          <el-table-column prop="temperingFeedSequence" fixed align="center" :label="$t('searchOrder.picturesequence')" min-width="120" />
+          <el-table-column prop="width" align="center" :label="$t('searchOrder.width')"  min-width="80" />
+          <el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="80" />
+          <el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="80" />
+          <el-table-column prop="filmsid" align="center" :label="$t('searchOrder.coatingtypes')" min-width="80" />
+          <el-table-column
+            align="center"
+            :label="$t('searchOrder.state')"
+            min-width="80"
+            prop="isDamage"
+          >
+            <template #default="scope">
+              <div 
+                @click="scope.row.isDamage === 1 ? null : broken(scope.row)"
+                style="position: relative; display: inline-block;"
+              >
+                <el-tag
+                  :type="scope.row.isDamage === 1 ? 'danger' : 'success'"
+                  style="pointer-events: {{ scope.row.isDamage === 1 ? 'none' : 'auto' }};"
+                >
+                  {{ scope.row.isDamage === 1 ? $t('searchOrder.breakage') : $t('searchOrder.breakagn') }}
+                </el-tag>
+                <div 
+                  v-if="scope.row.isDamage === 1"
+                  style="position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: transparent; z-index: 1;"
+                ></div>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column prop="layer" align="center" :label="$t('processCard.layer')" min-width="80" />
+          <el-table-column prop="xcoordinate" align="center" :label="$t('searchOrder.xcoordinates')" min-width="80" />
+          <el-table-column prop="ycoordinate" align="center" :label="$t('searchOrder.ycoordinates')" min-width="80" />
+        </el-table>
+</el-dialog>
+<el-dialog v-model="dialogFormVisiblee" top="5vh" width="85%" :title="$t('searchOrder.specifyengineerid')">
+    <el-table  ref="table" style="margin-top: 20px;height: 600px;"
+        :data="tableDataspecify" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="engineerId" fixed align="center" :label="$t('searchOrder.projectnumber')" min-width="150"/>
+          <el-table-column prop="flowCardId" fixed align="center" :label="$t('searchOrder.cardnumber')" min-width="150" />
+          <el-table-column prop="glassId" fixed align="center" :label="$t('searchOrder.glassID')" min-width="150" />
+          <el-table-column prop="temperingLayoutId" fixed align="center" :label="$t('searchOrder.layoutID')" min-width="100" />
+          <el-table-column prop="temperingFeedSequence" fixed align="center" :label="$t('searchOrder.picturesequence')" min-width="120" />
+          <el-table-column prop="width" align="center" :label="$t('searchOrder.width')"  min-width="80" />
+          <el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="80" />
+          <el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="80" />
+          <el-table-column prop="filmsid" align="center" :label="$t('searchOrder.coatingtypes')" min-width="80" />
+          <el-table-column
+            align="center"
+            :label="$t('searchOrder.state')"
+            min-width="80"
+            prop="isDamage"
+          >
+            <template #default="scope">
+              <div 
+                @click="scope.row.isDamage === 1 ? null : broken(scope.row)"
+                style="position: relative; display: inline-block;"
+              >
+                <el-tag
+                  :type="scope.row.isDamage === 1 ? 'danger' : 'success'"
+                  style="pointer-events: {{ scope.row.isDamage === 1 ? 'none' : 'auto' }};"
+                >
+                  {{ scope.row.isDamage === 1 ? $t('searchOrder.breakage') : $t('searchOrder.breakagn') }}
+                </el-tag>
+                <div 
+                  v-if="scope.row.isDamage === 1"
+                  style="position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: transparent; z-index: 1;"
+                ></div>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column prop="layer" align="center" :label="$t('processCard.layer')" min-width="80" />
+          <el-table-column prop="xcoordinate" align="center" :label="$t('searchOrder.xcoordinates')" min-width="80" />
+          <el-table-column prop="ycoordinate" align="center" :label="$t('searchOrder.ycoordinates')" min-width="80" />
+        </el-table>
+</el-dialog>
+<el-dialog v-model="dialogFormVisiblef" top="5vh" width="85%" :title="$t('searchOrder.cagedetails')">
+    <el-table  ref="table" style="margin-top: 20px;height: 600px;"
+        :data="tableDatacagedetails" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="engineerId" fixed align="center" :label="$t('searchOrder.projectnumber')" min-width="150"/>
+          <el-table-column prop="flowCardId" fixed align="center" :label="$t('searchOrder.cardnumber')" min-width="150" />
+          <el-table-column prop="glassId" fixed align="center" :label="$t('searchOrder.glassID')" min-width="150" />
+          <el-table-column prop="slot" fixed align="center" :label="$t('film.slot')" min-width="150" />
+          <el-table-column prop="temperingLayoutId" fixed align="center" :label="$t('searchOrder.layoutID')" min-width="100" />
+          <el-table-column prop="temperingFeedSequence" fixed align="center" :label="$t('searchOrder.picturesequence')" min-width="120" />
+          <el-table-column prop="width" align="center" :label="$t('searchOrder.width')"  min-width="80" />
+          <el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="80" />
+          <el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="80" />
+          <el-table-column prop="filmsId" align="center" :label="$t('searchOrder.coatingtypes')" min-width="80" />
+          <el-table-column
+            align="center"
+            :label="$t('searchOrder.state')"
+            min-width="80"
+            prop="isDamage"
+          >
+            <template #default="scope">
+              <div 
+                @click="scope.row.isDamage === 1 ? null : broken(scope.row)"
+                style="position: relative; display: inline-block;"
+              >
+                <el-tag
+                  :type="scope.row.isDamage === 1 ? 'danger' : 'success'"
+                  style="pointer-events: {{ scope.row.isDamage === 1 ? 'none' : 'auto' }};"
+                >
+                  {{ scope.row.isDamage === 1 ? $t('searchOrder.breakage') : $t('searchOrder.breakagn') }}
+                </el-tag>
+                <div 
+                  v-if="scope.row.isDamage === 1"
+                  style="position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: transparent; z-index: 1;"
+                ></div>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column prop="layer" align="center" :label="$t('processCard.layer')" min-width="80" />
+          <el-table-column prop="xcoordinate" align="center" :label="$t('searchOrder.xcoordinates')" min-width="80" />
+          <el-table-column prop="ycoordinate" align="center" :label="$t('searchOrder.ycoordinates')" min-width="80" />
+        </el-table>
+</el-dialog>
+<!-- 闈為挗鍖� -->
+<el-dialog v-model="dialogFormVisibles" top="5vh" width="85%" :title="$t('searchOrder.searchlayout')">
+  <el-table  ref="table" style="margin-top: 20px;height: 500px;"
+        :data="tableDatas" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="engineerId" fixed align="center" :label="$t('searchOrder.projectnumber')" min-width="150"/>
+          <el-table-column prop="thickness" align="center" :label="$t('basicData.thickness')" min-width="150" />
+          <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="150" />
+          <el-table-column prop="temperingLayoutId" fixed align="center" :label="$t('searchOrder.layoutnumber')" min-width="120" />
+          <el-table-column prop="totalCount" align="center" :label="$t('searchOrder.allnumber')" min-width="150" />
+          <el-table-column prop="realCount" align="center" :label="$t('searchOrder.numbercages')" min-width="150" />
+          <el-table-column prop="lackCount" align="center" :label="$t('searchOrder.missingquantity')" min-width="150" />
+          <el-table-column prop="damageCount" align="center" :label="$t('searchOrder.breakquantity')" min-width="150" />
+          <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center" width="500">
+            <template #default="scope">
+              <el-button type="text" plain @click="brokee(scope.row,1)">{{ $t('searchOrder.specifytempering') }}</el-button>
+              <el-button type="text" plain @click="brokee(scope.row,0)">{{ $t('searchOrder.specifyout') }}</el-button>
+              <el-button type="text" plain @click="brokek(scope.row)">{{ $t('searchOrder.specifyengineerid') }}</el-button>
+              <el-button type="text" plain @click="handlelack(scope.row)">{{ $t('hellow.missingnumber') }}</el-button>
+              <el-button type="text" plain @click="handlecagedetails(scope.row)">{{ $t('searchOrder.cagedetails') }}</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+    <!-- <el-table  ref="table" style="margin-top: 20px;height: 500px;"
+        :data="tableDatas" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="flow_card_id" fixed align="center" :label="$t('searchOrder.processcards')"/>
+          <el-table-column prop="layer" align="center" :label="$t('searchOrder.ceng')" />
+          <el-table-column prop="count" align="center" :label="$t('searchOrder.numberglasses')" />
+          <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center" >
+            <template #default="scope">
+              <el-button type="text" plain @click="brokes(scope.row)">{{ $t('searchOrder.processcard') }}</el-button>
+            </template>
+        </el-table-column>
+        </el-table> -->
+</el-dialog>
+</template>
+<style>
+#dt { display:block; float:left;line-height: 20px;margin-left: 150px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#awatch{
+  height: 450px;
+}
+#occupy {
+    height: 100%;
+    width: 15%;
+    background-color: white;
+    margin: 0px 8px 0px 8px;
+    border: 1px #EBEEF5 solid;
+    text-align: center;
+    padding: 5px;
+}
+#biao {
+    font-size: 12px;
+}
+#zhi {
+    font-size: 18px;
+    font-weight: bold;
+}
+#demo-pagination-block + #demo-pagination-block {
+  margin-top: 10px;
+}
+#demo-pagination-block #demonstration {
+  margin-bottom: 16px;
+}
+::-webkit-scrollbar {
+     width: 0 !important;
+   }
+   ::-webkit-scrollbar {
+     width: 0 !important;height: 0;
+   }
+   .img-list{
+  position:relative;
+}
+.data-img{
+  @apply float-none ;
+  width:100%;
+  height:16rem;
+  background: rgba(0, 0, 0, 0);
+  opacity: 1;
+  border-radius: 0.5rem 0.5rem 0px 0px;
+}
+.check-img{
+  position: absolute;
+  width: 3.3125rem;
+  height: 2.9375rem;
+  top:20rem;
+  right: 57rem;
+  z-index: 10;
+}
+.check-imga{
+  position: absolute;
+  width: 3.3125rem;
+  height: 2.9375rem;
+  top:15rem;
+  right: 28.5rem;
+  z-index: 10;
+}
+.vertical {
+    width: 45px;
+    height: 25px;
+    background-color: #409EFF;
+    top: 485px; /* 鍒濆浣嶇疆 */
+    left: 899px; /* 姘村钩灞呬腑 */
+    transform: translateX(-50%);
+    animation: move-vertical 6s infinite; /* 浠庝笂鍒颁笅鍔ㄧ敾锛屾寔缁�6绉掞紝鏃犻檺寰幆 */
+}
+@keyframes move-vertical {
+    0% {
+        top: 485px; /* 璧峰浣嶇疆 */
+    }
+    100% {
+        top: calc(100% - 210px); /* 浠庝笂鍒颁笅缁撴潫浣嶇疆 */
+    }
+}
+.img-dlpl{
+  margin-left: 20px;
+  margin-top: 0px;
+  background-image:url('../../assets/ganghuaqian.png');
+  background-repeat: no-repeat;
+  background-attachment: local;
+  min-height: 400px;
+  width: 1200px;
+  max-width: 100%;
+  background-size: 1200px 400px;
+  overflow: hidden;
+  position:relative
+}
+.img-car1{
+  display: flex;
+  background-image:url('../../assets/xiaoche.png');
+  position: absolute;
+  background-repeat: no-repeat;
+  background-attachment: local;
+  min-height: 200px;
+  width: 200px;
+  max-width: 100%;
+  background-size: 200px 70px;
+  overflow: hidden;
+  position:relative
+}
+.img-car4{
+  display: flex;
+  background-image:url('../../assets/xiaoche.png');
+  position: absolute;
+  background-repeat: no-repeat;
+  background-attachment: local;
+  min-height: 200px;
+  width: 200px;
+  max-width: 100%;
+  background-size: 200px 70px;
+  overflow: hidden;
+  position:relative
+}
+.table-container {
+  display: flex;
+  flex-wrap: nowrap; /* 闃叉鎹㈣ */
+  justify-content: space-between; /* 鏍规嵁闇�瑕佽皟鏁村瓙鍏冪礌涔嬮棿鐨勯棿璺� */
+}
+.table-container > el-card {
+  flex: 1; /* 浣夸袱涓崱鐗囧钩鍒嗗彲鐢ㄧ┖闂� */
+  margin-bottom: 10px; /* 鍙�夛紝鏍规嵁闇�瑕佹坊鍔犲簳閮ㄩ棿璺� */
+}
+#dotClass {
+  display: flex;
+  margin-left: 20px; 
+  size: 50px;
+  margin-top: 20px;
+  margin-bottom: 10px;
+}
+.row-red-background {
+  background-color: #CDAF95 !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Slicecage/slicecagehistory.vue b/UI-Project/src/views/Slicecage/slicecagehistory.vue
new file mode 100644
index 0000000..51a439a
--- /dev/null
+++ b/UI-Project/src/views/Slicecage/slicecagehistory.vue
@@ -0,0 +1,535 @@
+<template>  
+    <div>  
+  <div style="display: flex;width: 1770px;">
+    <el-input v-model="glassId" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('searchOrder.inglassID')" />
+    <el-input v-model="startSlot" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" @input="handleInputa" :placeholder="$t('film.originateslot')" />
+    <el-input v-model="targetSlot" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" @input="handleInputb" :placeholder="$t('film.endoriginateslot')" />
+          <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('searchOrder.taskstatus')" clearable
+          style="width: 200px;margin-left: 10px;">
+          <el-option :label="$t('searchOrder.begin')" value="0"></el-option>
+          <el-option :label="$t('searchOrder.finish')" value="2"></el-option>
+          <el-option :label="$t('order.dilapidation')" value="3"></el-option>
+          <el-option :label="$t('searchOrder.uncar')" value="4"></el-option>
+        </el-select>
+        <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('film.enabletype')" clearable
+          style="width: 200px;margin-left: 10px;">
+          <el-option :label="$t('searchOrder.inkage')" value="1"></el-option>
+          <el-option :label="$t('searchOrder.outfilm')" value="2"></el-option>
+          <el-option :label="$t('film.dispatch')" value="3"></el-option>
+        </el-select>
+        <el-date-picker
+            style="margin-left: 15px;"
+             v-model="timeRange"
+             type="datetimerange"
+             :shortcuts="shortcuts"
+             range-separator="鑷�"
+             :start-placeholder="$t('reportmanage.starttime')"
+             :end-placeholder="$t('reportmanage.endtime')"
+           />
+          <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="handleClick()">{{$t('reportmanage.inquire')}}</el-button>
+     </div>
+     <div style="margin-bottom: 10px;margin-top: 20px;margin-left: 20px;">
+      <el-form>
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="4">
+              <div id="dt" style="font-size: 15px;">
+              <el-form-item :label="$t('hellow.countIn')"  style="width: 14vw">
+                {{ countIn }}
+              </el-form-item>
+              </div>
+          </el-col>
+          <el-col :span="5">
+              <div id="dt" style="font-size: 15px;">
+              <el-form-item :label="$t('hellow.totalAreaIn')" style="width: 14vw">
+                {{ totalAreaIn }}
+              </el-form-item>
+              </div>
+          </el-col>
+          <el-col :span="5">
+            <div id="dta" style="font-size: 15px;">
+          <el-form-item :label="$t('hellow.countOut')" style="width: 14vw">
+                {{ countOut }}
+              </el-form-item>
+              </div>
+          </el-col>
+          <el-col :span="5">
+              <div id="dt" style="font-size: 15px;">
+              <el-form-item :label="$t('hellow.totalAreaOut')" style="width: 14vw">
+                {{ totalAreaOut }}
+              </el-form-item>
+              </div>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+        <el-table ref="table" style="margin-top: 20px;height: 580px;width: 1770px;" :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+      <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="80" />
+      <el-table-column prop="startSlot" align="center" :label="$t('film.originateslot')" min-width="80" />
+          <el-table-column prop="targetSlot" align="center" :label="$t('film.endoriginateslot')" min-width="80" />
+          <el-table-column
+            align="center"
+            :label="$t('film.taskstatus')"
+            min-width="80"
+            prop="taskState"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusTypeb(scope.row.taskState)">  
+          {{ getStatusTextb(scope.row.taskState) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column
+            align="center"
+            :label="$t('film.enabletype')"
+            min-width="80"
+            prop="taskType"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusTypea(scope.row.taskType)">  
+          {{ getStatusTexta(scope.row.taskType) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column prop="formattedCreateTime" align="center" :label="$t('reportmanage.starttime')" min-width="100" />
+          <el-table-column prop="formattedUpdateTime" align="center" :label="$t('reportmanage.endtime')" min-width="100" />
+        </el-table>
+  <div style="margin-top: 20px;margin-left: 40%;">
+        <el-pagination
+          v-model:current-page="currentPage2"
+          :page-size="pageSize"
+          :size="large"
+          :disabled="disabled"
+          layout="prev, pager, next, jumper"
+          :total="totalRecords"
+          @current-change="handlePageChange2"
+          style="margin-top: 10px;"
+      />
+    </div>
+  </div>
+  </template>  
+<script lang="ts" setup>
+import {useI18n} from 'vue-i18n'
+import {useRouter} from "vue-router"
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {ElMessage, ElMessageBox} from 'element-plus'
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+import { inject } from 'vue';
+const globalDate = inject('globalDate');
+const router = useRouter()
+const timeRange = ref([])
+const selectValuesa = reactive([]);
+const tableDatax = ref([])
+const currentPage2 = ref(1)
+const totalRecords = ref(0)
+const countIn = ref(0)
+const countOut = ref(0)
+const totalAreaIn = ref(0)
+const totalAreaOut = ref(0)
+const glassId = ref('');
+const startSlot = ref('');
+const targetSlot = ref('');
+let getglobalDate = window.localStorage.getItem('getglobalDate')
+const historical = async () => {
+  try {
+  let startTime = window.localStorage.getItem('startTime')
+      const response = await request.post("/cacheVerticalGlass/bigStorageCageHistoryTask/queryBigStorageCageHistoryTask", {
+        pageNo: 1,
+        pageSize: 20,
+        glassId: glassId.value,
+        startSlot: 0,
+        targetSlot: 0,
+        taskStateList: [],
+        taskTypeList: [],
+        beginDate: startTime,
+        endDate: getglobalDate
+    })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        const formattedData = response.data.records.map(record => ({
+        ...record,
+        formattedCreateTime: formatTimestamp(record.createTime),
+        formattedUpdateTime: formatTimestamp(record.updateTime),
+      }));
+        tableDatax.value = formattedData;
+        totalRecords.value = response.data.total/2 || 0
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+const Daily = async () => {
+  try {
+  let startTime = window.localStorage.getItem('startTime')
+      const response = await request.post("/cacheVerticalGlass/bigStorageCageHistoryTask/queryBigDailyProduction", {
+        pageNo: 1,
+        pageSize: 20,
+        glassId: glassId.value,
+        startSlot: 0,
+        targetSlot: 0,
+        taskStateList: [],
+        taskTypeList: [],
+        beginDate: startTime,
+        endDate: getglobalDate
+    })
+      if (response.code == 200) {
+        countIn.value = response.data.countIn
+        countOut.value = response.data.countOut
+        totalAreaIn.value = response.data.totalAreaIn
+        totalAreaOut.value = response.data.totalAreaOut
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+const handlePageChange2 = (newPage) => {
+  currentPage2.value = newPage;
+  window.localStorage.setItem('pagenumber', currentPage2.value)
+  historicala(currentPage2.value);
+  Dailya(currentPage2.value);
+}; 
+const historicala = async (page) => {
+  try { 
+  let celllist=[]
+  let stateList=[]
+  let pstartSlot= ''
+  let ptargetSlot=''
+  if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+    if(selectValuesa[0]!=""){
+      celllist=[selectValuesa[0]];
+    }
+  }
+  if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+    if(selectValuesa[1]!=""){
+      stateList=[selectValuesa[1]];
+    }
+  }
+  if(startSlot.value != ""){
+    pstartSlot = startSlot.value
+  }else{
+    pstartSlot = '0'
+  }
+  if(targetSlot.value != ""){
+    ptargetSlot = targetSlot.value
+  }else{
+    ptargetSlot = '0'
+  }
+  let page = window.localStorage.getItem('pagenumber')
+  let startTime = window.localStorage.getItem('startTime')
+      const response = await request.post("/cacheVerticalGlass/bigStorageCageHistoryTask/queryBigStorageCageHistoryTask", {
+        pageNo: page,
+        pageSize: 20,
+        glassId: glassId.value,
+        startSlot: pstartSlot,
+        targetSlot: ptargetSlot,
+        taskStateList: celllist,
+        taskTypeList: stateList,
+        beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+        endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+    })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        const formattedData = response.data.records.map(record => ({
+        ...record,
+        formattedCreateTime: formatTimestamp(record.createTime),
+        formattedUpdateTime: formatTimestamp(record.updateTime),
+      }));
+        tableDatax.value = formattedData;
+        totalRecords.value = response.data.total/2 || 0
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+const Dailya = async (page) => {
+  try { 
+  let celllist=[]
+  let stateList=[]
+  let pstartSlot= ''
+  let ptargetSlot=''
+  if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+    if(selectValuesa[0]!=""){
+      celllist=[selectValuesa[0]];
+    }
+  }
+  if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+    if(selectValuesa[1]!=""){
+      stateList=[selectValuesa[1]];
+    }
+  }
+  if(startSlot.value != ""){
+    pstartSlot = startSlot.value
+  }else{
+    pstartSlot = '0'
+  }
+  if(targetSlot.value != ""){
+    ptargetSlot = targetSlot.value
+  }else{
+    ptargetSlot = '0'
+  }
+  let page = window.localStorage.getItem('pagenumber')
+  let startTime = window.localStorage.getItem('startTime')
+      const response = await request.post("/cacheVerticalGlass/bigStorageCageHistoryTask/queryBigDailyProduction", {
+        pageNo: page,
+        pageSize: 20,
+        glassId: glassId.value,
+        startSlot: pstartSlot,
+        targetSlot: ptargetSlot,
+        taskStateList: celllist,
+        taskTypeList: stateList,
+        beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+        endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+    })
+      if (response.code == 200) {
+        countIn.value = response.data.countIn
+        countOut.value = response.data.countOut
+        totalAreaIn.value = response.data.totalAreaIn
+        totalAreaOut.value = response.data.totalAreaOut
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+const handleClick = async () => {
+  await sethistorical();
+  await Dailyhistorical();
+};
+// 鍘嗗彶鏌ヨ鐐瑰嚮
+const sethistorical = async () => {
+  try { 
+  let celllist=[]
+  let stateList=[]
+  let pstartSlot= ''
+  let ptargetSlot=''
+  if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+    if(selectValuesa[0]!=""){
+      celllist=[selectValuesa[0]];
+    }
+  }
+  if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+    if(selectValuesa[1]!=""){
+      stateList=[selectValuesa[1]];
+    }
+  }
+  if(startSlot.value != ""){
+    pstartSlot = startSlot.value
+  }else{
+    pstartSlot = '0'
+  }
+  if(targetSlot.value != ""){
+    ptargetSlot = targetSlot.value
+  }else{
+    ptargetSlot = '0'
+  }
+  const response = await request.post("/cacheVerticalGlass/bigStorageCageHistoryTask/queryBigStorageCageHistoryTask", {
+        pageNo: 1,
+        pageSize: 20,
+        glassId: glassId.value,
+        startSlot: pstartSlot,
+        targetSlot: ptargetSlot,
+        taskStateList: celllist,
+        taskTypeList: stateList,
+        beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+        endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+    })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        currentPage2.value = 1
+        totalRecords.value = response.data.total/2 || 0
+        const formattedData = response.data.records.map(record => ({
+        ...record,
+        formattedCreateTime: formatTimestamp(record.createTime),
+        formattedUpdateTime: formatTimestamp(record.updateTime),
+      }));
+        // tableDatax.value = response.data.records;
+        tableDatax.value = formattedData;
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+const Dailyhistorical = async () => {
+  try { 
+  let celllist=[]
+  let stateList=[]
+  let pstartSlot= ''
+  let ptargetSlot=''
+  if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+    if(selectValuesa[0]!=""){
+      celllist=[selectValuesa[0]];
+    }
+  }
+  if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+    if(selectValuesa[1]!=""){
+      stateList=[selectValuesa[1]];
+    }
+  }
+  if(startSlot.value != ""){
+    pstartSlot = startSlot.value
+  }else{
+    pstartSlot = '0'
+  }
+  if(targetSlot.value != ""){
+    ptargetSlot = targetSlot.value
+  }else{
+    ptargetSlot = '0'
+  }
+  const response = await request.post("/cacheVerticalGlass/bigStorageCageHistoryTask/queryBigDailyProduction", {
+        pageNo: 1,
+        pageSize: 20,
+        glassId: glassId.value,
+        startSlot: pstartSlot,
+        targetSlot: ptargetSlot,
+        taskStateList: celllist,
+        taskTypeList: stateList,
+        beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+        endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+    })
+      if (response.code == 200) {
+        countIn.value = response.data.countIn
+        countOut.value = response.data.countOut
+        totalAreaIn.value = response.data.totalAreaIn
+        totalAreaOut.value = response.data.totalAreaOut
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+const handleInputa = (value: string) => {
+  const isNumeric = /^\d*$/.test(value);
+  if (isNumeric) {
+    startSlot.value = value;
+  } else {
+    startSlot.value = '';
+  }
+};
+const handleInputb = (value: string) => {
+  const isNumeric = /^\d*$/.test(value);
+  if (isNumeric) {
+    targetSlot.value = value;
+  } else {
+    targetSlot.value = '';
+  }
+};
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp) {
+  const date = new Date(timestamp);
+  const year = date.getFullYear();
+  const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+  const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+  const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+const shortcuts = [
+  {
+    text: '鏈�杩戜竴鍛�',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setDate(oneWeekAgo.getDate() - 7)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+    },
+  },
+  {
+    text: '鏈�杩戜竴涓湀',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 1)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+    },
+  },
+  {
+    text: '鏈�杩戜笁涓湀',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 3)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+},
+  },
+]
+// 鏍煎紡鍖栧悗绔椂闂村苟璁$畻涓�鍛ㄥ墠鐨勬椂闂�
+const defaultTime = ref<[Date, Date]>([new Date(), new Date()]);
+function parseAndSetTime() {
+  const backendTime = new Date(getglobalDate);
+  const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 鍑忓幓7澶�
+  oneWeekAgo.setHours(0, 0, 0, 0);
+  timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+  window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+}
+function getStatusTypeb(state: number) {  
+  switch (state) {  
+    case 0:
+      return 'primary';  
+    case 2: 
+      return 'success';  
+    case 3: 
+      return 'danger';  
+    case 4: 
+      return 'warning';  
+  }  
+}
+function getStatusTextb(state: number) {
+  switch (state) {
+    case 0:  
+      return t('searchOrder.begin');
+    case 2:  
+      return t('searchOrder.finish');
+    case 3:  
+    return t('order.dilapidation');
+    case 4:  
+    return t('searchOrder.uncar');
+  }  
+}
+function getStatusTypea(ishorizontal: number) {  
+  switch (ishorizontal) {  
+    case 1: 
+      return 'primary';  
+    case 2: 
+      return 'success';  
+    case 3:
+      return 'warning';  
+  }  
+}  
+function getStatusTexta(ishorizontal: number) {
+  switch (ishorizontal) {
+    case 1:  
+      return t('searchOrder.inkage');
+    case 2:  
+    return t('searchOrder.outfilm');
+    case 3:  
+    return t('film.dispatch');
+  }  
+}
+onMounted(() => {
+  parseAndSetTime();
+  historical();
+  Daily()
+});
+  </script>
+  <style scoped>  
+  </style>
\ No newline at end of file
diff --git a/UI-Project/src/views/StockBasicData/Select.vue b/UI-Project/src/views/StockBasicData/Select.vue
new file mode 100644
index 0000000..06fecfb
--- /dev/null
+++ b/UI-Project/src/views/StockBasicData/Select.vue
@@ -0,0 +1,38 @@
+<script setup>
+import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
+import {useRouter} from "vue-router";
+let indexFlag=$ref(1)
+function changeRouter(index){
+  indexFlag=index
+}
+</script>
+<template>
+    <div id="main-body">
+      <router-view  />
+    </div>
+</template>
+<style scoped>
+#main-div{
+  width: 100%;
+  height: 100%;
+}
+#div-title{
+  height: 2%;
+  width: 100%;
+}
+#searchButton{
+  margin-top: -5px;
+  margin-left: 1rem;
+}
+#main-body{
+  width: 100%;
+  height: 95%;
+  /* margin-top: 1%; */
+}
+#select{
+  margin-left:0.5rem;
+}
+:deep(.indexTag .el-breadcrumb__inner){
+  color: #5CADFE !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/StockBasicData/stockBasicData.vue b/UI-Project/src/views/StockBasicData/stockBasicData.vue
new file mode 100644
index 0000000..2747e44
--- /dev/null
+++ b/UI-Project/src/views/StockBasicData/stockBasicData.vue
@@ -0,0 +1,260 @@
+<script setup>
+import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
+import {useRouter} from "vue-router"
+import {host, WebSocketHost} from '@/utils/constants'
+import request from "@/utils/request"
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {ElMessage, ElMessageBox} from 'element-plus'
+import {useI18n} from 'vue-i18n'
+const router = useRouter()
+const adda = ref(false)
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const tableData = ref([])
+const blindb = ref(false)
+const slot = ref('')
+const requestData = {
+  line: 2001
+};
+const timeRange = ref([])
+const selectValuesa = reactive([]);
+// 纾ㄨ竟浠诲姟鏌ヨ
+const setEdgGlassInfoRequest = async () => {
+  let celllist=[]
+  let stateList=[]
+  if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+    if(selectValuesa[0]!=""){
+      celllist=[selectValuesa[0]];
+    }
+  }
+  if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+    if(selectValuesa[1]!=""){
+      stateList=[selectValuesa[1]];
+    }
+  }
+  const response = await request.post("/cacheGlass/edgGlassTaskInfo/setEdgGlassInfoRequest", {
+    cellList: celllist,
+    stateList: stateList,
+    beginDate: timeRange.value[0],
+    endDate: timeRange.value[1],
+  })
+  if (response.code === 200) {
+    ElMessage.success(response.message);
+  } else {
+    ElMessage.error(response.message);
+  }
+}
+// 鐮存崯
+ const open = async(row) => { 
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('workOrder.messagedamaged'), 
+      t('workOrder.prompt'),  
+      {  
+        confirmButtonText: t('workOrder.yes'), 
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',  
+      } 
+    );
+    if (confirmResult === 'confirm') {
+      const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", {
+        glassId: row.glassId,
+        state: 8,
+        line: row.line,
+        workingProcedure: '纾ㄨ竟',
+    })
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {
+  }  
+};  
+// 鎷胯蛋 
+ const opena = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('workOrder.takemessage'), 
+      t('workOrder.prompt'),  
+      {  
+        confirmButtonText: t('workOrder.yes'), 
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',  
+      } 
+    );
+    if (confirmResult === 'confirm') {
+      const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", {
+        glassId: row.glassId,
+        state: 9,
+        line: row.line,
+        workingProcedure: '纾ㄨ竟',
+    })
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {
+  }  
+};   
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/edgTasks`;
+const handleMessage = (data) => {
+  const formattedTasks = data.edgTasks[0].map(cageInfo => {
+    if (cageInfo && cageInfo.createTime) {
+      cageInfo.formattedCreateTime = formatTimestamp(cageInfo.createTime);
+    }
+    return cageInfo;
+  });
+  tableData.value = formattedTasks
+};
+// 鍘嗗彶浠诲姟
+const iframeUrl = ref('');
+const handlehistorical = (row) => {
+  blindb.value = true;
+  iframeUrl.value = `${window.location.origin}/#/StockBasicData/stockhistory`;
+};
+onMounted(() => {
+  socket = initializeWebSocket(socketUrl, handleMessage);
+});
+  onUnmounted(() => {
+    if (socket) {
+      closeWebSocket(socket);
+    }
+  });
+  function getStatusTypeb(state) {
+  switch (state) {
+    case 0:
+      return 'info';
+    case 1:
+      return 'success';
+    case 1:
+      return 'danger';
+  }
+}
+function getStatusTextb(state) {
+  switch (state) {
+    case 0:
+      return t('workOrder.nedging');
+    case 1:
+      return t('workOrder.edging');
+    case 2:
+      return t('workOrder.finedging');
+  }
+}
+function formatTimestamp(timestamp) {
+  const date = new Date(timestamp);
+  const year = date.getFullYear();
+  const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+  const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+  const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+onBeforeUnmount(() => {
+  closeWebSocket();
+});
+</script>
+<template>
+  <div style="height: 500px;">
+    <div>
+      <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" >
+        <div style="display: flex;">
+        <!-- <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handlehistorical">{{
+          $t('searchOrder.historicaltasks')
+        }}
+      </el-button> -->
+        <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('workOrder.cway')" clearable
+                   style="margin-left: 20px;margin-bottom: 10px;">
+          <el-option :label="$t('workOrder.edgingone')" value="930"></el-option>
+          <el-option :label="$t('workOrder.edgingtwo')" value="931"></el-option>
+        </el-select>
+        <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('workOrder.cstate')" clearable
+                   style="margin-left: 20px;margin-bottom: 10px;">
+          <el-option :label="$t('workOrder.nedging')" value="0"></el-option>
+          <el-option :label="$t('workOrder.edging')" value="1"></el-option>
+          <el-option :label="$t('workOrder.finedging')" value="2"></el-option>
+          </el-select>
+          <span class="demonstration" style="margin-left: 20px;margin-top: 3px;">{{ $t('workOrder.time') }}</span>
+            <el-date-picker v-model="timeRange" type="datetimerange" range-separator="鑷�" :start-placeholder="$t('reportmanage.starttime')"  style="margin-left: 15px;" value-format = "YYYY-MM-DD hh:mm:ss"
+              :end-placeholder="$t('reportmanage.endtime')">
+            </el-date-picker>
+          <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="setEdgGlassInfoRequest()">{{
+        $t('reportmanage.inquire')
+      }}</el-button>
+      </div>
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+        <el-table height="750" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+        <el-table-column prop="glassId" align="center" :label="$t('workOrder.glassID')" min-width="180" />
+          <el-table-column prop="width" align="center" :label="$t('workOrder.width')" min-width="120" />
+          <el-table-column prop="height" align="center" :label="$t('workOrder.height')" min-width="80" />
+          <el-table-column prop="thickness" align="center" :label="$t('workOrder.thickness')" min-width="120" />
+          <el-table-column prop="filmsid" align="center" :label="$t('workOrder.glasstype')" min-width="120" />
+          <el-table-column prop="line" align="center" :label="$t('workOrder.line')" min-width="120" />
+          <el-table-column prop="formattedCreateTime" align="center" :label="$t('workOrder.time')" min-width="120" />
+          <el-table-column prop="state" :label="$t('workOrder.status')" align="center" width="200">
+            <!-- <template #default="scope">
+              {{ scope.row.status==0?"鏈(杈�":scope.row.status==1?"纾ㄨ竟涓�":"宸茬(杈�" }}
+            </template> -->
+            <template #default="scope">  
+        <el-tag :type="getStatusTypeb(scope.row.state)">  
+          {{ getStatusTextb(scope.row.state) }}  
+        </el-tag>  
+      </template> 
+        </el-table-column>
+          <el-table-column fixed="right" :label="$t('workOrder.operate')" align="center" width="200">
+            <template #default="scope">
+              <el-button type="text" plain @click="open(scope.row)">{{
+                  $t('workOrder.breakage')
+                }}
+              </el-button>
+              <el-button type="text" plain @click="opena(scope.row)">{{
+                  $t('workOrder.takeout')
+                }}
+              </el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      </el-card>
+    </div>
+  <!-- 鍘嗗彶浠诲姟 -->
+<el-dialog v-model="blindb" top="10vh" width="95%" @close="iframeUrl=''">
+     <iframe 
+     :src="iframeUrl" 
+     marginwidth="2000px"
+     marginheight="2000px"
+     width="100%" 
+     height="700px" 
+     frameborder="0"
+     ></iframe>
+  </el-dialog>
+  </div>
+</template>
+<style scoped>
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#awatch{
+  height: 460px;
+  /* margin-top: -60px; */
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue b/UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue
new file mode 100644
index 0000000..601fd1f
--- /dev/null
+++ b/UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue
@@ -0,0 +1,136 @@
+<script setup>
+import {onBeforeUnmount, onMounted, onUnmounted, ref} from "vue";
+import {useRouter} from "vue-router"
+import {host, WebSocketHost} from '@/utils/constants'
+import request from "@/utils/request"
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {ElMessage, ElMessageBox} from 'element-plus'
+import {useI18n} from 'vue-i18n'
+const router = useRouter()
+const adda = ref(false)
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const tableData = ref([])
+const slot = ref('')
+const requestData = {
+  line: 2002
+};
+// 鐮存崯
+ const open = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('workOrder.messagedamaged'), 
+      t('workOrder.prompt'),  
+      {  
+        confirmButtonText: t('workOrder.yes'), 
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',  
+      } 
+    );
+    if (confirmResult === 'confirm') {
+      const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", {
+        glassId: row.glass_id,
+        controlsId: 8,
+        line: 2002,
+        machine: '鍐峰姞宸�',
+    })
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {
+    console.error('鍙戠敓閿欒:', error);  
+  }  
+};  
+// 鎷胯蛋 
+ const opena = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('workOrder.takemessage'), 
+      t('workOrder.prompt'),  
+      {  
+        confirmButtonText: t('workOrder.yes'), 
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',  
+      } 
+    );
+    if (confirmResult === 'confirm') {
+      const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", {
+        glassId: row.glass_id,
+        controlsId: 9,
+        line: 2002,
+        machine: '鍐峰姞宸�',
+    })
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {  
+    console.error('鍙戠敓閿欒:', error);  
+  }  
+};   
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlass`;
+const handleMessage = (data) => {
+  tableData.value = data.EdgTasks2[0]
+};
+onMounted(() => {
+  socket = initializeWebSocket(socketUrl, handleMessage);
+});
+  onUnmounted(() => {
+    if (socket) {
+    closeWebSocket(socket);
+    }
+    });
+onBeforeUnmount(() => {
+  closeWebSocket();
+});
+</script>
+<template>
+  <div style="height: 500px;">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" >
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+        <el-table height="750" ref="table"
+             @selection-change="handleSelectionChange"
+             :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="glass_id" align="center" :label="$t('workOrder.glassID')" min-width="180"/>
+          <el-table-column prop="width" align="center" :label="$t('workOrder.width')" min-width="120"/>
+          <el-table-column prop="height" align="center" :label="$t('workOrder.height')" min-width="80"/>
+          <el-table-column prop="thickness" align="center" :label="$t('workOrder.thickness')" min-width="120"/>
+          <el-table-column prop="glass_type" align="center" :label="$t('workOrder.glasstype')" min-width="120"/>
+          <el-table-column fixed="right" :label="$t('workOrder.operate')" align="center" width="200">
+            <template #default="scope">
+              <el-button type="text" plain @click="open(scope.row)">{{ $t('workOrder.breakage') }}</el-button>
+              <el-button type="text" plain @click="opena(scope.row)">{{ $t('workOrder.takeout') }}</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+  </div>
+</template>
+<style scoped>
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#awatch{
+  height: 460px;
+  /* margin-top: -60px; */
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/StockBasicData/stockBasicyiwu.vue b/UI-Project/src/views/StockBasicData/stockBasicyiwu.vue
new file mode 100644
index 0000000..e6b409e
--- /dev/null
+++ b/UI-Project/src/views/StockBasicData/stockBasicyiwu.vue
@@ -0,0 +1,306 @@
+<script setup>
+import { onBeforeUnmount, onMounted, onUnmounted, reactive, ref } from 'vue'
+import { useRouter } from 'vue-router'
+import { host, WebSocketHost } from '@/utils/constants'
+import request from '@/utils/request'
+import { closeWebSocket, initializeWebSocket } from '@/utils/WebSocketService'
+// import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+//  import LanguageMixin from './lang/LanguageMixin'
+import { useI18n } from 'vue-i18n'
+
+const router = useRouter()
+const adda = ref(false)
+const { t } = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+
+const tableData = ref([])
+const slot = ref('')
+const requestData = {
+  line: 1,
+}
+const timeRange = ref([])
+const selectValuesa = reactive([])
+// request.post("/cacheGlass/taskCache/selectEdgTask",{
+//   ...requestData,
+
+// }).then((res) => {
+//           if (res.code == 200) {
+
+//           console.log(res.data);
+//           tableData.value = res.data
+//           console.log(res.data[0].slot);
+//           } else {
+//           ElMessage.warning(res.msg)
+
+//           }
+//           });
+
+// 纾ㄨ竟浠诲姟鏌ヨ
+const setEdgGlassInfoRequest = async () => {
+  let celllist = []
+  let stateList = []
+  if (selectValuesa[0] != null && selectValuesa[0] != 'undefined') {
+    if (selectValuesa[0] != '') {
+      celllist = [selectValuesa[0]]
+    }
+  }
+  if (selectValuesa[1] != null && selectValuesa[1] != 'undefined') {
+    if (selectValuesa[1] != '') {
+      stateList = [selectValuesa[1]]
+    }
+  }
+  const response = await request.post(
+    '/cacheGlass/edgGlassTaskInfo/setEdgGlassInfoRequest',
+    {
+      cellList: celllist,
+      stateList: stateList,
+      beginDate: timeRange.value[0],
+      endDate: timeRange.value[1],
+    }
+  )
+  if (response.code === 200) {
+    ElMessage.success(response.message)
+  } else {
+    ElMessage.error(response.message)
+  }
+}
+
+// 鐮存崯
+const open = async (row) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('workOrder.messagedamaged'),
+      t('workOrder.prompt'),
+      {
+        confirmButtonText: t('workOrder.yes'),
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',
+      }
+    )
+    if (confirmResult === 'confirm') {
+      // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
+      const response = await request.post(
+        '/cacheGlass/edgStorageCage/edgReportStatus',
+        {
+          glassId: row.glassId,
+          state: 8,
+          line: row.line,
+          workingProcedure: '纾ㄨ竟',
+        }
+      )
+      if (response.code === 200) {
+        ElMessage.success(response.message)
+      } else {
+        // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛
+        ElMessage.error(response.msg)
+        // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message);
+      }
+    }
+  } catch (error) {
+    // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑
+    console.error('鍙戠敓閿欒:', error)
+  }
+}
+// 鎷胯蛋
+const opena = async (row) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('workOrder.takemessage'),
+      t('workOrder.prompt'),
+      {
+        confirmButtonText: t('workOrder.yes'),
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',
+      }
+    )
+    if (confirmResult === 'confirm') {
+      // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
+      const response = await request.post(
+        '/cacheGlass/edgStorageCage/edgReportStatus',
+        {
+          glassId: row.glassId,
+          state: 9,
+          line: row.line,
+          workingProcedure: '纾ㄨ竟',
+        }
+      )
+      if (response.code === 200) {
+        ElMessage.success(response.message)
+      } else {
+        // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛
+        ElMessage.error(response.msg)
+        // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message);
+      }
+    }
+  } catch (error) {
+    // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑
+    console.error('鍙戠敓閿欒:', error)
+  }
+}
+let socket = null
+const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/edgTasks`
+// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
+const handleMessage = (data) => {
+  // 鏇存柊 tableData 鐨勬暟鎹�
+  tableData.value = data.edgTasks[0]
+}
+onMounted(() => {
+  socket = initializeWebSocket(socketUrl, handleMessage)
+})
+onUnmounted(() => {
+  if (socket) {
+    closeWebSocket(socket)
+  }
+})
+onBeforeUnmount(() => {
+  closeWebSocket()
+})
+</script>
+<template>
+  <div style="height: 500px;">
+    <div>
+      <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;"
+               >
+        <el-select v-model="selectValuesa[0]"
+                   filterable
+                   :placeholder="$t('workOrder.cway')"
+                   clearable
+                   style="margin-left: 20px;margin-bottom: 10px;">
+          <el-option :label="$t('workOrder.edgingone')"
+                     value="1"></el-option>
+          <el-option :label="$t('workOrder.edgingtwo')"
+                     value="2"></el-option>
+        </el-select>
+
+        <el-select v-model="selectValuesa[1]"
+                   filterable
+                   :placeholder="$t('workOrder.cstate')"
+                   clearable
+                   style="margin-left: 20px;margin-bottom: 10px;">
+          <el-option :label="$t('workOrder.nedging')"
+                     value="0"></el-option>
+          <el-option :label="$t('workOrder.edging')"
+                     value="1"></el-option>
+          <el-option :label="$t('workOrder.finedging')"
+                     value="2"></el-option>
+        </el-select>
+        <span class="demonstration"
+              style="margin-left: 20px;margin-bottom: 10px;">{{ $t('workOrder.time') }}</span>
+        <el-date-picker v-model="timeRange"
+                        type="datetimerange"
+                        range-separator="鑷�"
+                        :start-placeholder="$t('reportmanage.starttime')"
+                        style="margin-left: 20px;margin-bottom: 10px;"
+                        value-format="YYYY-MM-DD hh:mm:ss"
+                        :end-placeholder="$t('reportmanage.endtime')">
+        </el-date-picker>
+        <el-button type="primary"
+                   style="margin-left: 10px;margin-bottom: 10px;"
+                   @click="setEdgGlassInfoRequest()">{{
+            $t('reportmanage.inquire')
+          }}
+        </el-button>
+
+        <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+          <el-table height="750"
+                    ref="table"
+                    @selection-change="handleSelectionChange"
+                    :data="tableData"
+                    :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+            <el-table-column prop="glassId"
+                             align="center"
+                             :label="$t('workOrder.glassID')"
+                             min-width="180" />
+            <el-table-column prop="width"
+                             align="center"
+                             :label="$t('workOrder.width')"
+                             min-width="120" />
+            <el-table-column prop="height"
+                             align="center"
+                             :label="$t('workOrder.height')"
+                             min-width="80" />
+            <el-table-column prop="thickness"
+                             align="center"
+                             :label="$t('workOrder.thickness')"
+                             min-width="120" />
+            <el-table-column prop="glassType"
+                             align="center"
+                             :label="$t('workOrder.glasstype')"
+                             min-width="120" />
+            <el-table-column prop="line"
+                             align="center"
+                             :label="$t('workOrder.line')"
+                             min-width="120" />
+            <el-table-column prop="status"
+                             :label="$t('workOrder.status')"
+                             align="center"
+                             width="200">
+              <template #default="scope">
+                {{ scope.row.status == 0 ? "鏈(杈�" : scope.row.status == 1 ? "纾ㄨ竟涓�" : "宸茬(杈�" }}
+              </template>
+            </el-table-column>
+
+            <el-table-column fixed="right"
+                             :label="$t('workOrder.operate')"
+                             align="center"
+                             width="200">
+              <template #default="scope">
+                <el-button
+                           type="text"
+                           plain
+                           @click="open(scope.row)">{{
+                    $t('workOrder.breakage')
+                  }}
+                </el-button>
+                <el-button
+                           type="text"
+                           plain
+                           @click="opena(scope.row)">{{
+                    $t('workOrder.takeout')
+                  }}
+                </el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </el-card>
+    </div>
+  </div>
+</template>
+
+<style scoped>
+#dt {
+  display: block;
+  float: left;
+  line-height: 20px;
+  margin-left: 100px;
+}
+
+#dta {
+  display: block;
+  float: left;
+  line-height: 20px;
+  margin-left: 80%;
+}
+
+#dialog-footer {
+  text-align: center;
+  margin-top: -15px;
+}
+
+#message {
+  text-align: center;
+  align-items: center;
+  color: black;
+  width: 200px;
+  height: 100px;
+  background-color: #337ecc;
+  margin-left: 28%;
+}
+
+#awatch {
+  height: 460px;
+  /* margin-top: -60px; */
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/StockBasicData/stockhistory.vue b/UI-Project/src/views/StockBasicData/stockhistory.vue
new file mode 100644
index 0000000..38fe996
--- /dev/null
+++ b/UI-Project/src/views/StockBasicData/stockhistory.vue
@@ -0,0 +1,271 @@
+<template>  
+    <div>  
+  <div style="display: flex;width: 1770px;">
+    <el-input v-model="glassId" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('searchOrder.inglassID')" />
+    <el-select 
+            :placeholder="$t('searchOrder.taskstatus')"
+             clearable
+             style="width: 270px;margin-left: 10px;"  
+             v-model="taskState">
+               <el-option
+                v-for="item in optionsa"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
+          </el-select>
+          <el-select 
+            :placeholder="$t('film.enabletype')"
+             clearable
+             style="width: 270px;margin-left: 10px;"  
+             v-model="taskType">
+               <el-option
+                v-for="item in optionsb"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
+          </el-select>
+            <el-date-picker v-model="timeRange" type="datetimerange" range-separator="鑷�" :start-placeholder="$t('reportmanage.starttime')" 
+             style="margin-left: 15px;" value-format = "YYYY-MM-DD hh:mm:ss"
+              :end-placeholder="$t('reportmanage.endtime')">
+            </el-date-picker>
+          <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="sethistorical()">{{$t('reportmanage.inquire')}}</el-button>
+     </div>
+        <el-table ref="table" style="margin-top: 20px;height: 580px;width: 1770px;" :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+      <el-table-column prop="glassIdIn" align="center" :label="$t('searchOrder.glassID')" min-width="80" />
+          <el-table-column
+            align="center"
+            :label="$t('film.taskstatus')"
+            min-width="80"
+            prop="taskState"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusTypeb(scope.row.taskState)">  
+          {{ getStatusTextb(scope.row.taskState) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column
+            align="center"
+            :label="$t('film.enabletype')"
+            min-width="80"
+            prop="taskType"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusTypea(scope.row.taskType)">  
+          {{ getStatusTexta(scope.row.taskType) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column prop="createTime" align="center" :label="$t('reportmanage.starttime')" min-width="100" />
+          <el-table-column prop="updateTime" align="center" :label="$t('reportmanage.endtime')" min-width="100" />
+        </el-table>
+  <div style="margin-top: 20px;margin-left: 40%;">
+        <el-pagination
+          v-model:current-page="currentPage2"
+          :page-size="pageSize"
+          :size="large"
+          :disabled="disabled"
+          layout="prev, pager, next, jumper"
+          :total="totalRecords"
+          @current-change="handlePageChange2"
+          style="margin-top: 10px;"
+      />
+    </div>
+  </div>
+  </template>  
+<script lang="ts" setup>
+import {useI18n} from 'vue-i18n'
+import {useRouter} from "vue-router"
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {ElMessage, ElMessageBox} from 'element-plus'
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+import { inject } from 'vue';
+const globalDate = inject('globalDate');
+const router = useRouter()
+const timeRange = ref([])
+const selectValuesa = reactive([]);
+const tableDatax = ref([])
+const currentPage2 = ref(1)
+const totalRecords = ref(0)
+const glassId = ref('');
+const startSlot = ref('');
+const targetSlot = ref('');
+const taskState = ref('');
+const taskType = ref('');
+let getglobalDate = window.localStorage.getItem('getglobalDate')
+const historical = async () => {
+  try {
+  let startTime = window.localStorage.getItem('startTime')
+      const response = await request.post("/cacheGlass/edgStorageDeviceTaskHistory", {
+        deviceId: 2,
+        pageNo: 1,
+        pageSize: 20,
+        glassId: glassId.value,
+        taskState: '',
+        taskType: '',
+        startTime: startTime,
+        endTime: getglobalDate
+    })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        tableDatax.value = response.data.records;
+        totalRecords.value = response.data.total/2 || 0
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    console.error(error);
+  }
+}
+const handlePageChange2 = (newPage) => {
+currentPage2.value = newPage;
+window.localStorage.setItem('pagenumber', currentPage2.value)
+historicala(currentPage2.value);
+};
+const historicala = async (page) => {
+  try { 
+  let page = window.localStorage.getItem('pagenumber')
+  let startTime = window.localStorage.getItem('startTime')
+      const response = await request.post("/cacheGlass/edgStorageDeviceTaskHistory", {
+        deviceId: 2,
+        pageNo: page,
+        pageSize: 20,
+        glassId: glassId.value,
+        taskState: taskState.value,
+        taskType: taskType.value,
+        startTime: (timeRange.value && timeRange.value[0]) || '',
+        endTime: (timeRange.value && timeRange.value[1]) || '',
+    })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        tableDatax.value = response.data.records;
+        totalRecords.value = response.data.total/2 || 0
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    console.error(error);
+  }
+}
+// 鍘嗗彶鏌ヨ鐐瑰嚮
+const sethistorical = async () => {
+  try { 
+  let startTime = window.localStorage.getItem('startTime')
+  let page = window.localStorage.getItem('pagenumber')
+  const response = await request.post("/cacheGlass/edgStorageDeviceTaskHistory", {
+        deviceId: 2,
+        pageNo: 1,
+        pageSize: 20,
+        glassId: glassId.value,
+        taskState: taskState.value,
+        taskType: taskType.value,
+        startTime: (timeRange.value && timeRange.value[0]) || '',
+        endTime: (timeRange.value && timeRange.value[1]) || '',
+    })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        tableDatax.value = response.data.records;
+        totalRecords.value = response.data.total/2 || 0
+      } else {
+        ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    console.error(error);
+  }
+}
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp) {
+  const date = new Date(timestamp);
+  const year = date.getFullYear();
+  const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+  const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+  const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+// 鏍煎紡鍖栧悗绔椂闂村苟璁$畻涓�鍛ㄥ墠鐨勬椂闂�
+const defaultTime = ref<[Date, Date]>([new Date(), new Date()]);
+function parseAndSetTime() {
+  const backendTime = new Date(getglobalDate);
+  const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 鍑忓幓7澶�
+  oneWeekAgo.setHours(0, 0, 0, 0);
+  timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+  window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+}
+function getStatusTypeb(taskState: number) {  
+  switch (taskState) {  
+    case 0:
+      return 'primary';  
+    case 1: 
+      return 'success';  
+  }  
+}
+function getStatusTextb(taskState: number) {
+  switch (taskState) {
+    case 0:  
+      return t('searchOrder.empty');
+    case 1:  
+      return t('searchOrder.endtask');
+  }  
+}
+function getStatusTypea(taskType: number) {  
+  switch (taskType) {  
+    case 1: 
+      return 'primary';  
+    case 2: 
+      return 'success';  
+    case 3:
+      return 'warning';  
+  }  
+}  
+function getStatusTexta(taskType: number) {
+  switch (taskType) {
+    case 1:  
+      return t('sorter.advancetask');
+    case 2:  
+    return t('sorter.outputtasks');
+    case 3:  
+    return t('sorter.straighttasks');
+  }  
+}
+const optionsa = [
+  {
+    value: 0,
+    label: t('searchOrder.empty'),
+  },
+  {
+    value: 1,
+    label: t('searchOrder.endtask'),
+  }
+]
+const optionsb = [
+  {
+    value: 1,
+    label: t('sorter.advancetask'),
+  },
+  {
+    value: 2,
+    label: t('sorter.outputtasks'),
+  },
+  {
+    value: 3,
+    label: t('sorter.straighttasks'),
+  }
+]
+onMounted(() => {
+  parseAndSetTime();
+  historical();
+});
+  </script>
+  <style scoped>  
+  </style>
\ No newline at end of file
diff --git a/UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue b/UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue
new file mode 100644
index 0000000..8e8194c
--- /dev/null
+++ b/UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue
@@ -0,0 +1,211 @@
+<!--  鐗╂枡璧勬枡  -->
+
+
+<script setup>
+import { ref } from "vue";
+import { ArrowLeftBold, ArrowRight, Search } from "@element-plus/icons-vue";
+import request from "@/utils/request";
+import deepClone from "@/utils/deepClone";
+import { ElMessage } from "element-plus";
+import { useRouter } from "vue-router";
+
+
+const router = useRouter()
+let indexFlag = $ref(1)
+function changeRouter(index) {
+  indexFlag = index
+}
+
+
+</script>
+
+<script>
+export default {
+  mounted() {
+    //鑾峰彇鏁版嵁
+    var data="ProcessId="+"P24032508";
+    request.get("/TidyUpGlassModule/SelectTerritoryInfo?"+data).then((res) => {
+      if (res.code == 200) {
+        var StoveCount=0;
+        var temperid;
+        for(var i=0;i<res.data.length;i++){
+          if (temperid != res.data[i].layoutid) {
+            StoveCount++;
+            temperid=res.data[i].layoutid;
+          }
+        }   
+        // console.log(res.data);
+        this.CanvaDraws("mycanvas",res.data,StoveCount);
+        
+      } else {
+        ElMessage.warning(res.msg)
+        router.push("/login")
+      }
+    });
+    // request.get("/TidyUpGlassModule/CurrentCutTerritory").then((res) => {
+    //   if (res.code == 200) {
+    //     console.log(res.data);  
+    //   } else {
+    //     ElMessage.warning(res.msg)
+    //     router.push("/login")
+    //   }
+    // });
+
+    
+
+  },
+  methods: {
+    //Canva(id,鍩虹鏁版嵁,椤甸潰闀匡細瀹為檯闀匡紝鏄剧ず琛屽唴鐗堝浘鏁帮紝 )
+    //鍩虹鏁版嵁锛氬疄闄呯倝闀�,瀹為檯鐐夊, 灏忕墖X杞�, 灏忕墖y杞�, 灏忕墖闀�, 灏忕墖瀹斤紝鏄剧ず鏁版嵁锛堝昂瀵�,ID,娴佺▼鍗″彿,鐗堝浘鍙凤級
+    CanvaDraws(id,Datas,StoveCount) {
+        //var StoveCount=43;//鐐夋暟
+        var ArrangementMode='linefeed';//鎺掑竷鏂瑰紡锛歭inefeed(鎹㈣) /Wholeline  鏁磋
+        var RowMaxCount=3;//姣忚鏈�澶氭樉绀虹殑鍥炬暟
+        var StoveWidth=3000; //瀹為檯鐐夊 2850
+        var StoveLength=5500;//瀹為檯鐐夐暱 5000
+        var StoveColor='#CFC8C5';//鐐夊瓙鑳屾櫙棰滆壊
+        
+
+        var StoveIntervalX=30; //椤甸潰姣忎竴鐐変箣闂寸殑闂磋窛X  px
+        var StoveIntervalY=50; //椤甸潰姣忎竴鐐変箣闂寸殑闂磋窛Y  px
+
+        var HtmlWidth=1800;   //椤甸潰妯悜
+        //var actualWidth=12000;//椤甸潰妯悜鎵�瀵瑰簲鐨勫疄闄呴暱搴�
+        var actualWidth=StoveWidth*RowMaxCount;//椤甸潰妯悜鎵�瀵瑰簲鐨勫疄闄呴暱搴�
+
+        var Bli = actualWidth / (HtmlWidth-StoveIntervalX*RowMaxCount);//姣斾緥锛氬疄闄呴暱搴m/椤甸潰闀垮害px
+
+        var StoveCross=StoveWidth/Bli;   //椤甸潰鐐夊瓙妯悜 鍍忕礌
+        var StoveVertical=StoveLength/Bli;//椤甸潰鐐夊瓙绾靛悜 鍍忕礌
+
+        var Font1=(StoveCross*0.05);
+        var Font2=(StoveCross*0.028);
+        // var TerritoryWidth=dataTempered.loadwidth; //瀹為檯鐗堝浘瀹�
+        //   var TerritoryLength=dataTempered.loadlength;//瀹為檯鐗堝浘闀�
+        //   var TerritoryColor='#0DB637';//鐗堝浘鑳屾櫙棰滆壊
+
+        //   var TerritoryCross=TerritoryWidth/Bli;   //椤甸潰鐗堝浘妯悜 鍍忕礌
+        //   var TerritoryVertical=TerritoryLength/Bli;//椤甸潰鐗堝浘绾靛悜 鍍忕礌
+        
+        var canva = this.$refs[id];
+        var content = canva.getContext('2d');
+        canva.width = HtmlWidth;
+        canva.height = StoveCount%RowMaxCount==0?((StoveVertical+StoveIntervalY)*(StoveCount/RowMaxCount)):((StoveVertical+StoveIntervalY)*(StoveCount/RowMaxCount+1));
+        //console.log(StoveCount%RowMaxCount==0?((StoveVertical+StoveIntervalY)*(StoveCount/RowMaxCount)):((StoveVertical+StoveIntervalY)*(StoveCount/RowMaxCount+1)) );
+        var temperid;//鍒濆鐗堝浘
+        var Xlayout = 0; //鐐夊瓙X杞磋捣鐐�
+        var Ylayout = StoveIntervalY; //鐐夊瓙Y杞磋捣鐐�
+        var layoutCount = 0;//鐗堝浘鏁�
+        var row=0;
+        for (var i = 0; i < Datas.length; i++) {
+          var dataTempered = Datas[i];
+
+          var TerritoryWidth=dataTempered.loadwidth; //瀹為檯鐗堝浘瀹�
+          var TerritoryLength=dataTempered.loadlength;//瀹為檯鐗堝浘闀�
+          var TerritoryColor='#0DB637';//鐗堝浘鑳屾櫙棰滆壊
+
+          var TerritoryCross=TerritoryWidth/Bli;   //椤甸潰鐗堝浘妯悜 鍍忕礌
+          var TerritoryVertical=TerritoryLength/Bli;//椤甸潰鐗堝浘绾靛悜 鍍忕礌
+
+          if (temperid != dataTempered.layoutid) {
+            //鐢荤増鍥�  鏇存敼鍩虹鍊嶆暟
+            if(layoutCount>0){
+              Xlayout += StoveCross + StoveIntervalX;
+              if (layoutCount %RowMaxCount== 0) {
+                //鎹㈣
+                Ylayout += StoveVertical+StoveIntervalY;
+                Xlayout=0;
+                row++;
+              }
+            }
+            temperid=dataTempered.layoutid;
+            layoutCount++;
+            content.font ='bold '+Font1+'px Arial' ; //鏂囧瓧鏍峰紡锛氬姞绮� 16鍍忕礌 瀛椾綋Arial
+            content.fillStyle = '#000000'; //瀛椾綋棰滆壊
+            content.textAlign = 'center'; //鏂囧瓧灞呬腑
+            content.fillText((dataTempered.layoutid), (StoveCross / 2+ Xlayout), 50/2+(StoveVertical+50)*row+10);
+            //鐐夊瓙
+            content.fillStyle = StoveColor;
+            content.fillRect(Xlayout, Ylayout, StoveCross, StoveVertical);
+            //鐗堝浘
+            content.fillStyle = TerritoryColor;
+            content.fillRect(Xlayout, Ylayout, TerritoryCross, TerritoryVertical);
+          }
+          
+          var Rx = dataTempered.xaxis / Bli + Xlayout;
+          var Ry = dataTempered.yaxis / Bli + Ylayout;
+          var Rwidth = dataTempered.width / Bli;
+          var Rheight = dataTempered.height / Bli;
+          var Xwidth;
+          var Xheight;
+          content.fillStyle = '#5CADFE';
+          if (dataTempered.rotateangle != 0) {
+            Xwidth = Rwidth;
+            Xheight = Rheight;
+          } else {
+            Xwidth = Rheight;
+            Xheight = Rwidth;
+          }
+          content.fillRect(Rx, Ry, Xwidth, Xheight);
+          content.font = 'bold '+Font2+'px Arial' ; //鏂囧瓧鏍峰紡锛氬姞绮� 16鍍忕礌 瀛椾綋Arial
+          content.fillStyle = '#000000'; //瀛椾綋棰滆壊
+          content.textAlign = 'center'; //鏂囧瓧灞呬腑
+
+          content.fillText(('鐗堝浘:'+dataTempered.layoutid+'-'+dataTempered.sort), (Xwidth / 2) + Rx, (Xheight) / 2 + Ry-Font2);
+          content.fillText((dataTempered.width + '  *  ' + dataTempered.height), (Xwidth / 2) + Rx, (Xheight) / 2 + Ry); //fillText閲岄潰鐨勫彲濉啓鐨勫��(鏂囨湰鍐呭, x鍧愭爣, y鍧愭爣, 鏂囨湰鏈�澶у搴�)
+          content.fillText((dataTempered.processid), (Xwidth / 2) + Rx, (Xheight) / 2 + Ry+Font2);
+          //content.rotate(30*Math.PI/180);
+          content.stroke();
+        }
+    }
+  }
+}
+
+
+</script>
+
+
+
+<template>
+  <div ref="content">
+    <canvas ref="mycanvas"></canvas>
+  </div>
+</template>
+
+<style scoped>
+#main {
+  width: 100%;
+  height: 100%;
+}
+
+
+
+#div-title {
+  height: 5%;
+  width: 100%;
+}
+
+#searchButton {
+  margin-top: -5px;
+  margin-left: 1rem;
+}
+
+#searchButton1 {
+  /* margin-left: 10rem; */
+}
+
+/*main-body鏍峰紡*/
+#main-body {
+  width: 99%;
+  height: 92%;
+  margin-top: 1%;
+}
+
+#select {
+  margin-left: 0.5rem;
+}
+
+:deep(.indexTag .el-breadcrumb__inner) {
+  color: #5CADFE !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/User/permissions.vue b/UI-Project/src/views/User/permissions.vue
new file mode 100644
index 0000000..4fc96e2
--- /dev/null
+++ b/UI-Project/src/views/User/permissions.vue
@@ -0,0 +1,468 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+const add = ref(false)
+const adda = ref(false)
+const addc = ref(false)
+const addb = ref(false)
+import { useI18n } from 'vue-i18n'
+const { t } = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+import request from "@/utils/request"
+import { ref, onMounted } from "vue";
+import { ElMessage, ElMessageBox } from 'element-plus'
+const selectedProjectNoa = ref(''); // 褰撳墠閫変腑鐨勮鑹� 
+const menuName = ref('');
+const listSort = ref('');
+const url = ref('');
+const currentRow = reactive({}); // 褰撳墠琛岀殑鏁版嵁 
+const tableData = ref([])
+const slot = ref('')
+ request.get("/loadGlass/sys/menu/nav").then((res) => {
+ if (res.code == 200) {
+ tableData.value = res.data.tree
+ } else {
+ ElMessage.warning(res.msg)
+ }
+ });
+const titleSelectJsona = ref({
+  processType: [],
+})
+onMounted(() => {
+  fetchOptionsa('');  
+}); 
+  // 瑙掕壊涓嬫媺閫�  
+  const fetchOptionsa = async () => {  
+  try {  
+    const response = await request.post('/loadGlass/sys/role/queryRole',{
+     key: ''
+    });  
+    if (response.code === 200) {  
+    titleSelectJsona.value.processTypea = response.data;
+    } else {  
+      ElMessage.warning(response.data);  
+    }  
+  } catch (error) {  
+    console.error('Error fetching options:', error);  
+  }  
+}; 
+const handleBindRack = (row) => {
+  currentRow.menuName  = row.menuName; // 鐩存帴璁剧疆鍝嶅簲寮忓睘鎬�  
+  currentRow.id  = row.id;
+  addb.value = true;
+};
+function closeDialog(row) {
+     add.value = false;
+       menuName.value = '';
+       listSort.value = '';
+       url.value = '';
+}
+function closeDialoga(row) {
+     adda.value = false;
+       menuName.value = '';
+       listSort.value = '';
+       url.value = '';
+}
+function closeDialogb(row) {
+     addb.value = false;
+       menuName.value = '';
+       listSort.value = '';
+       url.value = '';
+}
+function closeDialogc(row) {
+     addc.value = false;
+       menuName.value = '';
+       listSort.value = '';
+       url.value = '';
+}
+// 娣诲姞涓�绾ц彍鍗�
+const getTableRow = async () => {
+  try {
+    const response = await request.post('/loadGlass/sys/menu/save', {
+      menuName: menuName.value,
+      listSort: listSort.value,
+      url: url.value,
+    }); 
+ 
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      add.value = false;
+      tableData.value = response.data;
+      menuName.value = '';
+      listSort.value = '';
+      url.value = '';
+    } else {
+      ElMessage.error(response.msg);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+};
+// 娣诲姞浜岀骇鑿滃崟
+const getTableRowb = async () => {
+  try {
+    const dataToSend = {  
+      parentId: currentRow.id,
+      menuName: menuName.value,
+      listSort: listSort.value,
+      url: url.value,
+    };
+    const response = await request.post('/loadGlass/sys/menu/save',dataToSend ); 
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      addb.value = false;
+     tableData.value = response.data;
+       menuName.value = '';
+       listSort.value = '';
+       url.value = '';
+    } else {
+      ElMessage.error(response.msg);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+};
+// 澶勭悊缂栬緫鎸夐挳鐐瑰嚮  
+function handleEdit(row) {  
+  listSort.value = row.listSort; 
+  menuName.value = row.menuName; 
+  url.value = row.url; 
+  adda.value = true;
+}  
+// 淇敼浜岀骇鑿滃崟
+function handleEditc(row) {  
+  listSort.value = row.listSort; 
+  menuName.value = row.menuName; 
+  url.value = row.url; 
+  addc.value = true;
+}  
+// 缂栬緫
+const getTableRowa = async () => {
+  try {
+    const response = await request.post('/loadGlass/sys/menu/updateMenu', {
+      parentId: currentRow.id,
+      menuName: menuName.value,
+      listSort: listSort.value,
+      url: url.value,
+    }); 
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      adda.value = false;
+      tableData.value = response.data;
+      menuName.value = '';
+      listSort.value = '';
+      url.value = '';
+    } else {
+      ElMessage.error(response.msg);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+}; 
+// 缂栬緫浜岀骇鑿滃崟
+const getTableRowac = async () => {
+  try {
+    const response = await request.post('/loadGlass/sys/menu/updateMenu', {
+      menuName: menuName.value,
+      listSort: listSort.value,
+      url: url.value,
+    }); 
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      addc.value = false;
+      tableData.value = response.data;
+      menuName.value = '';
+      listSort.value = '';
+      url.value = '';
+    } else {
+      ElMessage.error(response.msg);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+};
+// 鍒犻櫎 
+ const opena = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('customer.demenu'), 
+      t('customer.prompt'),  
+      {  
+        confirmButtonText: t('customer.yes'), 
+        cancelButtonText: t('customer.cancel'),
+        type: 'warning',  
+      } 
+    );
+    if (confirmResult === 'confirm') {
+      const response = await request.post("/loadGlass/sys/menu/deleteMenu", {
+        menuId: row.id,
+    })
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {
+    console.error('鍙戠敓閿欒:', error);  
+  }  
+};
+</script>
+<template>
+  <div style="height: 600px;">
+     <el-button type="primary" style="margin-top: 10px;margin-left: 10px;"  id="searchButton" @click="add = true">{{ $t('customer.addmenu') }}</el-button>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 750px;">
+        <el-table  
+          :data="tableData" 
+          height="750"
+          @expand-change="handleExpandChange"  
+          row-key="id" 
+          :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" 
+        >  
+          <el-table-column type="expand">  
+            <template #default="props">  
+              <div v-if="props.row.children && props.row.children.length">  
+                <el-table  
+                  :data="props.row.children"  
+                  border
+                  style="width: 100%;margin-left: 120px;"  
+                  row-key="id"  
+                  :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" 
+                >  
+          <el-table-column prop="menuName" :label="$t('customer.semenu')" align="center" min-width="140" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"/>  
+          <el-table-column prop="url" :label="$t('customer.link')" align="center" min-width="160"/>  
+          <el-table-column prop="listSort" align="center" :label="$t('customer.sort')" min-width="140"/>
+          <el-table-column fixed="right" :label="$t('customer.operate')" align="center">
+            <template #default="scope">
+              <el-button type="text" plain @click="handleEditc(scope.row)">{{ $t('customer.exit') }}</el-button>
+              <el-button type="text" plain @click="opena(scope.row)">{{ $t('customer.delete') }}</el-button>
+            </template>
+        </el-table-column>
+      </el-table>  
+     </div>  
+     </template>  
+     </el-table-column>  
+          <el-table-column prop="menuName" :label="$t('customer.firstmenu')" align="center" min-width="120"  />  
+          <el-table-column prop="url" :label="$t('customer.link')" align="center" min-width="200"/>  
+          <el-table-column prop="listSort" align="center" :label="$t('customer.sort')" min-width="180" />
+          <el-table-column fixed="right" :label="$t('customer.operate')" align="center" width="200">
+            <template #default="scope">
+              <el-button type="text" plain @click="handleBindRack(scope.row)">{{ $t('customer.addmenua') }}</el-button>
+              <el-button type="text" plain @click="handleEdit(scope.row)">{{ $t('customer.exit') }}</el-button>
+              <el-button type="text" plain @click="opena(scope.row)">{{ $t('customer.delete') }}</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+  </div>
+  <el-dialog v-model="add" top="23vh" width="37%" :title="$t('customer.addmenu')">
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  label-width="150px">
+      <el-form label-width="150px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div> 
+          <el-form-item :label="$t('customer.firstmenuname')" :required="true" style="width: 25vw">
+                <el-input v-model="menuName" autocomplete="off" :placeholder="$t('customer.inmenu')"/>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('customer.linka')" :required="true" style="width: 25vw">
+                <el-input v-model="url" autocomplete="off" :placeholder="$t('customer.inlink')"/>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('customer.sorta')" :required="true" style="width: 25vw">
+                <el-input v-model="listSort" autocomplete="off" :placeholder="$t('customer.insort')"/>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="getTableRow">
+          {{ $t('customer.sure') }}
+        </el-button>
+        <el-button @click="closeDialog">{{ $t('customer.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog> 
+  <el-dialog v-model="addb" top="23vh" width="37%" :title="$t('customer.addmenua')">
+    <div style="margin-bottom: 20px">
+      <el-form>
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+              <el-form-item :label="$t('customer.firstmenuname')"  style="width: 25vw">
+            <el-input disabled v-model="currentRow.menuName"  autocomplete="off" style="width: 330px;"></el-input>
+              </el-form-item>
+              </div>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  label-width="150px">
+      <el-form label-width="150px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div> 
+          <el-form-item :label="$t('customer.semenuname')" :required="true" style="width: 25vw">
+                <el-input v-model="menuName" autocomplete="off" :placeholder="$t('customer.inmenu')" style="width: 350px;"/>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('customer.linka')" :required="true" style="width: 25vw">
+                <el-input v-model="url" autocomplete="off" :placeholder="$t('customer.inlink')" style="width: 350px;"/>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('customer.sorta')" :required="true" style="width: 25vw">
+                <el-input v-model="listSort" autocomplete="off" :placeholder="$t('customer.insort')" style="width: 350px;"/>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="getTableRowb">
+          {{ $t('customer.sure') }}
+        </el-button>
+        <el-button @click="closeDialogb">{{ $t('customer.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog> 
+  <el-dialog v-model="adda" top="23vh" width="37%" :title="$t('customer.exmene')">
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+     <el-form ref="formRef" label-width="150px">
+      <el-form label-width="100px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div> 
+          <el-form-item :label="$t('customer.menu')" :required="true" style="width: 25vw">
+                <el-input v-model="menuName" autocomplete="off" :placeholder="$t('customer.inmenu')"/>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('customer.linka')" :required="true" style="width: 25vw">
+                <el-input v-model="url" autocomplete="off" :placeholder="$t('customer.inlink')"/>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('customer.sorta')" :required="true" style="width: 25vw">
+                <el-input v-model="listSort" autocomplete="off" :placeholder="$t('customer.insort')"/>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="getTableRowa">
+          {{ $t('customer.sure') }}
+        </el-button>
+        <el-button @click="closeDialoga">{{ $t('customer.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog> 
+  <el-dialog v-model="addc" top="23vh" width="37%" :title="$t('customer.exmenea')">
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+     <el-form ref="formRef" label-width="150px">
+      <el-form label-width="100px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div> 
+          <el-form-item :label="$t('customer.menu')" :required="true" style="width: 25vw">
+                <el-input v-model="menuName" autocomplete="off" :placeholder="$t('customer.inmenu')"/>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('customer.linka')" :required="true" style="width: 25vw">
+                <el-input v-model="url" autocomplete="off" :placeholder="$t('customer.inlink')"/>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('customer.sorta')" :required="true" style="width: 25vw">
+                <el-input v-model="listSort" autocomplete="off" :placeholder="$t('customer.insort')"/>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="getTableRowac">
+          {{ $t('customer.sure') }}
+        </el-button>
+        <el-button @click="closeDialogc">{{ $t('customer.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog> 
+</template>
+<style scoped>
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#awatch{
+  height: 460px;
+  /* margin-top: -60px; */
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/User/rolelist.vue b/UI-Project/src/views/User/rolelist.vue
new file mode 100644
index 0000000..156a1a3
--- /dev/null
+++ b/UI-Project/src/views/User/rolelist.vue
@@ -0,0 +1,362 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+import { useI18n } from 'vue-i18n'
+const { t } = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const router = useRouter()
+const add = ref(false)
+const adda = ref(false)
+import request from "@/utils/request"
+import { ref, onMounted } from "vue";
+import { ElMessage, ElMessageBox } from 'element-plus'
+const selectedProjectNoa = ref(null); // 褰撳墠閫変腑鐨勮鑹� 
+const name = ref('');
+const tableData = ref([])
+const options = ref([])
+const selectedOptions = ref([])
+const cascaderProps = {
+  value: 'id',  
+  label: 'menuName',  
+  multiple: true
+};  
+const slot = ref('')
+const titleSelectJsona = ref({
+  processType: [],
+})
+onMounted(() => {  
+  fetchOptionsa('');  
+}); 
+  // 瑙掕壊涓嬫媺閫�  
+  const fetchOptionsa = async () => {  
+  try {  
+    const response = await request.post('/loadGlass/sys/role/queryRole',{
+  key: ''
+});  
+    if (response.code == 200) {  
+     tableData.value = response.data
+    // titleSelectJsona.value.processTypea = response.data.menuList;
+    // options.value = response.data.menuList
+    } else {  
+      ElMessage.warning(response.data);  
+    }  
+  } catch (error) {  
+    console.error('Error fetching options:', error);  
+  }  
+}; 
+// 娣诲姞
+const getTableRow = async () => {
+  try {  
+    let menuList = [];
+     let parentIdMap = {}; // 鐢ㄤ簬瀛樺偍宸茬粡娣诲姞鐨勭埗椤�  
+    selectedOptions.value.forEach(array => {  
+      if (array.length >= 2) {  
+        let id = array[0];  
+        let parentId = array[1];  
+        // 濡傛灉id杩樻湭浣滀负鐖堕」娣诲姞锛屽垯娣诲姞瀹�  
+        if (!parentIdMap[id]) {  
+          menuList.push({  
+            id: id,  
+            parentId: 0,
+            children: []  
+          });  
+          parentIdMap[id] = menuList[menuList.length - 1]; // 鏇存柊鏄犲皠  
+        }  
+        // 鍚戝搴旂殑鐖堕」娣诲姞瀛愰」  
+        if (!parentIdMap[id].children.some(child => child.id === parentId)) {  
+          // 妫�鏌ユ槸鍚﹀凡瀛樺湪鐩稿悓鐨勫瓙椤癸紙鍩轰簬id锛夛紝閬垮厤閲嶅娣诲姞  
+          parentIdMap[id].children.push({  
+            id: parentId,  
+            parentId: id  
+          });  
+        }  
+      }  
+    });  
+    const dataToSend = {  
+      name: name.value,
+      menuList: menuList
+    };  
+    const response = await request.post('/loadGlass/sys/role/saveRole', dataToSend);
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      add.value = false;
+      name.value = '';
+      selectedOptions.value = '';
+      fetchOptionsa();
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+};
+function handleEdit(row) {  
+  name.value = row.name;  
+  adda.value = true;
+  window.localStorage.setItem('ids', row.id);
+  const parentIdMap = {};  
+  const menuItemsById = {}; // 蹇�熸煡鎵捐彍鍗曢」  
+  let topLevelItems = []; // 瀛樺偍椤剁骇鑿滃崟椤� 
+  row.menuList.forEach(item => {  
+    const parentId = item.parentId === 0 ? null : item.parentId;
+    const menuItem = {  
+      id: item.id,  
+      parentId: parentId,  
+      menuName: item.menuName,  
+      children: []  
+    };  
+    menuItemsById[item.id] = menuItem;  
+    // 鍒濆鍖栨垨鏇存柊parentIdMap涓殑鏁扮粍  
+    if (!parentIdMap[parentId]) {  
+      parentIdMap[parentId] = [];  
+    }  
+    if (parentId === null) {  
+      // 椤剁骇鑿滃崟椤圭洿鎺ユ坊鍔犲埌topLevelItems  
+      topLevelItems.push(menuItem);  
+    } else {  
+      // 闈為《绾ц彍鍗曢」娣诲姞鍒皃arentIdMap涓�  
+      parentIdMap[parentId].push(menuItem);  
+    }  
+  });  
+  for (const parentId in parentIdMap) {  
+    if (parentId !== 'null') { // 璺宠繃椤剁骇鑿滃崟椤�  
+      parentIdMap[parentId].forEach(child => {  
+        // 鏌ユ壘鐖堕」骞舵坊鍔犲瓙椤�  
+        if (menuItemsById[parentId]) {  
+          menuItemsById[parentId].children.push(child);  
+        }  
+      });  
+    }  
+  }  
+  if (selectedOptions.value !== topLevelItems) {  
+    selectedOptions.value = topLevelItems;  
+  }
+  // selectedOptions.value = topLevelItems;
+const topLevelItemsWithChildren = topLevelItems; // 鍖呭惈椤剁骇鑿滃崟椤瑰強鍏跺瓙鑿滃崟椤圭殑鏁扮粍 聽
+ let selectedPath = [];
+// 寰幆閬嶅巻 topLevelItemsWithChildren 鏁扮粍
+for (let i = 0; i < topLevelItemsWithChildren.length; i++) {
+ // 娣诲姞椤剁骇鑿滃崟椤圭殑 id
+ selectedPath.push(topLevelItemsWithChildren[i].id);
+ // 濡傛灉鏈夊瓙鑿滃崟椤癸紝娣诲姞绗竴涓瓙鑿滃崟椤圭殑 id
+ if (topLevelItemsWithChildren[i].children && topLevelItemsWithChildren[i].children.length > 0) {
+  for (let j = 0; j < topLevelItemsWithChildren[i].children.length; j++) {  
+            // 灏嗘瘡涓瓙鑿滃崟椤圭殑 id 娣诲姞鍒� selectedPath 涓�  
+            selectedPath.push(topLevelItemsWithChildren[i].children[j].id);  
+        }  
+    }  
+}
+selectedOptions.value = selectedPath;
+}
+// 缂栬緫
+const getTableRowa = async () => {
+  let ids = window.localStorage.getItem('ids')
+  try {  
+    let menuList = [];
+    let parentIdMap = {}; // 鐢ㄤ簬瀛樺偍宸茬粡娣诲姞鐨勭埗椤�  
+    selectedOptions.value.forEach(array => {  
+      if (array.length >= 2) {  
+        let id = array[0];  
+        let parentId = array[1];  
+        // 濡傛灉id杩樻湭浣滀负鐖堕」娣诲姞锛屽垯娣诲姞瀹�  
+        if (!parentIdMap[id]) {  
+          menuList.push({  
+            id: id,  
+            parentId: 0, 
+            children: []  
+          });  
+          parentIdMap[id] = menuList[menuList.length - 1]; // 鏇存柊鏄犲皠  
+        }  
+        // 鍚戝搴旂殑鐖堕」娣诲姞瀛愰」  
+        if (!parentIdMap[id].children.some(child => child.id === parentId)) {  
+          // 妫�鏌ユ槸鍚﹀凡瀛樺湪鐩稿悓鐨勫瓙椤癸紙鍩轰簬id锛夛紝閬垮厤閲嶅娣诲姞  
+          parentIdMap[id].children.push({  
+            id: parentId,  
+            parentId: id  
+          });  
+        }  
+      }  
+    });  
+    const dataToSend = {  
+      id:ids,
+      name: name.value,
+      menuList: menuList
+    };  
+    const response = await request.post('/loadGlass/sys/role/updateRole', dataToSend);
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      adda.value = false;
+      name.value = '';
+      selectedOptions.value = '';
+      fetchOptionsa();
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+};
+function closeDialog(row) {
+     add.value = false;
+      name.value = '';
+      selectedOptions.value = '';
+}
+function closeDialoga(row) {
+     adda.value = false;
+      name.value = '';
+      selectedOptions.value = '';
+}
+// 鍒犻櫎 
+ const opena = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('delivery.derole'), 
+      t('delivery.prompt'),  
+      {  
+        confirmButtonText: t('delivery.yes'), 
+        cancelButtonText: t('delivery.cancel'),
+        type: 'warning',  
+      } 
+    ); 
+    if (confirmResult === 'confirm') {
+      const response = await request.post("/loadGlass/sys/role/delete",[row.id])
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      fetchOptionsa()
+      } else {
+      ElMessage.error(response.message);
+      }  
+    }  
+  } catch (error) {
+    console.error('鍙戠敓閿欒:', error);  
+  }  
+};
+request.get("/loadGlass/sys/menu/nav").then((res) => {
+ if (res.code == 200) {
+ options.value = res.data.tree
+ } else {
+ ElMessage.warning(res.msg)
+ }
+ });
+</script>
+<template>
+  <div>
+     <el-button type="primary" style="margin-top: 10px;margin-left: 10px;"  id="searchButton" @click="add = true">{{ $t('delivery.addrole') }}</el-button>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+        <el-table height="750" ref="table"
+        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="name" align="center" :label="$t('delivery.role')" min-width="180" />
+          <el-table-column fixed="right" :label="$t('delivery.operate')" align="center" width="200">
+            <template #default="scope">
+              <el-button type="text" plain  @click="handleEdit(scope.row)">{{ $t('delivery.edit') }}</el-button>
+              <el-button type="text" plain @click="opena(scope.row)">{{ $t('delivery.delete') }}</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+  </div>
+  <el-dialog v-model="add" top="23vh" width="37%" :title="$t('productStock.addusername')" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form ref="formRef" label-width="150px">
+      <el-form label-width="100px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('delivery.rolea')" :required="true" style="width: 25vw">
+                <el-input :placeholder="$t('delivery.inrole')" v-model="name" autocomplete="off"  style="width: 350px"/>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item :label="$t('delivery.choice')" :required="true" style="width: 25vw;">
+        <el-cascader 
+         v-model="selectedOptions" 
+         :placeholder="$t('delivery.inchoice')"
+         :props="cascaderProps"  
+         :options="options" 
+               style="width: 350px"
+               clearable />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="getTableRow">
+          {{ $t('delivery.sure') }}
+        </el-button>
+        <el-button @click="closeDialog"> {{ $t('delivery.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog> 
+  <el-dialog v-model="adda" top="23vh" width="37%" :title="$t('delivery.editrole')">
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form ref="formRef" label-width="150px">
+              <el-form label-width="100px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('delivery.rolea')" :required="true" style="width: 25vw">
+                <el-input :placeholder="$t('delivery.inrole')" v-model="name" autocomplete="off"  style="width: 350px"/>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+       <el-form-item :label="$t('delivery.choice')" :required="true" style="width: 25vw;">
+        <el-cascader 
+         v-model="selectedOptions"  
+         :placeholder="$t('delivery.inchoice')"
+         :props="cascaderProps"  
+         :options="options" 
+                style="width: 350px"
+               clearable />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="getTableRowa">
+          {{ $t('delivery.sure') }}
+        </el-button>
+        <el-button @click="closeDialoga">{{ $t('delivery.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog> 
+</template>
+<style scoped>
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#awatch{
+  height: 460px;
+  /* margin-top: -60px; */
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/User/user.vue b/UI-Project/src/views/User/user.vue
new file mode 100644
index 0000000..06fecfb
--- /dev/null
+++ b/UI-Project/src/views/User/user.vue
@@ -0,0 +1,38 @@
+<script setup>
+import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
+import {useRouter} from "vue-router";
+let indexFlag=$ref(1)
+function changeRouter(index){
+  indexFlag=index
+}
+</script>
+<template>
+    <div id="main-body">
+      <router-view  />
+    </div>
+</template>
+<style scoped>
+#main-div{
+  width: 100%;
+  height: 100%;
+}
+#div-title{
+  height: 2%;
+  width: 100%;
+}
+#searchButton{
+  margin-top: -5px;
+  margin-left: 1rem;
+}
+#main-body{
+  width: 100%;
+  height: 95%;
+  /* margin-top: 1%; */
+}
+#select{
+  margin-left:0.5rem;
+}
+:deep(.indexTag .el-breadcrumb__inner){
+  color: #5CADFE !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/User/userlist.vue b/UI-Project/src/views/User/userlist.vue
new file mode 100644
index 0000000..5887777
--- /dev/null
+++ b/UI-Project/src/views/User/userlist.vue
@@ -0,0 +1,339 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+const add = ref(false)
+const adda = ref(false)
+import request from "@/utils/request"
+import { ref, onMounted } from "vue";
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { useI18n } from 'vue-i18n'
+const { t } = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const selectedProjectNoa = ref(null);
+const userName = ref('');
+const password = ref('');
+const tableData = ref([])
+const slot = ref('')
+// request.post("/loadGlass/sys/user/listByUserName",{
+//   key: ''
+// }).then((res) => {
+//    if (res.code == 200) {
+//    console.log(res.data);
+//    tableData.value = res.data
+//    } else {
+//    ElMessage.warning(res.msg)
+//    }
+//    });
+  const listByUserName = async () => {  
+  try {
+    const response = await request.post('/loadGlass/sys/user/listByUserName',{
+      key: ''
+     });  
+    if (response.code === 200) {  
+      tableData.value = response.data
+    } else {  
+      ElMessage.warning(response.data);  
+    }  
+  } catch (error) {
+  }  
+}; 
+// 閲嶇疆瀵嗙爜
+ const open = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('productStock.repassword'), 
+      t('productStock.prompt'),  
+      {  
+        confirmButtonText: t('productStock.yes'), 
+        cancelButtonText: t('productStock.cancel'),
+        type: 'warning',  
+      } 
+    );
+    if (confirmResult === 'confirm') {
+      var url="/loadGlass/sys/user/resetPassword?userId="+row.id;
+      const response = await request.post(url, {
+        esdId: row.esdId
+    })
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+const titleSelectJsona = ref({
+  processType: [],
+})
+onMounted(() => {
+  fetchOptionsa('');
+  listByUserName('');
+}); 
+  // 瑙掕壊涓嬫媺閫�  
+  const fetchOptionsa = async () => {  
+  try {
+    const response = await request.post('/loadGlass/sys/role/queryRole',{
+      key: ''
+     });  
+    if (response.code === 200) {  
+    titleSelectJsona.value.processTypea = response.data;
+    } else {  
+      ElMessage.warning(response.data);  
+    }  
+  } catch (error) {
+  }  
+}; 
+// 澶勭悊缂栬緫鎸夐挳鐐瑰嚮  
+function handleEdit(row) {  
+  userName.value = row.userName;
+  if (row.roleList && row.roleList.length > 0) {  
+    const firstRole = row.roleList[0];  
+    selectedProjectNoa.value = firstRole.id; // 璁剧疆涓篒D锛岃�屼笉鏄痭ame  
+  }  
+  adda.value = true;
+  window.localStorage.setItem('id', row.id)
+} 
+function closeDialog(row) {
+     add.value = false;
+     userName.value = '';
+     nickName.value = '';
+     password.value = '';
+     selectedProjectNoa.value = '';
+}
+function closeDialoga(row) {
+     adda.value = false;
+     userName.value = '';
+     nickName.value = '';
+     password.value = '';
+}
+// 娣诲姞 
+const getTableRow = async () => {
+  try {
+    const response = await request.post('/loadGlass/sys/user/saveUser', {
+      userName: userName.value,
+      nickName: userName.value,
+      password: password.value,
+      roleList: [
+    {
+      id: selectedProjectNoa.value,
+    }]
+    }); 
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      add.value = false;
+      listByUserName('');
+  // tableData.value = response.data;
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+  }
+};
+// 缂栬緫
+const getTableRowa = async () => {
+  let id = window.localStorage.getItem('id')
+  try {
+    const response = await request.post('/loadGlass/sys/user/updateUser', {
+      id: id,
+      userName: userName.value,
+      roleList: [
+    {
+      id: selectedProjectNoa.value,
+    }]
+  }
+  ); 
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      adda.value = false;
+      listByUserName('');
+      tableData.value = response.data;
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+  }
+};
+// 鍒犻櫎 
+ const opena = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('productStock.deusername'), 
+      t('productStock.prompt'),  
+      {  
+        confirmButtonText: t('productStock.yes'), 
+        cancelButtonText: t('productStock.cancel'),
+        type: 'warning',  
+      } 
+    );
+    if (confirmResult === 'confirm') {
+      const response = await request.post("/loadGlass/sys/user/deleteUser",  [row.id])
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      listByUserName('');
+    } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {
+  }  
+};   
+</script>
+<template>
+  <div>
+     <el-button type="primary" style="margin-top: 10px;margin-left: 10px;"  id="searchButton" @click="add = true">{{ $t('productStock.addusers') }}</el-button>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" >
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+        <el-table height="750" ref="table" 
+        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="userName" align="center" :label="$t('productStock.username')" min-width="180" />
+          <el-table-column align="center" :label="$t('productStock.role')" min-width="80">
+            <template #default="scope">  
+             <el-tag v-for="role in scope.row.roleList">  
+            {{role.name}}  
+           </el-tag>   
+         </template> 
+            </el-table-column>
+          <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="270">
+            <template #default="scope">
+              <el-button type="text" plain @click="open(scope.row)">{{ $t('productStock.resetpassword') }}</el-button>
+              <el-button type="text" plain @click="handleEdit(scope.row)">{{ $t('productStock.exit') }}</el-button>
+              <el-button type="text" plain @click="opena(scope.row)">{{ $t('productStock.delete') }}</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+  </div>
+  <el-dialog v-model="add" top="23vh" width="37%" :title="$t('productStock.addusers')">
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  label-width="150px">
+      <el-form label-width="105px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('productStock.usernamea')" :required="true" style="width: 25vw">
+                <el-input v-model="userName" autocomplete="off" style="width: 350px;" :placeholder="$t('productStock.inusername')" />
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item :label="$t('productStock.rolea')" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="selectedProjectNoa"
+               filterable
+               clearable
+               :placeholder="$t('productStock.inrole')"
+               style="width: 350px;"
+             >
+               <el-option
+            v-for="item in titleSelectJsona['processTypea']"  
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item :label="$t('productStock.password')" :required="true" style="width: 25vw;">
+                <el-input style="width: 350px;"
+                        v-model="password"
+                        :placeholder="$t('productStock.inpassword')"
+                        autocomplete="off"
+                        :prefix-icon="Lock"
+                        show-password/>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="getTableRow">
+          {{ $t('productStock.sure') }}
+        </el-button>
+        <el-button @click="closeDialog">{{ $t('productStock.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog> 
+  <el-dialog v-model="adda" top="23vh" width="37%" :title="$t('productStock.reusername')" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form ref="formRef" label-width="150px">
+      <el-form label-width="105px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('productStock.usernamea')" :required="true" style="width: 25vw">
+                <el-input :placeholder="$t('productStock.inusername')" v-model="userName" autocomplete="off" style="width: 350px;"/>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item :label="$t('productStock.rolea')" :required="true" style="width: 25vw;">
+                <el-select
+               v-model="selectedProjectNoa"
+               filterable
+               clearable
+               :placeholder="$t('productStock.inrole')"
+               style="width: 350px;"
+             >
+               <el-option
+         v-for="item in titleSelectJsona['processTypea']"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          />
+        </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="getTableRowa">
+          {{ $t('productStock.sure') }}
+        </el-button>
+        <el-button @click="closeDialoga">{{ $t('productStock.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog> 
+</template>
+<style scoped>
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#awatch{
+  height: 460px;
+  /* margin-top: -60px; */
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/User/userpageNo.vue b/UI-Project/src/views/User/userpageNo.vue
new file mode 100644
index 0000000..1ef997c
--- /dev/null
+++ b/UI-Project/src/views/User/userpageNo.vue
@@ -0,0 +1,294 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+const adda = ref(false)
+import request from "@/utils/request"
+import { ref, onMounted } from "vue";
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { useI18n } from 'vue-i18n'
+const { t } = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const selectedProjectNoa = ref(null);
+const configName = ref('');
+const configNamesearch = ref('');
+const configCode = ref('');
+const configCodesearch = ref('');
+const tableData = ref([])
+const currentPage2 = ref(1)
+const totalRecords = ref(0)
+const configValue = ref('')
+const isEnable = ref('')
+const configValuesearch = ref('')
+const isEnablesearch = ref('')
+  const listByUserName = async () => {  
+  try {
+  const response = await request.post('/loadGlass/sys/sysConfig/queryConfigPage',{
+      pageNo: 1,
+      pageSize: 10,
+      configName: "",
+      configCode: "",
+      configValue: "",
+      isEnable: -1
+     });  
+    if (response.code === 200) {  
+        const formattedData = response.data.records.map(record => ({
+        ...record,
+        formattedCreateTime: formatTimestamp(record.createTime),
+        formattedUpdateTime: formatTimestamp(record.updateTime),
+      }));
+      tableData.value = formattedData;
+      totalRecords.value = response.data.pages*10
+      } else {
+      ElMessage.warning(response.data);  
+    }  
+  } catch (error) {
+  }  
+};
+onMounted(() => {
+  listByUserName('');
+});
+  const handleClick = async () => {
+  try {
+    const response = await request.post('/loadGlass/sys/sysConfig/queryConfigPage',{
+      pageNo: 1,
+      pageSize: 10,
+      configName: configNamesearch.value,
+      configCode: configCodesearch.value,
+      configValue: configValuesearch.value,
+      isEnable: isEnablesearch.value !== '' ? isEnablesearch.value : -1, 
+   
+     });  
+    if (response.code === 200) {  
+        const formattedData = response.data.records.map(record => ({
+        ...record,
+        formattedCreateTime: formatTimestamp(record.createTime),
+        formattedUpdateTime: formatTimestamp(record.updateTime),
+      }));
+      tableData.value = formattedData;
+      totalRecords.value = response.data.pages*10
+      } else {
+      ElMessage.warning(response.data);  
+    }  
+  } catch (error) {
+  }  
+};
+const handlePageChange2 = (newPage) => {
+  currentPage2.value = newPage;
+  window.localStorage.setItem('pagenumber', currentPage2.value)
+  historicala(currentPage2.value);
+};
+const historicala = async (page) => {
+  try { 
+  let page = window.localStorage.getItem('pagenumber')
+  const response = await request.post('/loadGlass/sys/sysConfig/queryConfigPage',{
+      pageNo: page,
+      pageSize: 10,
+      configName: "",
+      configCode: "",
+      configValue: "",
+      isEnable: -1
+     });  
+    if (response.code === 200) {  
+        const formattedData = response.data.records.map(record => ({
+        ...record,
+        formattedCreateTime: formatTimestamp(record.createTime),
+        formattedUpdateTime: formatTimestamp(record.updateTime),
+      }));
+      tableData.value = formattedData;
+      totalRecords.value = response.data.pages*10
+      } else {
+      ElMessage.warning(response.data);  
+    }  
+  } catch (error) {
+  }  
+};
+// 澶勭悊缂栬緫鎸夐挳鐐瑰嚮  
+function handleEdit(row) {
+  adda.value = true;
+  configValue.value = row.configValue
+  isEnable.value = row.isEnable
+  configName.value = row.configName
+  window.localStorage.setItem('id', row.id)
+  window.localStorage.setItem('configName', row.configName)
+  window.localStorage.setItem('configCode', row.configCode)
+} 
+const optionsa = [
+  {
+    value: 0,
+    label: t('sorter.disable'),
+  },
+  {
+    value: 1,
+    label: t('sorter.start'),
+  }
+  ]
+// 缂栬緫
+const getTableRowa = async () => {
+  let configName = window.localStorage.getItem('configName')
+  let configCode = window.localStorage.getItem('configCode')
+  let id = window.localStorage.getItem('id')
+  let page = window.localStorage.getItem('pagenumber')
+  try {
+    const response = await request.post('/loadGlass/sys/sysConfig/updateConfig',{
+      id: id,
+      configName: configName,
+      configCode: configCode,
+      configValue: configValue.value,
+      isEnable: isEnable.value
+  }
+  ); 
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      adda.value = false;
+      historicala(page)
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+  }
+};
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp) {
+  const date = new Date(timestamp);
+  const year = date.getFullYear();
+  const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+  const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+  const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+</script>
+<template>
+  <div>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" >
+      <div style="display: flex;width: 1770px;">
+    <el-input v-model="configNamesearch" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('productStock.configName')" />
+    <el-input v-model="configCodesearch" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" @input="handleInputa" :placeholder="$t('productStock.configCode')" />
+    <el-input v-model="configValuesearch" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" @input="handleInputb" :placeholder="$t('productStock.configValue')" />
+    <el-select v-model="isEnablesearch" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('sorter.startstatus')">
+            <el-option :label="$t('sorter.start')" value="1"></el-option>
+            <el-option :label="$t('sorter.disable')" value="0"></el-option>
+          </el-select>
+          <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="handleClick()">{{$t('reportmanage.inquire')}}</el-button>
+     </div>
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+          <el-table height="700" ref="table" :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }"
+            :data="tableData">
+            <el-table-column prop="configName" align="center" :label="$t('productStock.configName')"/>
+          <el-table-column prop="configCode" align="center" :label="$t('productStock.configCode')"/>
+          <el-table-column prop="configValue" align="center" :label="$t('productStock.configValue')"/>
+          <el-table-column
+            align="center"
+            :label="$t('sorter.startstatus')"
+            prop="isEnable"
+          >
+          <template #default="scope">
+            <el-tag
+              :type="scope.row.isEnable === 1 ? 'success' : 'warning'"
+            >
+              {{ scope.row.isEnable === 1 ? $t('sorter.start') : $t('sorter.disable') }}
+            </el-tag>
+          </template>
+      </el-table-column>
+          <el-table-column prop="formattedCreateTime" align="center" :label="$t('film.createtime')"/>
+          <el-table-column prop="formattedUpdateTime" align="center" :label="$t('sorter.updateTime')" />
+          <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="270">
+            <template #default="scope">
+              <el-button type="text" plain @click="handleEdit(scope.row)">{{ $t('productStock.exit') }}</el-button>
+            </template>
+        </el-table-column>
+          </el-table>
+        </div>
+        <div style="margin-top: 20px;margin-left: 40%;">
+          <el-pagination
+          v-model:current-page="currentPage2"
+          :page-size="pageSize"
+          :size="large"
+          :disabled="disabled"
+          layout="prev, pager, next, jumper"
+          :total="totalRecords"
+          @current-change="handlePageChange2"
+          style="margin-top: 10px;"
+      />
+    </div>
+    </el-card>
+  </div>
+  <el-dialog v-model="adda" top="23vh" width="37%" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form ref="formRef" label-width="150px">
+      <el-form label-width="120px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('productStock.configNamea')" :required="true" style="width: 25vw">
+                <el-input :placeholder="$t('productStock.configName')" disabled v-model="configName" autocomplete="off" style="width: 350px;"/>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;margin-bottom: -2px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('productStock.configValuea')" :required="true" style="width: 25vw">
+                <el-input :placeholder="$t('productStock.configValue')" v-model="configValue" autocomplete="off" style="width: 350px;"/>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item :label="$t('searchOrder.startstatusa')" :required="true" style="width: 25vw;">
+                <el-select 
+            :placeholder="$t('searchOrder.startstatus')"
+             clearable
+             style="width: 350px;"  
+             v-model="isEnable">
+               <el-option
+                v-for="item in optionsa"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
+          </el-select>
+              </el-form-item></div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="getTableRowa">
+          {{ $t('productStock.sure') }}
+        </el-button>
+        <el-button @click="adda = false">{{ $t('productStock.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog> 
+</template>
+<style scoped>
+#dt { display:block; float:left;line-height: 20px;margin-left: 150px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#awatch{
+  height: 460px;
+  /* margin-top: -60px; */
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Visualization/screen.vue b/UI-Project/src/views/Visualization/screen.vue
new file mode 100644
index 0000000..fa4d031
--- /dev/null
+++ b/UI-Project/src/views/Visualization/screen.vue
@@ -0,0 +1,44 @@
+<script setup>
+import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
+import {useRouter} from "vue-router";
+let indexFlag=$ref(1)
+function changeRouter(index){
+  indexFlag=index
+}
+</script>
+<template>
+  <!-- <div id="main-div"> -->
+    <div id="main-body">
+      <router-view  />
+    </div>
+  <!-- </div> -->
+</template>
+<style scoped>
+#main-div{
+  width: 100%;
+  height: 100%;
+}
+#div-title{
+  height: 2%;
+  width: 100%;
+}
+#searchButton{
+  margin-top: -5px;
+  margin-left: 1rem;
+}
+/* #searchButton1{
+//margin-left: 10rem;
+} */
+/*main-body鏍峰紡*/
+#main-body{
+  width: 100%;
+  height: 95%;
+  /* margin-top: 1%; */
+}
+#select{
+  margin-left:0.5rem;
+}
+:deep(.indexTag .el-breadcrumb__inner){
+  color: #5CADFE !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Visualization/screenone.vue b/UI-Project/src/views/Visualization/screenone.vue
new file mode 100644
index 0000000..4ff7068
--- /dev/null
+++ b/UI-Project/src/views/Visualization/screenone.vue
@@ -0,0 +1,366 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+import request from "@/utils/request"
+import { ref, onMounted } from "vue";
+// import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+//  import LanguageMixin from './lang/LanguageMixin'
+const tableData = ref([])
+// 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰
+// const fetchTableData = async () => {
+//   try {
+//     // 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰锛屽苟绛夊緟鍝嶅簲
+//     // const response = await request.post("/loadGlass/optimizeProject/listByState", requestData);
+//     const response = await request.get("unLoadGlass/downStorage/selectStorageCage");
+
+//     // 妫�鏌ュ搷搴旂姸鎬�
+//     if (response.code === 200) {
+//       // 鏇存柊琛ㄦ牸鏁版嵁
+//       console.log('鎴愬姛鑾峰彇琛ㄦ牸鏁版嵁:', response.data);
+//       tableData.splice(0, tableData.length, ...response.data);
+//     } else {
+//       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+//       ElMessage.error(response.msg);
+//     }
+//   } catch (error) {
+//     // 澶勭悊璇锋眰澶辫触鐨勬儏鍐�
+//    ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
+//   }
+// };
+// onMounted(fetchTableData);
+request.get("unLoadGlass/downStorage/selectStorageCage").then((res) => {
+          if (res.code == 200) {
+          tableData.value = res.data
+          } else {
+          ElMessage.warning(res.msg)
+          }
+          });
+const dialogForm = () => {
+  ElMessageBox.confirm(
+    '鏄惁鎶ョ己?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+  .then(() => {
+    // this.boxa = true
+    // this.box = false
+    })
+}
+const open = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+    .then(() => {
+      ElMessage({
+        type: 'success',
+        message: '鍒犻櫎鎴愬姛锛�',
+      })
+    })
+    .catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '鍒犻櫎澶辫触',
+      })
+    })
+}
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'OrderList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  data:  [
+    {
+      'id': '1',
+      'long': '5',
+      'wide': '1005',
+      'thick': '183.6',
+    }
+  ]
+})
+</script>
+<template>
+<!-- 鐖剁骇妗� -->
+<div class="container">
+    <img src="../../assets/d1.png" style="width: 1500px;height: 750px;" alt="Your Image">
+    <div class="moving-rect vertical"></div>
+    <div class="moving-rect all"></div>
+    <div class="moving-rect horizontal"></div>
+    <div class="moving-rect xiao"></div>
+    <div class="moving-rect zhan"></div>
+    <div class="moving-rect tu"></div>
+    <div class="moving-rect zi"></div>
+    <div class="moving-rect xia"></div>
+    <div class="moving-rect zan"></div>
+    <div class="moving-rect fa"></div>
+    <div class="moving-rect hua"></div>
+    <div class="moving-rect shui"></div>
+</div>
+</template>
+<style scoped>
+.container {
+    position: relative;
+    display: inline-block; /* 浣垮鍣ㄥぇ灏忛�傚簲鍥剧墖澶у皬 */
+}
+img {
+    display: block; /* 璁╁浘鐗囦互鍧楃骇鍏冪礌鏄剧ず */
+    max-width: 100%; /* 纭繚鍥剧墖涓嶈秴鍑哄鍣� */
+}
+.moving-rect {
+    width: 100px;
+    height: 50px;
+    position: absolute;
+}
+.vertical {
+    width: 45px;
+    height: 25px;
+    background-color: #409EFF;
+    top: 510px; /* 鍒濆浣嶇疆 */
+    left: 899px; /* 姘村钩灞呬腑 */
+    transform: translateX(-50%);
+    animation: move-vertical 6s infinite; /* 浠庝笂鍒颁笅鍔ㄧ敾锛屾寔缁�6绉掞紝鏃犻檺寰幆 */
+}
+@keyframes move-vertical {
+    0% {
+        top: 510px; /* 璧峰浣嶇疆 */
+    }
+    100% {
+        top: calc(100% - 210px); /* 浠庝笂鍒颁笅缁撴潫浣嶇疆 */
+    }
+}
+.all {
+    width: 45px;
+    height: 25px;
+    background-color: #409EFF;
+    top: 490px; /* 鍨傜洿灞呬腑 */
+    right: 560px; /* 鍒濆浣嶇疆 */
+    transform: translateY(-50%);
+    animation: move-all 6s infinite; /* 浠庡彸鍒板乏鍔ㄧ敾锛屾寔缁�6绉掞紝鏃犻檺寰幆 */
+}
+@keyframes move-all {
+    0% {
+        right: 560px; /* 璧峰浣嶇疆 */
+    }
+    100% {
+        right: calc(100% - 863px); /* 浠庡彸鍒板乏缁撴潫浣嶇疆 */
+    }
+}
+.horizontal {
+    width: 45px;
+    height: 25px;
+    background-color: #409EFF;
+    top: 488px; /* 鍨傜洿灞呬腑 */
+    right: 210px; /* 鍒濆浣嶇疆 */
+    transform: translateY(-50%);
+    animation: move-horizontal 6s infinite; /* 浠庡彸鍒板乏鍔ㄧ敾锛屾寔缁�6绉掞紝鏃犻檺寰幆 */
+}
+@keyframes move-horizontal {
+    0% {
+        right: 210px; /* 璧峰浣嶇疆 */
+    }
+    100% {
+        right: calc(100% - 1030px); /* 浠庡彸鍒板乏缁撴潫浣嶇疆 */
+    }
+}
+.xiao {
+    width: 45px;
+    height: 25px;
+    background-color: #409EFF;
+    top: 569px; /* 鍨傜洿灞呬腑 */
+    right: 660px; /* 鍒濆浣嶇疆 */
+    transform: translateY(-50%);
+    animation: move-xiao 6s infinite; /* 浠庡彸鍒板乏鍔ㄧ敾锛屾寔缁�6绉掞紝鏃犻檺寰幆 */
+}
+@keyframes move-xiao {
+    0% {
+        right: 660px; /* 璧峰浣嶇疆 */
+    }
+    100% {
+        right: calc(100% - 820px); /* 浠庡彸鍒板乏缁撴潫浣嶇疆 */
+    }
+}
+.tu {
+    width: 45px;
+    height: 25px;
+    background-color: #409EFF;
+    top: 569px; /* 鍨傜洿灞呬腑 */
+    right: 778px; /* 鍒濆浣嶇疆 */
+    transform: translateY(-50%);
+    animation: move-tu 6s infinite; /* 浠庡彸鍒板乏鍔ㄧ敾锛屾寔缁�6绉掞紝鏃犻檺寰幆 */
+}
+@keyframes move-tu {
+    0% {
+        right: 778px; /* 璧峰浣嶇疆 */
+    }
+    100% {
+        right: calc(100% - 580px); /* 浠庡彸鍒板乏缁撴潫浣嶇疆 */
+    }
+}
+.zhan {
+    width: 45px;
+    height: 25px;
+    background-color: #409EFF;
+    top: 632px; /* 鍨傜洿灞呬腑 */
+    right: 572px; /* 鍒濆浣嶇疆 */
+    transform: translateY(-50%);
+    animation: move-zhan 6s infinite; /* 浠庡彸鍒板乏鍔ㄧ敾锛屾寔缁�6绉掞紝鏃犻檺寰幆 */
+}
+@keyframes move-zhan {
+    0% {
+        right: 572px; /* 璧峰浣嶇疆 */
+    }
+    100% {
+        right: calc(100% - 885px); /* 浠庡彸鍒板乏缁撴潫浣嶇疆 */
+    }
+}
+.zi {
+    width: 45px;
+    height: 25px;
+    background-color: #409EFF;
+    top: 632px; /* 鍨傜洿灞呬腑 */
+    right: 710px; /* 鍒濆浣嶇疆 */
+    transform: translateY(-50%);
+    animation: move-zi 6s infinite; /* 浠庡彸鍒板乏鍔ㄧ敾锛屾寔缁�6绉掞紝鏃犻檺寰幆 */
+}
+@keyframes move-zi {
+    0% {
+        right: 710px; /* 璧峰浣嶇疆 */
+    }
+    100% {
+        right: calc(100% - 645px); /* 浠庡彸鍒板乏缁撴潫浣嶇疆 */
+    }
+}
+.xia {
+    width: 45px;
+    height: 25px;
+    background-color: #409EFF;
+    top: 628px; /* 鍨傜洿灞呬腑 */
+    right: 1185px; /* 鍒濆浣嶇疆 */
+    transform: translateY(-50%);
+    animation: move-xia 6s infinite; /* 浠庡彸鍒板乏鍔ㄧ敾锛屾寔缁�6绉掞紝鏃犻檺寰幆 */
+}
+@keyframes move-xia {
+    0% {
+        right: 1185px; /* 璧峰浣嶇疆 */
+    }
+    100% {
+        right: calc(100% - 198px); /* 浠庡彸鍒板乏缁撴潫浣嶇疆 */
+    }
+}
+.zan {
+    width: 25px;
+    height: 45px;
+    background-color: #409EFF;
+    top: 570px; /* 鍒濆浣嶇疆 */
+    left: 172px; /* 姘村钩灞呬腑 */
+    transform: translateX(-50%);
+    animation: move-zan 6s infinite; /* 浠庝笂鍒颁笅鍔ㄧ敾锛屾寔缁�6绉掞紝鏃犻檺寰幆 */
+}
+@keyframes move-zan {
+    0% {
+        top: 570px; /* 璧峰浣嶇疆 */
+    }
+    100% {
+        top: calc(100% - 242px); /* 浠庝笅鍒颁笂缁撴潫浣嶇疆 */
+    }
+}
+.fa {
+    width: 25px;
+    height: 45px;
+    background-color: #409EFF;
+    top: 150px; /* 鍒濆浣嶇疆 */
+    left: 172px; /* 姘村钩灞呬腑 */
+    transform: translateX(-50%);
+    animation: move-fa 6s infinite; /* 浠庝笂鍒颁笅鍔ㄧ敾锛屾寔缁�6绉掞紝鏃犻檺寰幆 */
+}
+@keyframes move-fa {
+    0% {
+        top: 150px; /* 璧峰浣嶇疆 */
+    }
+    100% {
+        top: calc(100% - 660px); /* 浠庝笅鍒颁笂缁撴潫浣嶇疆 */
+    }
+}
+.hua {
+    width: 45px;
+    height: 25px;
+    background-color: #409EFF;
+    top: 117px; /* 鍨傜洿灞呬腑 */
+    right: 1250px; /* 鍒濆浣嶇疆 */
+    transform: translateY(-50%);
+    animation: move-hua 6s infinite; /* 浠庡乏鍒板彸鍔ㄧ敾锛屾寔缁�6绉掞紝鏃犻檺寰幆 */
+}
+@keyframes move-hua {
+    0% {
+      right: 1250px; /* 璧峰浣嶇疆 */
+    }
+    100% {
+        right: calc(100% - 360px); /* 缁撴潫浣嶇疆 */
+    }
+}
+.shui {
+    width: 45px;
+    height: 25px;
+    background-color: #409EFF;
+    top: 117px; /* 鍨傜洿灞呬腑 */
+    right: 1050px; /* 鍒濆浣嶇疆 */
+    transform: translateY(-50%);
+    animation: move-shui 6s infinite; /* 浠庡乏鍒板彸鍔ㄧ敾锛屾寔缁�6绉掞紝鏃犻檺寰幆 */
+}
+@keyframes move-shui {
+    0% {
+      right: 1050px; /* 璧峰浣嶇疆 */
+    }
+    100% {
+        right: calc(100% - 610px); /* 缁撴潫浣嶇疆 */
+    }
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Visualization/screenthree.vue b/UI-Project/src/views/Visualization/screenthree.vue
new file mode 100644
index 0000000..77a4333
--- /dev/null
+++ b/UI-Project/src/views/Visualization/screenthree.vue
@@ -0,0 +1,141 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+import request from "@/utils/request"
+import { ref, onMounted } from "vue";
+// import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+//  import LanguageMixin from './lang/LanguageMixin'
+const tableData = ref([])
+// 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰
+// const fetchTableData = async () => {
+//   try {
+//     // 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰锛屽苟绛夊緟鍝嶅簲
+//     // const response = await request.post("/loadGlass/optimizeProject/listByState", requestData);
+//     const response = await request.get("unLoadGlass/downStorage/selectStorageCage");
+
+//     // 妫�鏌ュ搷搴旂姸鎬�
+//     if (response.code === 200) {
+//       // 鏇存柊琛ㄦ牸鏁版嵁
+//       console.log('鎴愬姛鑾峰彇琛ㄦ牸鏁版嵁:', response.data);
+//       tableData.splice(0, tableData.length, ...response.data);
+//     } else {
+//       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+//       ElMessage.error(response.msg);
+//     }
+//   } catch (error) {
+//     // 澶勭悊璇锋眰澶辫触鐨勬儏鍐�
+//    ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
+//   }
+// };
+// onMounted(fetchTableData);
+request.get("unLoadGlass/downStorage/selectStorageCage").then((res) => {
+          if (res.code == 200) {
+          console.log(res.data);
+          tableData.value = res.data
+          } else {
+          ElMessage.warning(res.msg)
+          }
+          });
+const dialogForm = () => {
+  ElMessageBox.confirm(
+    '鏄惁鎶ョ己?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+  .then(() => {
+    // this.boxa = true
+    // this.box = false
+    })
+}
+const open = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+    .then(() => {
+      ElMessage({
+        type: 'success',
+        message: '鍒犻櫎鎴愬姛锛�',
+      })
+    })
+    .catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '鍒犻櫎澶辫触',
+      })
+    })
+}
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'OrderList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  data:  [
+    {
+      'id': '1',
+      'long': '5',
+      'wide': '1005',
+      'thick': '183.6',
+    }
+  ]
+})
+</script>
+<template>
+  <div id="awatch">
+    <img src="../../assets/d3.png" alt="" style="width: 100%;height: 160%;margin-top: 20px;">
+</div>
+</template>
+<style scoped>
+#awatch{
+  height: 460px;
+  /* margin-top: -60px; */
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Visualization/screentwo.vue b/UI-Project/src/views/Visualization/screentwo.vue
new file mode 100644
index 0000000..f78061d
--- /dev/null
+++ b/UI-Project/src/views/Visualization/screentwo.vue
@@ -0,0 +1,140 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+import request from "@/utils/request"
+import { ref, onMounted } from "vue";
+// import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+//  import LanguageMixin from './lang/LanguageMixin'
+const tableData = ref([])
+// 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰
+// const fetchTableData = async () => {
+//   try {
+//     // 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰锛屽苟绛夊緟鍝嶅簲
+//     // const response = await request.post("/loadGlass/optimizeProject/listByState", requestData);
+//     const response = await request.get("unLoadGlass/downStorage/selectStorageCage");
+
+//     // 妫�鏌ュ搷搴旂姸鎬�
+//     if (response.code === 200) {
+//       // 鏇存柊琛ㄦ牸鏁版嵁
+//       console.log('鎴愬姛鑾峰彇琛ㄦ牸鏁版嵁:', response.data);
+//       tableData.splice(0, tableData.length, ...response.data);
+//     } else {
+//       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+//       ElMessage.error(response.msg);
+//     }
+//   } catch (error) {
+//     // 澶勭悊璇锋眰澶辫触鐨勬儏鍐�
+//    ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
+//   }
+// };
+// onMounted(fetchTableData);
+request.get("unLoadGlass/downStorage/selectStorageCage").then((res) => {
+          if (res.code == 200) {
+          tableData.value = res.data
+          } else {
+          ElMessage.warning(res.msg)
+          }
+          });
+const dialogForm = () => {
+  ElMessageBox.confirm(
+    '鏄惁鎶ョ己?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+  .then(() => {
+    // this.boxa = true
+    // this.box = false
+    })
+}
+const open = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+    .then(() => {
+      ElMessage({
+        type: 'success',
+        message: '鍒犻櫎鎴愬姛锛�',
+      })
+    })
+    .catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '鍒犻櫎澶辫触',
+      })
+    })
+}
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'OrderList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  data:  [
+    {
+      'id': '1',
+      'long': '5',
+      'wide': '1005',
+      'thick': '183.6',
+    }
+  ]
+})
+</script>
+<template>
+  <div id="awatch">
+    <img src="../../assets/d2.png" alt="" style="width: 100%;height: 160%;margin-top: 20px;">
+</div>
+</template>
+<style scoped>
+#awatch{
+  height: 460px;
+  /* margin-top: -60px; */
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/hollow/hellowquiphistory.vue b/UI-Project/src/views/hollow/hellowquiphistory.vue
new file mode 100644
index 0000000..fd2d995
--- /dev/null
+++ b/UI-Project/src/views/hollow/hellowquiphistory.vue
@@ -0,0 +1,728 @@
+<template>  
+  <div>  
+<div style="display: flex;width: 1780px;">
+  <el-input v-model="flowCardId" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('searchOrder.processcards')" />
+  <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('hellow.isForceList')" clearable
+      style="width: 200px;margin-left: 10px;">
+      <el-option :label="$t('hellow.noisForceList')" value="0"></el-option>
+      <el-option :label="$t('hellow.yesisForceList')" value="1"></el-option>
+    </el-select>
+    <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('searchOrder.state')" clearable
+      style="width: 200px;margin-left: 10px;">
+      <el-option :label="$t('film.execution')" value="1"></el-option>
+      <el-option :label="$t('basicData.stop')" value="2"></el-option>
+      <el-option :label="$t('sorter.endingtask')" value="3"></el-option>
+    </el-select>
+    <el-date-picker
+            style="margin-left: 15px;"
+             v-model="timeRange"
+             type="datetimerange"
+             :shortcuts="shortcuts"
+             range-separator="鑷�"
+             :start-placeholder="$t('reportmanage.starttime')"
+             :end-placeholder="$t('reportmanage.endtime')"
+           />
+        <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="sethistorical()">{{$t('reportmanage.inquire')}}</el-button>
+   </div>
+      <el-table ref="table" style="margin-top: 20px;height: 580px;width: 99%;" :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+    <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.processcards')" min-width="50" />
+    <el-table-column prop="totalLayer" align="center" :label="$t('hellow.totalLayer')" min-width="20" />
+    <el-table-column prop="totalPairQuantity" align="center" :label="$t('hellow.totalPairQuantity')" min-width="50" />
+        <el-table-column
+          align="center"
+          :label="$t('hellow.isForceList')"
+          min-width="50"
+          prop="isForce"
+        >
+        <template #default="scope">  
+      <el-tag :type="getStatusTypea(scope.row.isForce)">  
+        {{ getStatusTexta(scope.row.isForce) }}  
+      </el-tag>  
+    </template> 
+        </el-table-column>
+        <el-table-column
+          align="center"
+          :label="$t('searchOrder.state')"
+          min-width="50"
+          prop="state"
+        >
+        <template #default="scope">  
+      <el-tag :type="getStatusTypeb(scope.row.state)">  
+        {{ getStatusTextb(scope.row.state) }}  
+      </el-tag>  
+    </template> 
+        </el-table-column>
+        <el-table-column prop="formattedCreateTime" align="center" :label="$t('reportmanage.starttime')" min-width="50" />
+        <el-table-column prop="formattedUpdateTime" align="center" :label="$t('reportmanage.endtime')" min-width="50" />
+        <el-table-column fixed="right" :label="$t('film.operate')" align="center">
+            <template #default="scope">
+          <el-button type="text" plain @click="handleptask(scope.row)">{{ $t('hellow.listFormula') }}</el-button>
+          <el-button type="text" plain @click="handlecagedetails(scope.row)">{{ $t('hellow.HollowGlass') }}</el-button>
+            </template>
+        </el-table-column>
+      </el-table>
+<div style="margin-top: 20px;margin-left: 40%;">
+      <el-pagination
+        v-model:current-page="currentPage2"
+        :page-size="pageSize"
+        :size="large"
+        :disabled="disabled"
+        layout="prev, pager, next, jumper"
+        :total="totalRecords"
+        @current-change="handlePageChange2"
+        style="margin-top: 10px;"
+    />
+  </div>
+  <el-dialog v-model="dialogFormVisiblef" top="5vh" width="65%" :title="$t('hellow.HollowGlass')">
+    <el-table  ref="table" style="margin-top: 20px;height: 450px;"
+        :data="tableDatacagedetails" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+        <el-table-column prop="flowCardId" :label="$t('hellow.flowCardId')" align="center" width="140"/>
+          <el-table-column prop="glassId" :label="$t('searchOrder.glassID')" align="center" width="140"/>
+          <el-table-column prop="hollowSequence" :label="$t('hellow.order')" align="center"/>
+          <el-table-column prop="thickness" :label="$t('hellow.thickness')" align="center"/>
+          <el-table-column prop="layer" :label="$t('hellow.layer')" align="center"/>
+          <el-table-column prop="filmsId" :label="$t('hellow.coatingtypes')" align="center"/>
+          <el-table-column prop="height" :label="$t('hellow.height')" align="center"/>
+          <el-table-column prop="width" :label="$t('hellow.width')" align="center"/>
+          <el-table-column prop="state" :label="$t('hellow.state')" align="center">
+            <template #default="scope">
+            {{ scope.row.state == -1 ? $t('hellow.waitingout') : $t('hellow.finishout') }}
+            </template>
+          </el-table-column>
+        </el-table>
+</el-dialog>
+<el-dialog v-model="dialogFormVisiblea" top="10vh" width="90%" :title="$t('hellow.listFormula')">
+  <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
+    <el-form label-width="150px" label-position="right">
+      <!-- 绗竴琛岋細3涓厓绱� -->
+      <el-row style="margin-top: 20px;">
+        <el-col :span="8">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.formulaName')" style="width: 90%;">
+              <el-input disabled v-model="formulaName" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="8">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('Mounting.removalmethoda')" style="width: 90%;">
+              <el-select v-model="filmRemove" clearable style="width: 100%" disabled placeholder=" ">
+                <el-option :label="$t('Mounting.removal')" value="1"></el-option>
+                <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="8">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.sealInsertb')" style="width: 90%;">
+              <el-input disabled v-model="sealInsert" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 绗簩琛岋細4涓厓绱� -->
+      <el-row style="margin-top: 20px;">
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.topRemove')" style="width: 90%;">
+              <el-input disabled v-model="topRemove" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.bottomRemove')" style="width: 90%;">
+              <el-input disabled v-model="bottomRemove" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.leftRemove')" style="width: 90%;">
+              <el-input disabled v-model="leftRemove" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.rightRemove')" style="width: 90%;">
+              <el-input disabled v-model="rightRemove" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 绗笁琛岋細4涓厓绱� -->
+      <el-row style="margin-top: 20px;">
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.casOneb')" style="width: 90%;">
+              <el-select v-model="casOne" clearable disabled style="width: 100%" placeholder=" ">
+                <el-option :label="$t('hellow.F')" value="0"></el-option>
+                <el-option :label="$t('hellow.Y')" value="1"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.casTwob')" style="width: 90%;">
+              <el-select v-model="casTwo" clearable disabled style="width: 100%" placeholder=" ">
+                <el-option :label="$t('hellow.F')" value="0"></el-option>
+                <el-option :label="$t('hellow.Y')" value="1"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.casThreeb')" style="width: 90%;">
+              <el-select v-model="casThree" clearable disabled style="width: 100%" placeholder=" ">
+                <el-option :label="$t('hellow.F')" value="0"></el-option>
+                <el-option :label="$t('hellow.Y')" value="1"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.casFourb')" style="width: 90%;">
+              <el-select v-model="casFour" clearable disabled style="width: 100%" placeholder=" ">
+                <el-option :label="$t('hellow.F')" value="0"></el-option>
+                <el-option :label="$t('hellow.Y')" value="1"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 绗洓琛岋細4涓厓绱� -->
+      <el-row style="margin-top: 20px;">
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.frameOneb')" style="width: 90%;">
+              <el-input disabled v-model="frameOne" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.frameTwob')" style="width: 90%;">
+              <el-input disabled v-model="frameTwo" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.frameThreeb')" style="width: 90%;">
+              <el-input disabled v-model="frameThree" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.frameFourb')" style="width: 90%;">
+              <el-input disabled v-model="frameFour" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 绗簲琛岋細4涓厓绱� -->
+      <el-row style="margin-top: 20px;">
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameHeightbOne')" style="width: 90%;">
+              <el-input disabled v-model="intervalFrameHeightOne" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameHeightbTwo')" style="width: 90%;">
+              <el-input disabled v-model="intervalFrameHeightTwo" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameHeightbThree')" style="width: 90%;">
+              <el-input disabled v-model="intervalFrameHeightThree" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameHeightbFour')" style="width: 90%;">
+              <el-input disabled v-model="intervalFrameHeightFour" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 绗叚琛岋細4涓厓绱� -->
+      <el-row style="margin-top: 20px;">
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameWidthbOne')" style="width: 90%;">
+              <el-input disabled v-model="intervalFrameWidthOne" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameWidthbTwo')" style="width: 90%;">
+              <el-input disabled v-model="intervalFrameWidthTwo" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameWidthbThree')" style="width: 90%;">
+              <el-input disabled v-model="intervalFrameWidthThree" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameWidthbFour')" style="width: 90%;">
+              <el-input disabled v-model="intervalFrameWidthFour" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 绗竷琛岋細4涓厓绱� -->
+      <el-row style="margin-top: 20px;">
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameTypedOne')" style="width: 90%;">
+              <el-select v-model="intervalFrameTypeOne" clearable style="width: 100%" disabled placeholder=" ">
+                <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option>
+                <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameTypedTwo')" style="width: 90%;">
+              <el-select v-model="intervalFrameTypeTwo" clearable style="width: 100%" disabled placeholder=" ">
+                <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option>
+                <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameTypedThree')" style="width: 90%;">
+              <el-select v-model="intervalFrameTypeThree" clearable style="width: 100%" disabled placeholder=" ">
+                <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option>
+                <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameTypedFour')" style="width: 90%;">
+              <el-select v-model="intervalFrameTypeFour" clearable style="width: 100%" disabled placeholder=" ">
+                <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option>
+                <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+    </el-form>
+  </div>
+</el-dialog>
+</div>
+</template>  
+<script lang="ts" setup>
+import {useI18n} from 'vue-i18n'
+import {useRouter} from "vue-router"
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {ElMessage, ElMessageBox} from 'element-plus'
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+import { inject } from 'vue';
+const globalDate = inject('globalDate');
+const router = useRouter()
+const timeRange = ref([])
+const selectValuesa = reactive([]);
+const tableDatax = ref([])
+const currentPage2 = ref(1)
+const totalRecords = ref(0)
+const rawGlassHeight = ref('');
+const rawGlassThickness = ref('');
+const flowCardId = ref('');
+const rawGlassfilmsId = ref('');
+const slot = ref('');
+const formattedCreate = ref('') 
+const formulaName = ref('') 
+const filmRemove = ref('') 
+const topRemove = ref('') 
+const bottomRemove = ref('') 
+const leftRemove = ref('') 
+const rightRemove = ref('') 
+const frameOne = ref('') 
+const frameTwo = ref('') 
+const frameThree = ref('') 
+const frameFour = ref('') 
+const sealInsert = ref('') 
+const casOne = ref('') 
+const casTwo = ref('') 
+const casThree = ref('') 
+const casFour = ref('') 
+const intervalFrameTypeOne = ref('') 
+const intervalFrameWidthOne = ref('') 
+const intervalFrameHeightOne = ref('') 
+const intervalFrameTypeTwo = ref('') 
+const intervalFrameWidthTwo = ref('') 
+const intervalFrameHeightTwo = ref('') 
+const intervalFrameTypeThree = ref('') 
+const intervalFrameWidthThree = ref('') 
+const intervalFrameHeightThre = ref('') 
+const intervalFrameTypeFour = ref('') 
+const intervalFrameWidthFour = ref('') 
+const intervalFrameHeightFour = ref('') 
+const createTime = ref('') 
+const updateTime = ref('') 
+const tableDatacagedetails = ref([])
+const dialogFormVisiblea = ref(false)
+const dialogFormVisiblef = ref(false)
+let getglobalDate = window.localStorage.getItem('getglobalDate')
+const historical = async () => {
+try {
+let startTime = window.localStorage.getItem('startTime')
+    const response = await request.post("/hollowGlass/hollowGlassOutRelationInfo/queryHollowHistoryTask", {
+      pageNo: 1,
+      pageSize: 20,
+      cell: 930,
+      flowCardId: '',
+      isForceList: [],
+      stateList: [],
+      beginDate: startTime,
+      endDate: getglobalDate
+  })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      const formattedData = response.data.records.map(record => ({
+      ...record,
+      formattedCreateTime: formatTimestamp(record.createTime),
+      formattedUpdateTime: formatTimestamp(record.updateTime),
+    }));
+      tableDatax.value = formattedData;
+      totalRecords.value = response.data.total/2 || 0
+    } else {
+      ElMessage.error(response.message);
+  }
+}
+catch (error) {
+}
+}
+const handlePageChange2 = (newPage) => {
+currentPage2.value = newPage;
+window.localStorage.setItem('pagenumber', currentPage2.value)
+historicala(currentPage2.value);
+};
+const historicala = async (page) => {
+try {
+let celllist=[]
+let stateList=[]
+  if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+if(selectValuesa[0]!=""){
+  celllist=[selectValuesa[0]];
+}
+}
+if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+    if(selectValuesa[1]!=""){
+      stateList=[selectValuesa[1]];
+    }
+  }
+let page = window.localStorage.getItem('pagenumber')
+let startTime = window.localStorage.getItem('startTime')
+    const response = await request.post("/hollowGlass/hollowGlassOutRelationInfo/queryHollowHistoryTask", {
+      pageNo: page,
+      pageSize: 20,
+      cell: 930,
+      flowCardId: flowCardId.value,
+      isForceList: celllist,
+      stateList: stateList,
+        beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+        endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+  })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      const formattedData = response.data.records.map(record => ({
+      ...record,
+      formattedCreateTime: formatTimestamp(record.createTime),
+      formattedUpdateTime: formatTimestamp(record.updateTime),
+    }));
+      tableDatax.value = formattedData;
+      totalRecords.value = response.data.total/2 || 0
+    } else {
+      ElMessage.error(response.message);
+  }
+}
+catch (error) {
+}
+}
+// 鍘嗗彶鏌ヨ鐐瑰嚮
+const sethistorical = async () => {
+try { 
+let celllist=[]
+let stateList=[]
+  if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+if(selectValuesa[0]!=""){
+  celllist=[selectValuesa[0]];
+}
+}
+if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+    if(selectValuesa[1]!=""){
+      stateList=[selectValuesa[1]];
+    }
+  }
+let startTime = window.localStorage.getItem('startTime')
+let page = window.localStorage.getItem('pagenumber')
+const response = await request.post("/hollowGlass/hollowGlassOutRelationInfo/queryHollowHistoryTask", {
+      pageNo: 1,
+      pageSize: 20,
+      cell: 930,
+      flowCardId: flowCardId.value,
+      isForceList: celllist,
+      stateList: stateList,
+        beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+        endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+  })
+    if (response.code == 200) {
+      currentPage2.value = 1
+      ElMessage.success(response.message);
+      const formattedData = response.data.records.map(record => ({
+      ...record,
+      formattedCreateTime: formatTimestamp(record.createTime),
+      formattedUpdateTime: formatTimestamp(record.updateTime),
+    }));
+      // tableDatax.value = response.data.records;
+      tableDatax.value = formattedData;
+      totalRecords.value = response.data.total/2 || 0
+    } else {
+      ElMessage.error(response.message);
+  }
+}
+catch (error) {
+}
+}
+// 閰嶆柟淇℃伅
+const handleptask = (row) => {
+  fetchcagedl(row); 
+  dialogFormVisiblea.value = true;
+};
+const removalMethodMap = {
+  1: t('Mounting.removal'),
+  0: t('Mounting.noremoval')
+};
+const fetchcagedl = async (row) => {
+  try  {
+    var url="/hollowGlass/hollowFormulaDetails/getFormulaDetailsById?id="+ row.formulaId;
+    const response = await request.get(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+        formulaName.value = response.data.formulaName
+        filmRemove.value = removalMethodMap[response.data.filmRemove];
+        topRemove.value = response.data.topRemove
+        bottomRemove.value = response.data.bottomRemove
+        leftRemove.value = response.data.leftRemove
+        rightRemove.value = response.data.rightRemove
+        frameOne.value = response.data.frameOne
+        frameTwo.value = response.data.frameTwo
+        frameThree.value = response.data.frameThree
+        frameFour.value = response.data.frameFour
+        sealInsert.value = response.data.sealInsert
+        casOne.value = response.data.casOne
+        casTwo.value = response.data.casTwo
+        casThree.value = response.data.casThree
+        casFour.value = response.data.casFour
+        intervalFrameTypeOne.value = response.data.intervalFrameTypeOne
+        intervalFrameWidthOne.value = response.data.intervalFrameWidthOne
+        intervalFrameHeightOne.value = response.data.intervalFrameHeightOne
+        intervalFrameTypeTwo.value = response.data.intervalFrameTypeTwo
+        intervalFrameWidthTwo.value = response.data.intervalFrameWidthTwo
+        intervalFrameHeightTwo.value = response.data.intervalFrameHeightTwo
+        intervalFrameTypeThree.value = response.data.intervalFrameTypeThree
+        intervalFrameWidthThree.value = response.data.intervalFrameWidthThree
+        intervalFrameHeightThre.value = response.data.intervalFrameHeightThre
+        intervalFrameTypeFour.value = response.data.intervalFrameTypeFour
+        intervalFrameWidthFour.value = response.data.intervalFrameWidthFour
+        intervalFrameHeightFour.value = response.data.intervalFrameHeightFour
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+// 闃熷垪淇℃伅
+const handlecagedetails = (row) => {
+  const { id } = row;
+  fetchcagedetails(id); 
+  dialogFormVisiblef.value = true;
+};
+const fetchcagedetails = async (id) => {
+  try  {
+    var url="/hollowGlass/hollowGlassQueueInfo/queryHollowGlassQueueInfoByTask?taskId="+ id;
+    const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      const formattedData = response.data.map(record => ({
+      ...record,
+      formaCreateTime: formatTimestamp(record.createTime),
+      formaUpdateTime: formatTimestamp(record.updateTime),
+    }));
+    tableDatacagedetails.value = formattedData;
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp) {
+const date = new Date(timestamp);
+const year = date.getFullYear();
+const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+const shortcuts = [
+  {
+    text: '鏈�杩戜竴鍛�',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setDate(oneWeekAgo.getDate() - 7)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+    },
+  },
+  {
+    text: '鏈�杩戜竴涓湀',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 1)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+    },
+  },
+  {
+    text: '鏈�杩戜笁涓湀',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 3)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+},
+  },
+]
+// 鏍煎紡鍖栧悗绔椂闂村苟璁$畻涓�鍛ㄥ墠鐨勬椂闂�
+const defaultTime = ref<[Date, Date]>([new Date(), new Date()]);
+function parseAndSetTime() {
+const backendTime = new Date(getglobalDate);
+const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 鍑忓幓7澶�
+  oneWeekAgo.setHours(0, 0, 0, 0);
+timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+}
+function getStatusTypeb(state: number) {  
+switch (state) {  
+  case 1:
+    return 'primary';  
+  case 2: 
+    return 'success';  
+  case 3: 
+    return 'info';  
+}  
+}
+function getStatusTextb(state: number) {
+switch (state) {
+  case 1:  
+    return t('film.execution');
+  case 2:  
+    return t('basicData.stop');
+  case 3:  
+    return t('sorter.endingtask');
+}  
+}
+function getStatusTypea(isForce: number) {  
+switch (isForce) {  
+  case 0: 
+    return 'primary';  
+  case 1: 
+    return 'success';  
+}  
+}  
+function getStatusTexta(isForce: number) {
+switch (isForce) {
+  case 0:
+    return t('hellow.noisForceList');
+  case 1:  
+  return t('hellow.yesisForceList');
+}  
+}
+function getStatustate(state: number) {  
+switch (state) {  
+  case 0: 
+    return 'primary';  
+  case 1: 
+    return 'success';  
+}  
+}  
+function getStatustatet(state: number) {
+switch (state) {
+  case 0:  
+    return t('hellow.noisForceList');
+  case 1:  
+  return t('hellow.yesisForceList');
+}  
+}
+function getisPairstate(isPair: number) {  
+switch (isPair) {  
+  case 0: 
+    return 'info';  
+  case 1: 
+    return 'success';  
+}  
+}  
+function getisPairstatet(isPair: number) {
+switch (isPair) {
+  case 1:  
+    return t('sorter.yes');
+  case 0:  
+  return t('hellow.no');
+}  
+}
+onMounted(() => {
+parseAndSetTime();
+historical();
+});
+</script>
+<style scoped>
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/hollow/hellowquipthreehistory.vue b/UI-Project/src/views/hollow/hellowquipthreehistory.vue
new file mode 100644
index 0000000..6130803
--- /dev/null
+++ b/UI-Project/src/views/hollow/hellowquipthreehistory.vue
@@ -0,0 +1,506 @@
+<template>  
+  <div>  
+<div style="display: flex;width: 1770px;">
+  <el-input v-model="flowCardId" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('searchOrder.processcards')" />
+  <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('hellow.isForceList')" clearable
+      style="width: 200px;margin-left: 10px;">
+      <el-option :label="$t('hellow.noisForceList')" value="0"></el-option>
+      <el-option :label="$t('hellow.yesisForceList')" value="1"></el-option>
+    </el-select>
+    <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('searchOrder.state')" clearable
+      style="width: 200px;margin-left: 10px;">
+      <el-option :label="$t('film.execution')" value="1"></el-option>
+      <el-option :label="$t('basicData.stop')" value="2"></el-option>
+      <el-option :label="$t('sorter.endingtask')" value="3"></el-option>
+    </el-select>
+    <el-date-picker
+            style="margin-left: 15px;"
+             v-model="timeRange"
+             type="datetimerange"
+             :shortcuts="shortcuts"
+             range-separator="鑷�"
+             :start-placeholder="$t('reportmanage.starttime')"
+             :end-placeholder="$t('reportmanage.endtime')"
+           />
+        <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="sethistorical()">{{$t('reportmanage.inquire')}}</el-button>
+   </div>
+      <el-table ref="table" style="margin-top: 20px;height: 580px;width: 1770px;" :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+    <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.processcards')" min-width="80" />
+    <el-table-column prop="totalLayer" align="center" :label="$t('hellow.totalLayer')" min-width="80" />
+    <el-table-column prop="totalPairQuantity" align="center" :label="$t('hellow.totalPairQuantity')" min-width="80" />
+        <el-table-column
+          align="center"
+          :label="$t('hellow.isForceList')"
+          min-width="80"
+          prop="isForce"
+        >
+        <template #default="scope">  
+      <el-tag :type="getStatusTypea(scope.row.isForce)">  
+        {{ getStatusTexta(scope.row.isForce) }}  
+      </el-tag>  
+    </template> 
+        </el-table-column>
+        <el-table-column
+          align="center"
+          :label="$t('searchOrder.state')"
+          min-width="80"
+          prop="state"
+        >
+        <template #default="scope">  
+      <el-tag :type="getStatusTypeb(scope.row.state)">  
+        {{ getStatusTextb(scope.row.state) }}  
+      </el-tag>  
+    </template> 
+        </el-table-column>
+        <el-table-column prop="formattedCreateTime" align="center" :label="$t('reportmanage.starttime')" min-width="100" />
+        <el-table-column prop="formattedUpdateTime" align="center" :label="$t('reportmanage.endtime')" min-width="100" />
+        <el-table-column fixed="right" :label="$t('film.operate')" align="center">
+            <template #default="scope">
+          <!-- <el-button type="text" plain @click="handleptask(scope.row)">{{ $t('hellow.listFormula') }}</el-button> -->
+          <el-button type="text" plain @click="handlecagedetails(scope.row)">{{ $t('hellow.HollowGlass') }}</el-button>
+            </template>
+        </el-table-column>
+      </el-table>
+<div style="margin-top: 20px;margin-left: 40%;">
+      <el-pagination
+        v-model:current-page="currentPage2"
+        :page-size="pageSize"
+        :size="large"
+        :disabled="disabled"
+        layout="prev, pager, next, jumper"
+        :total="totalRecords"
+        @current-change="handlePageChange2"
+        style="margin-top: 10px;"
+    />
+  </div>
+  
+  <el-dialog v-model="dialogFormVisiblef" top="5vh" width="65%" :title="$t('hellow.HollowGlass')">
+    <el-table  ref="table" style="margin-top: 20px;height: 450px;"
+        :data="tableDatacagedetails" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+        <el-table-column prop="flowCardId" :label="$t('hellow.flowCardId')" align="center" width="140"/>
+          <el-table-column prop="glassId" :label="$t('searchOrder.glassID')" align="center" width="140"/>
+          <el-table-column prop="hollowSequence" :label="$t('hellow.order')" align="center"/>
+          <el-table-column prop="thickness" :label="$t('hellow.thickness')" align="center"/>
+          <el-table-column prop="layer" :label="$t('hellow.layer')" align="center"/>
+          <el-table-column prop="filmsId" :label="$t('hellow.coatingtypes')" align="center"/>
+          <el-table-column prop="height" :label="$t('hellow.height')" align="center"/>
+          <el-table-column prop="width" :label="$t('hellow.width')" align="center"/>
+          <el-table-column prop="state" :label="$t('hellow.state')" align="center">
+            <template #default="scope">
+            {{ scope.row.state == -1 ? $t('hellow.waitingout') : $t('hellow.finishout') }}
+            </template>
+          </el-table-column>
+        </el-table>
+</el-dialog>
+<el-dialog v-model="dialogFormVisiblea" top="23vh" width="55%" :title="$t('hellow.listFormula')" >
+    <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
+     <el-form  label-width="150px">
+      <el-form label-width="150px" label-position="right">
+        <el-row style="margin-top: 10px;">
+          <el-col :span="8">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item :label="$t('hellow.formulaName')" style="width: 16vw;">
+                <el-input disabled v-model="formulaName" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="10">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('Mounting.removalmethoda')" style="width: 16vw;">
+            <el-select v-model="filmRemove" clearable  style="width: 220px" disabled>
+        <el-option :label="$t('Mounting.removal')" value="1"></el-option>
+        <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
+      </el-select>
+              </el-form-item>
+            </div>
+              </div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="8">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.bottomRemove')" style="width: 16vw;">
+                <el-input disabled v-model="bottomRemove" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="10">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.topRemove')" style="width: 16vw;">
+                <el-input disabled v-model="topRemove" autocomplete="off" />
+           </el-form-item>
+            </div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="8">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.leftRemove')" style="width: 16vw;">
+                <el-input disabled v-model="leftRemove" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="10">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.rightRemove')" style="width: 16vw;">
+            <el-input disabled v-model="rightRemove" autocomplete="off" />
+              </el-form-item>
+            </div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+        </el-dialog>
+</div>
+</template>  
+<script lang="ts" setup>
+import {useI18n} from 'vue-i18n'
+import {useRouter} from "vue-router"
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {ElMessage, ElMessageBox} from 'element-plus'
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+import { inject } from 'vue';
+const globalDate = inject('globalDate');
+const router = useRouter()
+const timeRange = ref([])
+const selectValuesa = reactive([]);
+const tableDatax = ref([])
+const currentPage2 = ref(1)
+const totalRecords = ref(0)
+const rawGlassHeight = ref('');
+const rawGlassThickness = ref('');
+const flowCardId = ref('');
+const rawGlassfilmsId = ref('');
+const formattedCreate = ref('') 
+const formulaName = ref('') 
+const filmRemove = ref('') 
+const topRemove = ref('') 
+const bottomRemove = ref('') 
+const leftRemove = ref('') 
+const rightRemove = ref('') 
+const frameOne = ref('') 
+const frameTwo = ref('') 
+const frameThree = ref('') 
+const frameFour = ref('') 
+const sealInsert = ref('') 
+const casOne = ref('') 
+const casTwo = ref('') 
+const casThree = ref('') 
+const casFour = ref('') 
+const intervalFrameTypeOne = ref('') 
+const intervalFrameWidthOne = ref('') 
+const intervalFrameHeightOne = ref('') 
+const intervalFrameTypeTwo = ref('') 
+const intervalFrameWidthTwo = ref('') 
+const intervalFrameHeightTwo = ref('') 
+const intervalFrameTypeThree = ref('') 
+const intervalFrameWidthThree = ref('') 
+const intervalFrameHeightThre = ref('') 
+const intervalFrameTypeFour = ref('') 
+const intervalFrameWidthFour = ref('') 
+const intervalFrameHeightFour = ref('') 
+const tableDatacagedetails = ref([])
+const dialogFormVisiblea = ref(false)
+const dialogFormVisiblef = ref(false)
+let getglobalDate = window.localStorage.getItem('getglobalDate')
+const historical = async () => {
+try {
+let startTime = window.localStorage.getItem('startTime')
+    const response = await request.post("/hollowGlass/hollowGlassOutRelationInfo/queryHollowHistoryTask", {
+      pageNo: 1,
+      pageSize: 20,
+      cell: 932,
+      flowCardId: '',
+      isForceList: [],
+      stateList: [],
+      beginDate: startTime,
+      endDate: getglobalDate
+  })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      const formattedData = response.data.records.map(record => ({
+      ...record,
+      formattedCreateTime: formatTimestamp(record.createTime),
+      formattedUpdateTime: formatTimestamp(record.updateTime),
+    }));
+      tableDatax.value = formattedData;
+      totalRecords.value = response.data.total/2 || 0
+    } else {
+      ElMessage.error(response.message);
+  }
+}
+catch (error) {
+}
+}
+const handlePageChange2 = (newPage) => {
+currentPage2.value = newPage;
+window.localStorage.setItem('pagenumber', currentPage2.value)
+historicala(currentPage2.value);
+};
+const historicala = async (page) => {
+try {
+let celllist=[]
+let stateList=[]
+  if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+if(selectValuesa[0]!=""){
+  celllist=[selectValuesa[0]];
+}
+}
+if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+    if(selectValuesa[1]!=""){
+      stateList=[selectValuesa[1]];
+    }
+  }
+let page = window.localStorage.getItem('pagenumber')
+let startTime = window.localStorage.getItem('startTime')
+    const response = await request.post("/hollowGlass/hollowGlassOutRelationInfo/queryHollowHistoryTask", {
+      pageNo: page,
+      pageSize: 20,
+      cell: 932,
+      flowCardId: flowCardId.value,
+      isForceList: celllist,
+      stateList: stateList,
+      beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+      endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+  })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      const formattedData = response.data.records.map(record => ({
+      ...record,
+      formattedCreateTime: formatTimestamp(record.createTime),
+      formattedUpdateTime: formatTimestamp(record.updateTime),
+    }));
+      tableDatax.value = formattedData;
+      totalRecords.value = response.data.total/2 || 0
+    } else {
+      ElMessage.error(response.message);
+  }
+}
+catch (error) {
+}
+}
+// 閰嶆柟淇℃伅
+const handleptask = (row) => {
+  fetchcagedl(row); 
+  dialogFormVisiblea.value = true;
+};
+const removalMethodMap = {
+  1: t('Mounting.removal'),
+  0: t('Mounting.noremoval')
+};
+const fetchcagedl = async (row) => {
+  try  {
+    var url="/hollowGlass/hollowFormulaDetails/getFormulaDetailsById?id="+ row.formulaId;
+    const response = await request.get(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+        formulaName.value = response.data.formulaName
+        filmRemove.value = removalMethodMap[response.data.filmRemove];
+        topRemove.value = response.data.topRemove
+        bottomRemove.value = response.data.bottomRemove
+        leftRemove.value = response.data.leftRemove
+        rightRemove.value = response.data.rightRemove
+        frameOne.value = response.data.frameOne
+        frameTwo.value = response.data.frameTwo
+        frameThree.value = response.data.frameThree
+        frameFour.value = response.data.frameFour
+        sealInsert.value = response.data.sealInsert
+        casOne.value = response.data.casOne
+        casTwo.value = response.data.casTwo
+        casThree.value = response.data.casThree
+        casFour.value = response.data.casFour
+        intervalFrameTypeOne.value = response.data.intervalFrameTypeOne
+        intervalFrameWidthOne.value = response.data.intervalFrameWidthOne
+        intervalFrameHeightOne.value = response.data.intervalFrameHeightOne
+        intervalFrameTypeTwo.value = response.data.intervalFrameTypeTwo
+        intervalFrameWidthTwo.value = response.data.intervalFrameWidthTwo
+        intervalFrameHeightTwo.value = response.data.intervalFrameHeightTwo
+        intervalFrameTypeThree.value = response.data.intervalFrameTypeThree
+        intervalFrameWidthThree.value = response.data.intervalFrameWidthThree
+        intervalFrameHeightThre.value = response.data.intervalFrameHeightThre
+        intervalFrameTypeFour.value = response.data.intervalFrameTypeFour
+        intervalFrameWidthFour.value = response.data.intervalFrameWidthFour
+        intervalFrameHeightFour.value = response.data.intervalFrameHeightFour
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+// 闃熷垪淇℃伅
+const handlecagedetails = (row) => {
+  const { id } = row;
+  fetchcagedetails(id); 
+  dialogFormVisiblef.value = true;
+};
+const fetchcagedetails = async (id) => {
+  try  {
+    var url="/hollowGlass/hollowGlassQueueInfo/queryHollowGlassQueueInfoByTask?taskId="+ id;
+    const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      const formattedData = response.data.map(record => ({
+      ...record,
+      formaCreateTime: formatTimestamp(record.createTime),
+      formaUpdateTime: formatTimestamp(record.updateTime),
+    }));
+    tableDatacagedetails.value = formattedData;
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+// 鍘嗗彶鏌ヨ鐐瑰嚮
+const sethistorical = async () => {
+try { 
+let celllist=[]
+let stateList=[]
+  if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+if(selectValuesa[0]!=""){
+  celllist=[selectValuesa[0]];
+}
+}
+if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+    if(selectValuesa[1]!=""){
+      stateList=[selectValuesa[1]];
+    }
+  }
+let startTime = window.localStorage.getItem('startTime')
+let page = window.localStorage.getItem('pagenumber')
+const response = await request.post("/hollowGlass/hollowGlassOutRelationInfo/queryHollowHistoryTask", {
+      pageNo: 1,
+      pageSize: 20,
+      cell: 932,
+      flowCardId: flowCardId.value,
+      isForceList: celllist,
+      stateList: stateList,
+      beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+      endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+  })
+    if (response.code == 200) {
+      currentPage2.value = 1
+      ElMessage.success(response.message);
+      const formattedData = response.data.records.map(record => ({
+      ...record,
+      formattedCreateTime: formatTimestamp(record.createTime),
+      formattedUpdateTime: formatTimestamp(record.updateTime),
+    }));
+      // tableDatax.value = response.data.records;
+      tableDatax.value = formattedData;
+      totalRecords.value = response.data.total/2 || 0
+    } else {
+      ElMessage.error(response.message);
+  }
+}
+catch (error) {
+}
+}
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp) {
+const date = new Date(timestamp);
+const year = date.getFullYear();
+const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+const shortcuts = [
+  {
+    text: '鏈�杩戜竴鍛�',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setDate(oneWeekAgo.getDate() - 7)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+    },
+  },
+  {
+    text: '鏈�杩戜竴涓湀',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 1)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+    },
+  },
+  {
+    text: '鏈�杩戜笁涓湀',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 3)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+},
+  },
+]
+// 鏍煎紡鍖栧悗绔椂闂村苟璁$畻涓�鍛ㄥ墠鐨勬椂闂�
+const defaultTime = ref<[Date, Date]>([new Date(), new Date()]);
+function parseAndSetTime() {
+const backendTime = new Date(getglobalDate);
+const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 鍑忓幓7澶�
+  oneWeekAgo.setHours(0, 0, 0, 0);
+timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+}
+function getStatusTypeb(state: number) {  
+switch (state) {  
+  case 1:
+    return 'primary';  
+  case 2: 
+    return 'success';  
+  case 3: 
+    return 'info';  
+}  
+}
+function getStatusTextb(state: number) {
+switch (state) {
+  case 1:  
+    return t('film.execution');
+  case 2:  
+    return t('basicData.stop');
+  case 3:  
+    return t('sorter.endingtask');
+}  
+}
+function getStatusTypea(isForce: number) {  
+switch (isForce) {  
+  case 0: 
+    return 'primary';  
+  case 1: 
+    return 'success';  
+}  
+}  
+function getStatusTexta(isForce: number) {
+switch (isForce) {
+  case 0:  
+    return t('hellow.noisForceList');
+  case 1:  
+  return t('hellow.yesisForceList');
+}  
+}
+onMounted(() => {
+parseAndSetTime();
+historical();
+});
+</script>
+<style scoped>  
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/hollow/hellowquiptwohistory.vue b/UI-Project/src/views/hollow/hellowquiptwohistory.vue
new file mode 100644
index 0000000..824e909
--- /dev/null
+++ b/UI-Project/src/views/hollow/hellowquiptwohistory.vue
@@ -0,0 +1,508 @@
+<template>  
+  <div>  
+<div style="display: flex;width: 1770px;">
+  <el-input v-model="flowCardId" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('searchOrder.processcards')" />
+  <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('hellow.isForceList')" clearable
+      style="width: 200px;margin-left: 10px;">
+      <el-option :label="$t('hellow.noisForceList')" value="0"></el-option>
+      <el-option :label="$t('hellow.yesisForceList')" value="1"></el-option>
+    </el-select>
+    <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('searchOrder.state')" clearable
+      style="width: 200px;margin-left: 10px;">
+      <el-option :label="$t('film.execution')" value="1"></el-option>
+      <el-option :label="$t('basicData.stop')" value="2"></el-option>
+      <el-option :label="$t('sorter.endingtask')" value="3"></el-option>
+    </el-select>
+    <el-date-picker
+            style="margin-left: 15px;"
+             v-model="timeRange"
+             type="datetimerange"
+             :shortcuts="shortcuts"
+             range-separator="鑷�"
+             :start-placeholder="$t('reportmanage.starttime')"
+             :end-placeholder="$t('reportmanage.endtime')"
+           />
+        <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="sethistorical()">{{$t('reportmanage.inquire')}}</el-button>
+   </div>
+      <el-table ref="table" style="margin-top: 20px;height: 580px;width: 1770px;" :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+    <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.processcards')" min-width="80" />
+    <el-table-column prop="totalLayer" align="center" :label="$t('hellow.totalLayer')" min-width="80" />
+    <el-table-column prop="totalPairQuantity" align="center" :label="$t('hellow.totalPairQuantity')" min-width="80" />
+        <el-table-column
+          align="center"
+          :label="$t('hellow.isForceList')"
+          min-width="80"
+          prop="isForce"
+        >
+        <template #default="scope">  
+      <el-tag :type="getStatusTypea(scope.row.isForce)">  
+        {{ getStatusTexta(scope.row.isForce) }}  
+      </el-tag>  
+    </template> 
+        </el-table-column>
+        <el-table-column
+          align="center"
+          :label="$t('searchOrder.state')"
+          min-width="80"
+          prop="state"
+        >
+        <template #default="scope">  
+      <el-tag :type="getStatusTypeb(scope.row.state)">  
+        {{ getStatusTextb(scope.row.state) }}  
+      </el-tag>  
+    </template> 
+        </el-table-column>
+        <el-table-column prop="formattedCreateTime" align="center" :label="$t('reportmanage.starttime')" min-width="100" />
+        <el-table-column prop="formattedUpdateTime" align="center" :label="$t('reportmanage.endtime')" min-width="100" />
+        <el-table-column fixed="right" :label="$t('film.operate')" align="center">
+            <template #default="scope">
+          <el-button type="text" plain @click="handleptask(scope.row)">{{ $t('hellow.listFormula') }}</el-button>
+          <el-button type="text" plain @click="handlecagedetails(scope.row)">{{ $t('hellow.HollowGlass') }}</el-button>
+            </template>
+        </el-table-column>
+      </el-table>
+<div style="margin-top: 20px;margin-left: 40%;">
+      <el-pagination
+        v-model:current-page="currentPage2"
+        :page-size="pageSize"
+        :size="large"
+        :disabled="disabled"
+        layout="prev, pager, next, jumper"
+        :total="totalRecords"
+        @current-change="handlePageChange2"
+        style="margin-top: 10px;"
+    />
+  </div>
+  
+  <el-dialog v-model="dialogFormVisiblef" top="5vh" width="65%" :title="$t('hellow.HollowGlass')">
+    <el-table  ref="table" style="margin-top: 20px;height: 450px;"
+        :data="tableDatacagedetails" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+        <el-table-column prop="flowCardId" :label="$t('hellow.flowCardId')" align="center" width="140"/>
+          <el-table-column prop="glassId" :label="$t('searchOrder.glassID')" align="center" width="140"/>
+          <el-table-column prop="hollowSequence" :label="$t('hellow.order')" align="center"/>
+          <el-table-column prop="thickness" :label="$t('hellow.thickness')" align="center"/>
+          <el-table-column prop="layer" :label="$t('hellow.layer')" align="center"/>
+          <el-table-column prop="filmsId" :label="$t('hellow.coatingtypes')" align="center"/>
+          <el-table-column prop="height" :label="$t('hellow.height')" align="center"/>
+          <el-table-column prop="width" :label="$t('hellow.width')" align="center"/>
+          <el-table-column prop="state" :label="$t('hellow.state')" align="center">
+            <template #default="scope">
+            {{ scope.row.state == -1 ? $t('hellow.waitingout') : $t('hellow.finishout') }}
+            </template>
+          </el-table-column>
+        </el-table>
+</el-dialog>
+<el-dialog v-model="dialogFormVisiblea" top="23vh" width="55%" :title="$t('hellow.listFormula')" >
+    <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
+     <el-form  label-width="150px">
+      <el-form label-width="150px" label-position="right">
+        <el-row style="margin-top: 10px;">
+          <el-col :span="8">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item :label="$t('hellow.formulaName')" style="width: 16vw;">
+                <el-input disabled v-model="formulaName" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="10">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('Mounting.removalmethoda')" style="width: 16vw;">
+            <el-select v-model="filmRemove" clearable  style="width: 220px" disabled>
+        <el-option :label="$t('Mounting.removal')" value="1"></el-option>
+        <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
+      </el-select>
+              </el-form-item>
+            </div>
+              </div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 20px;">
+          <el-col :span="8">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.bottomRemove')" style="width: 16vw;">
+                <el-input disabled v-model="bottomRemove" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="10">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.topRemove')" style="width: 16vw;">
+                <el-input disabled v-model="topRemove" autocomplete="off" />
+           </el-form-item>
+            </div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 20px;">
+          <el-col :span="8">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.leftRemove')" style="width: 16vw;">
+                <el-input disabled v-model="leftRemove" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="10">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.rightRemove')" style="width: 16vw;">
+            <el-input disabled v-model="rightRemove" autocomplete="off" />
+              </el-form-item>
+            </div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+        </el-dialog>
+</div>
+</template>  
+<script lang="ts" setup>
+import {useI18n} from 'vue-i18n'
+import {useRouter} from "vue-router"
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {ElMessage, ElMessageBox} from 'element-plus'
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+import { inject } from 'vue';
+const globalDate = inject('globalDate');
+const router = useRouter()
+const timeRange = ref([])
+const selectValuesa = reactive([]);
+const tableDatax = ref([])
+const currentPage2 = ref(1)
+const totalRecords = ref(0)
+const rawGlassHeight = ref('');
+const rawGlassThickness = ref('');
+const flowCardId = ref('');
+const rawGlassfilmsId = ref('');
+const formattedCreate = ref('') 
+const formulaName = ref('') 
+const filmRemove = ref('') 
+const topRemove = ref('') 
+const bottomRemove = ref('') 
+const leftRemove = ref('') 
+const rightRemove = ref('') 
+const frameOne = ref('') 
+const frameTwo = ref('') 
+const frameThree = ref('') 
+const frameFour = ref('') 
+const sealInsert = ref('') 
+const casOne = ref('') 
+const casTwo = ref('') 
+const casThree = ref('') 
+const casFour = ref('') 
+const intervalFrameTypeOne = ref('') 
+const intervalFrameWidthOne = ref('') 
+const intervalFrameHeightOne = ref('') 
+const intervalFrameTypeTwo = ref('') 
+const intervalFrameWidthTwo = ref('') 
+const intervalFrameHeightTwo = ref('') 
+const intervalFrameTypeThree = ref('') 
+const intervalFrameWidthThree = ref('') 
+const intervalFrameHeightThre = ref('') 
+const intervalFrameTypeFour = ref('') 
+const intervalFrameWidthFour = ref('') 
+const intervalFrameHeightFour = ref('') 
+const tableDatacagedetails = ref([])
+const dialogFormVisiblea = ref(false)
+const dialogFormVisiblef = ref(false)
+let getglobalDate = window.localStorage.getItem('getglobalDate')
+const historical = async () => {
+try {
+let startTime = window.localStorage.getItem('startTime')
+    const response = await request.post("/hollowGlass/hollowGlassOutRelationInfo/queryHollowHistoryTask", {
+      pageNo: 1,
+      pageSize: 20,
+      cell: 931,
+      flowCardId: '',
+      isForceList: [],
+      stateList: [],
+      beginDate: startTime,
+      endDate: getglobalDate
+  })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      const formattedData = response.data.records.map(record => ({
+      ...record,
+      formattedCreateTime: formatTimestamp(record.createTime),
+      formattedUpdateTime: formatTimestamp(record.updateTime),
+    }));
+      tableDatax.value = formattedData;
+      totalRecords.value = response.data.total/2 || 0
+    } else {
+      ElMessage.error(response.message);
+  }
+}
+catch (error) {
+}
+}
+const handlePageChange2 = (newPage) => {
+currentPage2.value = newPage;
+window.localStorage.setItem('pagenumber', currentPage2.value)
+historicala(currentPage2.value);
+};
+const historicala = async (page) => {
+try {
+let celllist=[]
+let stateList=[]
+  if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+if(selectValuesa[0]!=""){
+  celllist=[selectValuesa[0]];
+}
+}
+if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+    if(selectValuesa[1]!=""){
+      stateList=[selectValuesa[1]];
+    }
+  }
+let page = window.localStorage.getItem('pagenumber')
+let startTime = window.localStorage.getItem('startTime')
+    const response = await request.post("/hollowGlass/hollowGlassOutRelationInfo/queryHollowHistoryTask", {
+      pageNo: page,
+      pageSize: 20,
+      cell: 931,
+      flowCardId: flowCardId.value,
+      isForceList: celllist,
+      stateList: stateList,
+      beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+      endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+  })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      const formattedData = response.data.records.map(record => ({
+      ...record,
+      formattedCreateTime: formatTimestamp(record.createTime),
+      formattedUpdateTime: formatTimestamp(record.updateTime),
+    }));
+      tableDatax.value = formattedData;
+      totalRecords.value = response.data.total/2 || 0
+    } else {
+      ElMessage.error(response.message);
+  }
+}
+catch (error) {
+}
+}
+// 閰嶆柟淇℃伅
+const handleptask = (row) => {
+  fetchcagedl(row); 
+  dialogFormVisiblea.value = true;
+};
+const removalMethodMap = {
+  1: t('Mounting.removal'),
+  0: t('Mounting.noremoval')
+};
+const fetchcagedl = async (row) => {
+  try  {
+    var url="/hollowGlass/hollowFormulaDetails/getFormulaDetailsById?id="+ row.formulaId;
+    const response = await request.get(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+        formulaName.value = response.data.formulaName
+        filmRemove.value = removalMethodMap[response.data.filmRemove];
+        topRemove.value = response.data.topRemove
+        bottomRemove.value = response.data.bottomRemove
+        leftRemove.value = response.data.leftRemove
+        rightRemove.value = response.data.rightRemove
+        frameOne.value = response.data.frameOne
+        frameTwo.value = response.data.frameTwo
+        frameThree.value = response.data.frameThree
+        frameFour.value = response.data.frameFour
+        sealInsert.value = response.data.sealInsert
+        casOne.value = response.data.casOne
+        casTwo.value = response.data.casTwo
+        casThree.value = response.data.casThree
+        casFour.value = response.data.casFour
+        intervalFrameTypeOne.value = response.data.intervalFrameTypeOne
+        intervalFrameWidthOne.value = response.data.intervalFrameWidthOne
+        intervalFrameHeightOne.value = response.data.intervalFrameHeightOne
+        intervalFrameTypeTwo.value = response.data.intervalFrameTypeTwo
+        intervalFrameWidthTwo.value = response.data.intervalFrameWidthTwo
+        intervalFrameHeightTwo.value = response.data.intervalFrameHeightTwo
+        intervalFrameTypeThree.value = response.data.intervalFrameTypeThree
+        intervalFrameWidthThree.value = response.data.intervalFrameWidthThree
+        intervalFrameHeightThre.value = response.data.intervalFrameHeightThre
+        intervalFrameTypeFour.value = response.data.intervalFrameTypeFour
+        intervalFrameWidthFour.value = response.data.intervalFrameWidthFour
+        intervalFrameHeightFour.value = response.data.intervalFrameHeightFour
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+// 闃熷垪淇℃伅
+const handlecagedetails = (row) => {
+  const { id } = row;
+  fetchcagedetails(id); 
+  dialogFormVisiblef.value = true;
+};
+const fetchcagedetails = async (id) => {
+  try  {
+    var url="/hollowGlass/hollowGlassQueueInfo/queryHollowGlassQueueInfoByTask?taskId="+ id;
+    const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      const formattedData = response.data.map(record => ({
+      ...record,
+      formaCreateTime: formatTimestamp(record.createTime),
+      formaUpdateTime: formatTimestamp(record.updateTime),
+    }));
+    tableDatacagedetails.value = formattedData;
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+  }
+}
+// 鍘嗗彶鏌ヨ鐐瑰嚮
+const sethistorical = async () => {
+try { 
+let celllist=[]
+let stateList=[]
+  if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+if(selectValuesa[0]!=""){
+  celllist=[selectValuesa[0]];
+}
+}
+if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+    if(selectValuesa[1]!=""){
+      stateList=[selectValuesa[1]];
+    }
+  }
+let startTime = window.localStorage.getItem('startTime')
+let page = window.localStorage.getItem('pagenumber')
+const response = await request.post("/hollowGlass/hollowGlassOutRelationInfo/queryHollowHistoryTask", {
+      pageNo: 1,
+      pageSize: 20,
+      cell: 931,
+      flowCardId: flowCardId.value,
+      isForceList: celllist,
+      stateList: stateList,
+      beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+      endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+  })
+    if (response.code == 200) {
+      currentPage2.value = 1
+      ElMessage.success(response.message);
+      const formattedData = response.data.records.map(record => ({
+      ...record,
+      formattedCreateTime: formatTimestamp(record.createTime),
+      formattedUpdateTime: formatTimestamp(record.updateTime),
+    }));
+      // tableDatax.value = response.data.records;
+      tableDatax.value = formattedData;
+      totalRecords.value = response.data.total/2 || 0
+    } else {
+      ElMessage.error(response.message);
+  }
+}
+catch (error) {
+}
+}
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp) {
+const date = new Date(timestamp);
+const year = date.getFullYear();
+const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+const shortcuts = [
+  {
+    text: '鏈�杩戜竴鍛�',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setDate(oneWeekAgo.getDate() - 7)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+    },
+  },
+  {
+    text: '鏈�杩戜竴涓湀',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 1)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+    },
+  },
+  {
+    text: '鏈�杩戜笁涓湀',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 3)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+},
+  },
+]
+// 鏍煎紡鍖栧悗绔椂闂村苟璁$畻涓�鍛ㄥ墠鐨勬椂闂�
+const defaultTime = ref<[Date, Date]>([new Date(), new Date()]);
+function parseAndSetTime() {
+const backendTime = new Date(getglobalDate);
+const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 鍑忓幓7澶�
+  oneWeekAgo.setHours(0, 0, 0, 0);
+timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+}
+function getStatusTypeb(state: number) {  
+switch (state) {  
+  case 1:
+    return 'primary';  
+  case 2: 
+    return 'success';  
+  case 3: 
+    return 'info';  
+}  
+}
+function getStatusTextb(state: number) {
+switch (state) {
+  case 1:  
+    return t('film.execution');
+  case 2:  
+    return t('basicData.stop');
+  case 3:  
+    return t('sorter.endingtask');
+}  
+}
+function getStatusTypea(isForce: number) {  
+switch (isForce) {  
+  case 0: 
+    return 'primary';  
+  case 1: 
+    return 'success';  
+}  
+}  
+function getStatusTexta(isForce: number) {
+switch (isForce) {
+  case 0:  
+    return t('hellow.noisForceList');
+  case 1:  
+  return t('hellow.yesisForceList');
+}  
+}
+onMounted(() => {
+parseAndSetTime();
+historical();
+});
+</script>
+<style scoped>  
+#dt { display:block; float:left;line-height: 20px;margin-left: 10px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 50%;}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/hollow/hellowslicecagehistory.vue b/UI-Project/src/views/hollow/hellowslicecagehistory.vue
new file mode 100644
index 0000000..11769d4
--- /dev/null
+++ b/UI-Project/src/views/hollow/hellowslicecagehistory.vue
@@ -0,0 +1,542 @@
+<template>  
+  <div>  
+<div style="display: flex;width: 1770px;">
+  <el-input v-model="glassId" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('searchOrder.inglassID')" />
+  <el-input v-model="startSlot" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" @input="handleInputa" :placeholder="$t('film.originateslot')" />
+  <el-input v-model="targetSlot" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" @input="handleInputb" :placeholder="$t('film.endoriginateslot')" />
+        <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('searchOrder.taskstatus')" clearable
+        style="width: 200px;margin-left: 10px;">
+        <el-option :label="$t('searchOrder.begin')" value="0"></el-option>
+        <el-option :label="$t('searchOrder.finish')" value="2"></el-option>
+        <el-option :label="$t('order.dilapidation')" value="3"></el-option>
+        <el-option :label="$t('searchOrder.uncar')" value="4"></el-option>
+      </el-select>
+      <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('film.enabletype')" clearable
+        style="width: 200px;margin-left: 10px;">
+        <el-option :label="$t('searchOrder.inkage')" value="4"></el-option>
+        <el-option :label="$t('searchOrder.outfilm')" value="5"></el-option>
+        <el-option :label="$t('film.dispatch')" value="6"></el-option>
+      </el-select>
+      <el-date-picker
+            style="margin-left: 15px;"
+             v-model="timeRange"
+             type="datetimerange"
+             :shortcuts="shortcuts"
+             range-separator="鑷�"
+             :start-placeholder="$t('reportmanage.starttime')"
+             :end-placeholder="$t('reportmanage.endtime')"
+           />
+        <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="handleClick()">{{$t('reportmanage.inquire')}}</el-button>
+   </div>
+  <div style="margin-bottom: 10px;margin-top: 20px;margin-left: 20px;">
+      <el-form>
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="5">
+              <div id="dt" style="font-size: 15px;">
+              <el-form-item :label="$t('hellow.hollowCountOutOne')"  style="width: 14vw">
+                {{ hollowCountOutOne }}
+              </el-form-item>
+              </div>
+          </el-col>
+          <el-col :span="5">
+              <div id="dt" style="font-size: 15px;">
+              <el-form-item :label="$t('hellow.hollowTotalAreaOutOne')" style="width: 14vw">
+                {{ hollowTotalAreaOutOne }}
+              </el-form-item>
+              </div>
+          </el-col>
+          <el-col :span="5">
+            <div id="dta" style="font-size: 15px;">
+          <el-form-item :label="$t('hellow.hollowCountOutTwo')" style="width: 14vw">
+                {{ hollowCountOutTwo }}
+              </el-form-item>
+              </div>
+          </el-col>
+          <el-col :span="4">
+              <div id="dt" style="font-size: 15px;">
+              <el-form-item :label="$t('hellow.hollowTotalAreaOutTwo')" style="width: 14vw">
+                {{ hollowTotalAreaOutTwo }}
+              </el-form-item>
+              </div>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+      <el-table ref="table" style="margin-top: 20px;height: 580px;width: 1770px;" :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+    <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="80" />
+    <el-table-column prop="startSlot" align="center" :label="$t('film.originateslot')" min-width="80" />
+        <el-table-column prop="targetSlot" align="center" :label="$t('film.endoriginateslot')" min-width="80" />
+        <el-table-column
+          align="center"
+          :label="$t('film.taskstatus')"
+          min-width="80"
+          prop="taskState"
+        >
+        <template #default="scope">  
+      <el-tag :type="getStatusTypeb(scope.row.taskState)">  
+        {{ getStatusTextb(scope.row.taskState) }}  
+      </el-tag>  
+    </template> 
+        </el-table-column>
+        <el-table-column
+          align="center"
+          :label="$t('film.enabletype')"
+          min-width="80"
+          prop="taskType"
+        >
+        <template #default="scope">  
+      <el-tag :type="getStatusTypea(scope.row.taskType)">  
+        {{ getStatusTexta(scope.row.taskType) }}  
+      </el-tag>  
+    </template> 
+        </el-table-column>
+        <el-table-column prop="formattedCreateTime" align="center" :label="$t('reportmanage.starttime')" min-width="100" />
+        <el-table-column prop="formattedUpdateTime" align="center" :label="$t('reportmanage.endtime')" min-width="100" />
+      </el-table>
+<div style="margin-top: 20px;margin-left: 40%;">
+      <el-pagination
+        v-model:current-page="currentPage2"
+        :page-size="pageSize"
+        :size="large"
+        :disabled="disabled"
+        layout="prev, pager, next, jumper"
+        :total="totalRecords"
+        @current-change="handlePageChange2"
+        style="margin-top: 10px;"
+    />
+  </div>
+</div>
+</template>  
+<script lang="ts" setup>
+import {useI18n} from 'vue-i18n'
+import {useRouter} from "vue-router"
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {ElMessage, ElMessageBox} from 'element-plus'
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+import { inject } from 'vue';
+const globalDate = inject('globalDate');
+const router = useRouter()
+const timeRange = ref([])
+const selectValuesa = reactive([]);
+const tableDatax = ref([])
+const currentPage2 = ref(1)
+const totalRecords = ref(0)
+const hollowCountOutOne = ref(0)
+const hollowCountOutTwo = ref(0)
+const hollowTotalAreaOutOne = ref(0)
+const hollowTotalAreaOutTwo = ref(0)
+const glassId = ref('');
+const startSlot = ref('');
+const targetSlot = ref('');
+let getglobalDate = window.localStorage.getItem('getglobalDate')
+// 澶勭悊杈撳叆浜嬩欢
+const handleInputa = (value: string) => {
+  const isNumeric = /^\d*$/.test(value);
+  if (isNumeric) {
+    startSlot.value = value;
+  } else {
+    startSlot.value = '';
+  }
+};
+const handleInputb = (value: string) => {
+  const isNumeric = /^\d*$/.test(value);
+  if (isNumeric) {
+    targetSlot.value = value;
+  } else {
+    targetSlot.value = '';
+  }
+};
+const Daily = async () => {
+try {
+let startTime = window.localStorage.getItem('startTime')
+    const response = await request.post("/hollowGlass/hollowBigStorageCageHistoryTask/queryHollowDailyProduction", {
+      pageNo: 1,
+      pageSize: 20,
+      glassId: '',
+      startSlot: 0,
+      targetSlot: 0,
+      taskStateList: [],
+      taskTypeList: [],
+      beginDate: startTime,
+      endDate: getglobalDate
+  })
+    if (response.code == 200) {
+      hollowCountOutOne.value = response.data.hollowCountOutOne
+      hollowCountOutTwo.value = response.data.hollowCountOutTwo
+      hollowTotalAreaOutOne.value = response.data.hollowTotalAreaOutOne
+      hollowTotalAreaOutTwo.value = response.data.hollowTotalAreaOutTwo
+    } else {
+      ElMessage.error(response.message);
+  }
+}
+catch (error) {
+}
+}
+const historical = async () => {
+try {
+let startTime = window.localStorage.getItem('startTime')
+    const response = await request.post("/hollowGlass/hollowBigStorageCageHistoryTask/queryHollowBigStorageCageHistoryTask", {
+      pageNo: 1,
+      pageSize: 20,
+      glassId: '',
+      startSlot: 0,
+      targetSlot: 0,
+      taskStateList: [],
+      taskTypeList: [],
+      beginDate: startTime,
+      endDate: getglobalDate
+  })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+        const formattedData = response.data.records.map(record => ({
+        ...record,
+        formattedCreateTime: formatTimestamp(record.createTime),
+        formattedUpdateTime: formatTimestamp(record.updateTime),
+      }));
+        // tableDatax.value = response.data.records;
+        tableDatax.value = formattedData;
+      totalRecords.value = response.data.total/2 || 0
+    } else {
+      ElMessage.error(response.message);
+  }
+}
+catch (error) {
+}
+}
+const handlePageChange2 = (newPage) => {
+currentPage2.value = newPage;
+window.localStorage.setItem('pagenumber', currentPage2.value)
+historicala(currentPage2.value);
+Dailya(currentPage2.value);
+};
+const historicala = async (page) => {
+try { 
+let celllist=[]
+let stateList=[]
+let pstartSlot= ''
+let ptargetSlot=''
+if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+  if(selectValuesa[0]!=""){
+    celllist=[selectValuesa[0]];
+  }
+}
+if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+  if(selectValuesa[1]!=""){
+    stateList=[selectValuesa[1]];
+  }
+}
+if(startSlot.value != ""){
+  pstartSlot = startSlot.value
+}else{
+  pstartSlot = '0'
+}
+if(targetSlot.value != ""){
+  ptargetSlot = targetSlot.value
+}else{
+  ptargetSlot = '0'
+}
+let page = window.localStorage.getItem('pagenumber')
+let startTime = window.localStorage.getItem('startTime')
+    const response = await request.post("/hollowGlass/hollowBigStorageCageHistoryTask/queryHollowBigStorageCageHistoryTask", {
+      pageNo: page,
+      pageSize: 20,
+      glassId: glassId.value,
+      startSlot: pstartSlot,
+      targetSlot: ptargetSlot,
+      taskStateList: celllist,
+      taskTypeList: stateList,
+      beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+      endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+  })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+        const formattedData = response.data.records.map(record => ({
+        ...record,
+        formattedCreateTime: formatTimestamp(record.createTime),
+        formattedUpdateTime: formatTimestamp(record.updateTime),
+      }));
+        // tableDatax.value = response.data.records;
+        tableDatax.value = formattedData;
+      totalRecords.value = response.data.total/2 || 0
+    } else {
+      ElMessage.error(response.message);
+  }
+}
+catch (error) {
+}
+}
+const Dailya = async (page) => {
+try { 
+let celllist=[]
+let stateList=[]
+let pstartSlot= ''
+let ptargetSlot=''
+if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+  if(selectValuesa[0]!=""){
+    celllist=[selectValuesa[0]];
+  }
+}
+if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+  if(selectValuesa[1]!=""){
+    stateList=[selectValuesa[1]];
+  }
+}
+if(startSlot.value != ""){
+  pstartSlot = startSlot.value
+}else{
+  pstartSlot = '0'
+}
+if(targetSlot.value != ""){
+  ptargetSlot = targetSlot.value
+}else{
+  ptargetSlot = '0'
+}
+let page = window.localStorage.getItem('pagenumber')
+let startTime = window.localStorage.getItem('startTime')
+    const response = await request.post("/hollowGlass/hollowBigStorageCageHistoryTask/queryHollowDailyProduction", {
+      pageNo: page,
+      pageSize: 20,
+      glassId: glassId.value,
+      startSlot: pstartSlot,
+      targetSlot: ptargetSlot,
+      taskStateList: celllist,
+      taskTypeList: stateList,
+      beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+      endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+  })
+    if (response.code == 200) {
+      hollowCountOutOne.value = response.data.hollowCountOutOne
+      hollowCountOutTwo.value = response.data.hollowCountOutTwo
+      hollowTotalAreaOutOne.value = response.data.hollowTotalAreaOutOne
+      hollowTotalAreaOutTwo.value = response.data.hollowTotalAreaOutTwo
+    } else {
+      ElMessage.error(response.message);
+  }
+}
+catch (error) {
+}
+}
+const handleClick = async () => {
+  await sethistorical();
+  await Dailyhistorical();
+};
+// 鍘嗗彶鏌ヨ
+const sethistorical = async () => {
+try { 
+let startTime = window.localStorage.getItem('startTime')
+let celllist=[]
+let stateList=[]
+let pstartSlot= ''
+let ptargetSlot=''
+if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+  if(selectValuesa[0]!=""){
+    celllist=[selectValuesa[0]];
+  }
+}
+if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+  if(selectValuesa[1]!=""){
+    stateList=[selectValuesa[1]];
+  }
+}
+if(startSlot.value != ""){
+  pstartSlot = startSlot.value
+}else{
+  pstartSlot = '0'
+}
+if(targetSlot.value != ""){
+  ptargetSlot = targetSlot.value
+}else{
+  ptargetSlot = '0'
+}
+let page = window.localStorage.getItem('pagenumber')
+const response = await request.post("/hollowGlass/hollowBigStorageCageHistoryTask/queryHollowBigStorageCageHistoryTask", {
+      pageNo: 1,
+      pageSize: 20,
+      glassId: glassId.value,
+      startSlot: pstartSlot,
+      targetSlot: ptargetSlot,
+      taskStateList: celllist,
+      taskTypeList: stateList,
+      beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+      endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+  })
+    if (response.code == 200) {
+        currentPage2.value = 1
+        ElMessage.success(response.message);
+        const formattedData = response.data.records.map(record => ({
+        ...record,
+        formattedCreateTime: formatTimestamp(record.createTime),
+        formattedUpdateTime: formatTimestamp(record.updateTime),
+      }));
+        tableDatax.value = formattedData;
+      totalRecords.value = response.data.total/2 || 0
+    } else {
+      ElMessage.error(response.message);
+  }
+}
+catch (error) {
+}
+}
+const Dailyhistorical = async () => {
+try { 
+let startTime = window.localStorage.getItem('startTime')
+let celllist=[]
+let stateList=[]
+let pstartSlot= ''
+let ptargetSlot=''
+if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+  if(selectValuesa[0]!=""){
+    celllist=[selectValuesa[0]];
+  }
+}
+if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+  if(selectValuesa[1]!=""){
+    stateList=[selectValuesa[1]];
+  }
+}
+if(startSlot.value != ""){
+  pstartSlot = startSlot.value
+}else{
+  pstartSlot = '0'
+}
+if(targetSlot.value != ""){
+  ptargetSlot = targetSlot.value
+}else{
+  ptargetSlot = '0'
+}
+let page = window.localStorage.getItem('pagenumber')
+const response = await request.post("/hollowGlass/hollowBigStorageCageHistoryTask/queryHollowDailyProduction", {
+      pageNo: 1,
+      pageSize: 20,
+      glassId: glassId.value,
+      startSlot: pstartSlot,
+      targetSlot: ptargetSlot,
+      taskStateList: celllist,
+      taskTypeList: stateList,
+      beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
+      endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
+  })
+    if (response.code == 200) {
+      hollowCountOutOne.value = response.data.hollowCountOutOne
+      hollowCountOutTwo.value = response.data.hollowCountOutTwo
+      hollowTotalAreaOutOne.value = response.data.hollowTotalAreaOutOne
+      hollowTotalAreaOutTwo.value = response.data.hollowTotalAreaOutTwo
+    } else {
+      ElMessage.error(response.message);
+  }
+}
+catch (error) {
+}
+}
+
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp) {
+const date = new Date(timestamp);
+const year = date.getFullYear();
+const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+const shortcuts = [
+  {
+    text: '鏈�杩戜竴鍛�',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setDate(oneWeekAgo.getDate() - 7)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+    },
+  },
+  {
+    text: '鏈�杩戜竴涓湀',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 1)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+    },
+  },
+  {
+    text: '鏈�杩戜笁涓湀',
+    value: () => {
+      const backendTime = new Date(getglobalDate)
+      const oneWeekAgo = new Date(getglobalDate)
+      oneWeekAgo.setHours(0, 0, 0, 0);
+      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 3)
+      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
+      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+},
+  },
+]
+// 鏍煎紡鍖栧悗绔椂闂村苟璁$畻涓�鍛ㄥ墠鐨勬椂闂�
+const defaultTime = ref<[Date, Date]>([new Date(), new Date()]);
+function parseAndSetTime() {
+const backendTime = new Date(getglobalDate);
+const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 鍑忓幓7澶�
+oneWeekAgo.setHours(0, 0, 0, 0);
+timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+}
+function getStatusTypeb(taskState: number) {  
+switch (taskState) {  
+  case 0:
+    return 'primary';  
+  case 2: 
+    return 'success';  
+  case 3: 
+    return 'danger';  
+  case 4: 
+    return 'warning';  
+}  
+}
+function getStatusTextb(taskState: number) {
+switch (taskState) {
+  case 0:  
+    return t('searchOrder.begin');
+  case 2:  
+    return t('searchOrder.finish');
+  case 3:  
+  return t('order.dilapidation');
+  case 4:  
+  return t('searchOrder.uncar');
+}  
+}
+function getStatusTypea(taskType: number) {  
+switch (taskType) {  
+  case 4: 
+    return 'primary';  
+  case 5: 
+    return 'success';  
+  case 6:
+    return 'warning';  
+}  
+}  
+function getStatusTexta(taskType: number) {
+switch (taskType) {
+  case 4:  
+    return t('searchOrder.inkage');
+  case 5:  
+  return t('searchOrder.outfilm');
+  case 6:  
+  return t('film.dispatch');
+}  
+}
+onMounted(() => {
+parseAndSetTime();
+historical();
+Daily()
+});
+</script>
+<style scoped>  
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/hollow/hol.vue b/UI-Project/src/views/hollow/hol.vue
new file mode 100644
index 0000000..c3260ac
--- /dev/null
+++ b/UI-Project/src/views/hollow/hol.vue
@@ -0,0 +1,36 @@
+<script setup>
+let indexFlag = $ref(1)
+function changeRouter(index) {
+  indexFlag = index
+}
+</script>
+<template>
+  <div id="main-body">
+    <router-view/>
+  </div>
+</template>
+<style scoped>
+#main-div {
+  width: 100%;
+  height: 100%;
+}
+#div-title {
+  height: 2%;
+  width: 100%;
+}
+#searchButton {
+  margin-top: -5px;
+  margin-left: 1rem;
+}
+#main-body {
+  width: 100%;
+  height: 95%;
+  /* margin-top: 1%; */
+}
+#select {
+  margin-left: 0.5rem;
+}
+:deep(.indexTag .el-breadcrumb__inner) {
+  color: #5CADFE !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/hollow/hollowaluminum.vue b/UI-Project/src/views/hollow/hollowaluminum.vue
new file mode 100644
index 0000000..bb3a06c
--- /dev/null
+++ b/UI-Project/src/views/hollow/hollowaluminum.vue
@@ -0,0 +1,203 @@
+<script setup>
+import { onBeforeUnmount, onMounted, ref, nextTick } from "vue";
+import { useRouter } from "vue-router";
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { host, WebSocketHost } from '@/utils/constants';
+import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
+import { useI18n } from 'vue-i18n';
+import request from '@/utils/request';
+const router = useRouter();
+const { t } = useI18n();
+const language = ref(localStorage.getItem('lang') || 'zh');
+const carouselData = ref([]);
+const activeIndex = ref('');
+const isDialogVisible = ref(false);
+const selectedItem = ref(null);
+const selectedLayer = ref(null);
+const maxLayer = ref(0);
+const carouselRef = ref(null); // 馃憟 ref 鐢ㄤ簬璁块棶缁勪欢瀹炰緥
+const handlesure = async () => {
+  try {
+    const response = await request.post('/hollowGlass/hollowGlassQueueInfo/queryHollowGlassQueueInfoByLine', {
+      cell: 930,
+    });
+    if (response.code === 200) {
+      carouselData.value = response.data.map((item) => ({
+        width: item.width,
+        height: item.height,
+        state: item.state,
+        flowCardId: item.flowCardId,
+        thickness: item.thickness,
+        hollowSequence: item.hollowSequence,
+        layer: item.layer,
+        relationId: item.relationId
+      }));
+      // 鏌ユ壘 state === -2 鐨勯」
+      const targetIndex = carouselData.value.findIndex((item) => item.state === -2);
+      const finalIndex = targetIndex !== -1 ? targetIndex : 0;
+      // 绛夊緟 DOM 娓叉煋瀹屾垚鍚庡垏鎹㈤〉闈�
+      await nextTick();
+      activeIndex.value = finalIndex;
+      carouselRef.value?.setActiveItem(finalIndex); // 寮哄埗鏇存柊 Element Plus 鐨勮疆鎾粍浠�
+    } else {
+      console.error('鎺ュ彛杩斿洖閿欒:', response.message || '鏈煡閿欒');
+    }
+  } catch (error) {
+    console.error('璇锋眰澶辫触:', error);
+  }
+};
+const handleDilapidationClick = (item) => {
+  if (item.layer > 0) {
+    selectedItem.value = item;
+    maxLayer.value = item.layer;
+    selectedLayer.value = null; // 閲嶇疆閫夋嫨
+    isDialogVisible.value = true;
+  } else {
+    ElMessage.warning('褰撳墠椤规病鏈夊眰淇℃伅');
+  }
+};
+const confirmDilapidation = async () => {
+  if (!selectedLayer.value) {
+    ElMessage.warning('璇烽�夋嫨涓�涓眰鏁�');
+    return;
+  }
+  try {
+    const response = await request.post('/hollowGlass/hollowGlassQueueInfo/confirmBorder', {
+      hollowSequence: selectedItem.value.hollowSequence,
+      relationId: selectedItem.value.relationId,
+      layer: selectedLayer.value,
+      state: 8,
+    });
+    ElMessage.success(`宸查�夋嫨灞傛暟锛�${selectedLayer.value}`);
+    isDialogVisible.value = false;
+    handlesure()
+      } catch (error) {
+    console.error('鐮存崯鎿嶄綔澶辫触:', error);
+    ElMessage.error('鐮存崯鎿嶄綔澶辫触锛岃閲嶈瘯');
+  }
+};
+// 纭
+const handleButtonClick = async (item) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('hellow.clickmakesure'),
+      t('productStock.prompt'),
+      {
+        confirmButtonText: t('productStock.yes'),
+        cancelButtonText: t('productStock.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+      const response = await request.post('/hollowGlass/hollowGlassQueueInfo/confirmBorder', {
+      hollowSequence: item.hollowSequence,
+      relationId: item.relationId,
+      state: 1,
+    })
+      if (response.code === 200) {
+        ElMessage.success(response.message);
+        handlesure()
+    } else {
+        ElMessage.error(response.msg);
+      }
+    }
+  } catch (error) {
+    console.error('鍙戠敓閿欒:', error);
+  }
+};
+onMounted(() => {
+  handlesure()
+});
+onBeforeUnmount(() => {
+  // if (socket) {
+  //   closeWebSocket(socket);
+  // }
+});
+const handleCarouselChange = (index) => {
+  activeIndex.value = index;
+};
+const getColorByState = (state) => {
+  switch (state) {
+    case -2: return "gray";
+    case -1: return "#99BBFF";
+    case 0: return "#7AC5CD";
+    case 1: return "#95d475";
+    case 8: return "#911005";
+    default: return "#CDAF95";
+  }
+};
+</script>
+<template>
+  <div style="height: 500px;">
+    <div>
+      <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;">
+        <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+          <div class="block text-center" m="t-4" >
+                <el-carousel ref="carouselRef" :active-index="activeIndex" @change="handleCarouselChange" height="750px"
+              :autoplay="false">
+              <el-carousel-item v-for="(item, index) in carouselData" :key="index">
+                <div class="carousel-item-content" :style="{
+                  width: `${item.width*0.5}px`,
+                  height: `${item.height*0.3}px`,
+                  backgroundColor: getColorByState(item.state),
+                }">
+                  <div style="color: #090909;">
+                    <p>{{ item.flowCardId }}</p>
+                    <p>{{ $t('basicData.widtha') }}{{ item.width }}</p>
+                    <p>{{ $t('basicData.heighta') }}{{ item.height }}</p>
+                    <p>{{ $t('basicData.thicknessa') }}{{ item.thickness }}</p>
+                    <p>{{ $t('hellow.logarithm') }}{{ item.hollowSequence }}</p>
+                  </div>
+                  <div>
+                   <el-button type="text" @click="handleDilapidationClick(item)">{{ $t('order.dilapidation') }}</el-button>
+                   <el-button type="text" :disabled="item.state === 1" @click="handleButtonClick(item)">{{ $t('basicData.yes') }}</el-button>
+                </div>
+              </div>
+              </el-carousel-item>
+            </el-carousel>
+          </div>
+        </div>
+        <el-dialog v-model="isDialogVisible" width="20%" top="30vh" style="text-align: center;">
+      <div>
+        <el-select v-model="selectedLayer" clearable :placeholder="$t('hellow.layer')" style="width: 50%;">
+          <el-option v-for="n in maxLayer" :key="n" :label="n" :value="n"></el-option>
+        </el-select>
+      </div>
+      <div slot="footer" style="margin-top: 15px;">
+        <el-button @click="isDialogVisible = false">{{ $t('basicData.cancel') }}</el-button>
+        <el-button type="primary" :disabled="!selectedLayer"  @click="confirmDilapidation">{{ $t('basicData.confirm') }}</el-button>
+      </div>
+    </el-dialog>
+      </el-card>
+    </div>
+  </div>
+</template>
+<style scoped>
+.carousel-item-content {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  border: 1px solid #ccc;
+  margin: 10px auto;
+  color: white;
+  /* 纭繚鏂囧瓧棰滆壊鍙 */
+  text-align: center;
+}
+.demonstration {
+  color: var(--el-text-color-secondary);
+}
+.el-carousel__item h3 {
+  color: #475669;
+  opacity: 0.75;
+  line-height: 550px;
+  margin: 0;
+  text-align: center;
+}
+.el-carousel__item:nth-child(2n) {
+  background-color: #d3dce6;
+}
+.el-carousel__item:nth-child(2n + 1) {
+  background-color: #d3dce6;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/hollow/hollowaluminumthree.vue b/UI-Project/src/views/hollow/hollowaluminumthree.vue
new file mode 100644
index 0000000..ca38b90
--- /dev/null
+++ b/UI-Project/src/views/hollow/hollowaluminumthree.vue
@@ -0,0 +1,203 @@
+<script setup>
+import { onBeforeUnmount, onMounted, ref, nextTick } from "vue";
+import { useRouter } from "vue-router";
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { host, WebSocketHost } from '@/utils/constants';
+import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
+import { useI18n } from 'vue-i18n';
+import request from '@/utils/request';
+const router = useRouter();
+const { t } = useI18n();
+const language = ref(localStorage.getItem('lang') || 'zh');
+const carouselData = ref([]);
+const activeIndex = ref('');
+const isDialogVisible = ref(false);
+const selectedItem = ref(null);
+const selectedLayer = ref(null);
+const maxLayer = ref(0);
+const carouselRef = ref(null); // 馃憟 ref 鐢ㄤ簬璁块棶缁勪欢瀹炰緥
+const handlesure = async () => {
+  try {
+    const response = await request.post('/hollowGlass/hollowGlassQueueInfo/queryHollowGlassQueueInfoByLine', {
+      cell: 932,
+    });
+    if (response.code === 200) {
+      carouselData.value = response.data.map((item) => ({
+        width: item.width,
+        height: item.height,
+        state: item.state,
+        flowCardId: item.flowCardId,
+        thickness: item.thickness,
+        hollowSequence: item.hollowSequence,
+        layer: item.layer,
+        relationId: item.relationId
+      }));
+      // 鏌ユ壘 state === -2 鐨勯」
+      const targetIndex = carouselData.value.findIndex((item) => item.state === -2);
+      const finalIndex = targetIndex !== -1 ? targetIndex : 0;
+      // 绛夊緟 DOM 娓叉煋瀹屾垚鍚庡垏鎹㈤〉闈�
+      await nextTick();
+      activeIndex.value = finalIndex;
+      carouselRef.value?.setActiveItem(finalIndex); // 寮哄埗鏇存柊 Element Plus 鐨勮疆鎾粍浠�
+    } else {
+      console.error('鎺ュ彛杩斿洖閿欒:', response.message || '鏈煡閿欒');
+    }
+  } catch (error) {
+    console.error('璇锋眰澶辫触:', error);
+  }
+};
+const handleDilapidationClick = (item) => {
+  if (item.layer > 0) {
+    selectedItem.value = item;
+    maxLayer.value = item.layer;
+    selectedLayer.value = null; // 閲嶇疆閫夋嫨
+    isDialogVisible.value = true;
+  } else {
+    ElMessage.warning('褰撳墠椤规病鏈夊眰淇℃伅');
+  }
+};
+const confirmDilapidation = async () => {
+  if (!selectedLayer.value) {
+    ElMessage.warning('璇烽�夋嫨涓�涓眰鏁�');
+    return;
+  }
+  try {
+    const response = await request.post('/hollowGlass/hollowGlassQueueInfo/confirmBorder', {
+      hollowSequence: selectedItem.value.hollowSequence,
+      relationId: selectedItem.value.relationId,
+      layer: selectedLayer.value,
+      state: 8,
+    });
+    ElMessage.success(`宸查�夋嫨灞傛暟锛�${selectedLayer.value}`);
+    isDialogVisible.value = false;
+    handlesure()
+      } catch (error) {
+    console.error('鐮存崯鎿嶄綔澶辫触:', error);
+    ElMessage.error('鐮存崯鎿嶄綔澶辫触锛岃閲嶈瘯');
+  }
+};
+// 纭
+const handleButtonClick = async (item) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('hellow.clickmakesure'),
+      t('productStock.prompt'),
+      {
+        confirmButtonText: t('productStock.yes'),
+        cancelButtonText: t('productStock.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+      const response = await request.post('/hollowGlass/hollowGlassQueueInfo/confirmBorder', {
+      hollowSequence: item.hollowSequence,
+      relationId: item.relationId,
+      state: 1,
+    })
+      if (response.code === 200) {
+        ElMessage.success(response.message);
+        handlesure()
+    } else {
+        ElMessage.error(response.msg);
+      }
+    }
+  } catch (error) {
+    console.error('鍙戠敓閿欒:', error);
+  }
+};
+onMounted(() => {
+  handlesure()
+});
+onBeforeUnmount(() => {
+  // if (socket) {
+  //   closeWebSocket(socket);
+  // }
+});
+const handleCarouselChange = (index) => {
+  activeIndex.value = index;
+};
+const getColorByState = (state) => {
+  switch (state) {
+    case -2: return "gray";
+    case -1: return "#99BBFF";
+    case 0: return "#7AC5CD";
+    case 1: return "#95d475";
+    case 8: return "#911005";
+    default: return "#CDAF95";
+  }
+};
+</script>
+<template>
+  <div style="height: 500px;">
+    <div>
+      <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;">
+        <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+          <div class="block text-center" m="t-4" >
+                <el-carousel ref="carouselRef" :active-index="activeIndex" @change="handleCarouselChange" height="750px"
+              :autoplay="false">
+              <el-carousel-item v-for="(item, index) in carouselData" :key="index">
+                <div class="carousel-item-content" :style="{
+                  width: `${item.width*0.5}px`,
+                  height: `${item.height*0.3}px`,
+                  backgroundColor: getColorByState(item.state),
+                }">
+                  <div style="color: #090909;">
+                    <p>{{ item.flowCardId }}</p>
+                    <p>{{ $t('basicData.widtha') }}{{ item.width }}</p>
+                    <p>{{ $t('basicData.heighta') }}{{ item.height }}</p>
+                    <p>{{ $t('basicData.thicknessa') }}{{ item.thickness }}</p>
+                    <p>{{ $t('hellow.logarithm') }}{{ item.hollowSequence }}</p>
+                  </div>
+                  <div>
+                   <el-button type="text" @click="handleDilapidationClick(item)">{{ $t('order.dilapidation') }}</el-button>
+                   <el-button type="text" :disabled="item.state === 1" @click="handleButtonClick(item)">{{ $t('basicData.yes') }}</el-button>
+                </div>
+              </div>
+              </el-carousel-item>
+            </el-carousel>
+          </div>
+        </div>
+        <el-dialog v-model="isDialogVisible" width="20%" top="30vh" style="text-align: center;">
+      <div>
+        <el-select v-model="selectedLayer" clearable :placeholder="$t('hellow.layer')" style="width: 50%;">
+          <el-option v-for="n in maxLayer" :key="n" :label="n" :value="n"></el-option>
+        </el-select>
+      </div>
+      <div slot="footer" style="margin-top: 15px;">
+        <el-button @click="isDialogVisible = false">{{ $t('basicData.cancel') }}</el-button>
+        <el-button type="primary" :disabled="!selectedLayer"  @click="confirmDilapidation">{{ $t('basicData.confirm') }}</el-button>
+      </div>
+    </el-dialog>
+      </el-card>
+    </div>
+  </div>
+</template>
+<style scoped>
+.carousel-item-content {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  border: 1px solid #ccc;
+  margin: 10px auto;
+  color: white;
+  /* 纭繚鏂囧瓧棰滆壊鍙 */
+  text-align: center;
+}
+.demonstration {
+  color: var(--el-text-color-secondary);
+}
+.el-carousel__item h3 {
+  color: #475669;
+  opacity: 0.75;
+  line-height: 550px;
+  margin: 0;
+  text-align: center;
+}
+.el-carousel__item:nth-child(2n) {
+  background-color: #d3dce6;
+}
+.el-carousel__item:nth-child(2n + 1) {
+  background-color: #d3dce6;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/hollow/hollowaluminumtwo.vue b/UI-Project/src/views/hollow/hollowaluminumtwo.vue
new file mode 100644
index 0000000..85c4489
--- /dev/null
+++ b/UI-Project/src/views/hollow/hollowaluminumtwo.vue
@@ -0,0 +1,203 @@
+<script setup>
+import { onBeforeUnmount, onMounted, ref, nextTick } from "vue";
+import { useRouter } from "vue-router";
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { host, WebSocketHost } from '@/utils/constants';
+import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
+import { useI18n } from 'vue-i18n';
+import request from '@/utils/request';
+const router = useRouter();
+const { t } = useI18n();
+const language = ref(localStorage.getItem('lang') || 'zh');
+const carouselData = ref([]);
+const activeIndex = ref('');
+const isDialogVisible = ref(false);
+const selectedItem = ref(null);
+const selectedLayer = ref(null);
+const maxLayer = ref(0);
+const carouselRef = ref(null); // 馃憟 ref 鐢ㄤ簬璁块棶缁勪欢瀹炰緥
+const handlesure = async () => {
+  try {
+    const response = await request.post('/hollowGlass/hollowGlassQueueInfo/queryHollowGlassQueueInfoByLine', {
+      cell: 931,
+    });
+    if (response.code === 200) {
+      carouselData.value = response.data.map((item) => ({
+        width: item.width,
+        height: item.height,
+        state: item.state,
+        flowCardId: item.flowCardId,
+        thickness: item.thickness,
+        hollowSequence: item.hollowSequence,
+        layer: item.layer,
+        relationId: item.relationId
+      }));
+      // 鏌ユ壘 state === -2 鐨勯」
+      const targetIndex = carouselData.value.findIndex((item) => item.state === -2);
+      const finalIndex = targetIndex !== -1 ? targetIndex : 0;
+      // 绛夊緟 DOM 娓叉煋瀹屾垚鍚庡垏鎹㈤〉闈�
+      await nextTick();
+      activeIndex.value = finalIndex;
+      carouselRef.value?.setActiveItem(finalIndex); // 寮哄埗鏇存柊 Element Plus 鐨勮疆鎾粍浠�
+    } else {
+      console.error('鎺ュ彛杩斿洖閿欒:', response.message || '鏈煡閿欒');
+    }
+  } catch (error) {
+    console.error('璇锋眰澶辫触:', error);
+  }
+};
+const handleDilapidationClick = (item) => {
+  if (item.layer > 0) {
+    selectedItem.value = item;
+    maxLayer.value = item.layer;
+    selectedLayer.value = null; // 閲嶇疆閫夋嫨
+    isDialogVisible.value = true;
+  } else {
+    ElMessage.warning('褰撳墠椤规病鏈夊眰淇℃伅');
+  }
+};
+const confirmDilapidation = async () => {
+  if (!selectedLayer.value) {
+    ElMessage.warning('璇烽�夋嫨涓�涓眰鏁�');
+    return;
+  }
+  try {
+    const response = await request.post('/hollowGlass/hollowGlassQueueInfo/confirmBorder', {
+      hollowSequence: selectedItem.value.hollowSequence,
+      relationId: selectedItem.value.relationId,
+      layer: selectedLayer.value,
+      state: 8,
+    });
+    ElMessage.success(`宸查�夋嫨灞傛暟锛�${selectedLayer.value}`);
+    isDialogVisible.value = false;
+    handlesure()
+      } catch (error) {
+    console.error('鐮存崯鎿嶄綔澶辫触:', error);
+    ElMessage.error('鐮存崯鎿嶄綔澶辫触锛岃閲嶈瘯');
+  }
+};
+// 纭
+const handleButtonClick = async (item) => {
+  try {
+    const confirmResult = await ElMessageBox.confirm(
+      t('hellow.clickmakesure'),
+      t('productStock.prompt'),
+      {
+        confirmButtonText: t('productStock.yes'),
+        cancelButtonText: t('productStock.cancel'),
+        type: 'warning',
+      }
+    );
+    if (confirmResult === 'confirm') {
+      const response = await request.post('/hollowGlass/hollowGlassQueueInfo/confirmBorder', {
+      hollowSequence: item.hollowSequence,
+      relationId: item.relationId,
+      state: 1,
+    })
+      if (response.code === 200) {
+        ElMessage.success(response.message);
+        handlesure()
+    } else {
+        ElMessage.error(response.msg);
+      }
+    }
+  } catch (error) {
+    console.error('鍙戠敓閿欒:', error);
+  }
+};
+onMounted(() => {
+  handlesure()
+});
+onBeforeUnmount(() => {
+  // if (socket) {
+  //   closeWebSocket(socket);
+  // }
+});
+const handleCarouselChange = (index) => {
+  activeIndex.value = index;
+};
+const getColorByState = (state) => {
+  switch (state) {
+    case -2: return "gray";
+    case -1: return "#99BBFF";
+    case 0: return "#7AC5CD";
+    case 1: return "#95d475";
+    case 8: return "#911005";
+    default: return "#CDAF95";
+  }
+};
+</script>
+<template>
+  <div style="height: 500px;">
+    <div>
+      <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;">
+        <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+          <div class="block text-center" m="t-4" >
+                <el-carousel ref="carouselRef" :active-index="activeIndex" @change="handleCarouselChange" height="750px"
+              :autoplay="false">
+              <el-carousel-item v-for="(item, index) in carouselData" :key="index">
+                <div class="carousel-item-content" :style="{
+                  width: `${item.width*0.5}px`,
+                  height: `${item.height*0.3}px`,
+                  backgroundColor: getColorByState(item.state),
+                }">
+                  <div style="color: #090909;">
+                    <p>{{ item.flowCardId }}</p>
+                    <p>{{ $t('basicData.widtha') }}{{ item.width }}</p>
+                    <p>{{ $t('basicData.heighta') }}{{ item.height }}</p>
+                    <p>{{ $t('basicData.thicknessa') }}{{ item.thickness }}</p>
+                    <p>{{ $t('hellow.logarithm') }}{{ item.hollowSequence }}</p>
+                  </div>
+                  <div>
+                   <el-button type="text" @click="handleDilapidationClick(item)">{{ $t('order.dilapidation') }}</el-button>
+                   <el-button type="text" :disabled="item.state === 1" @click="handleButtonClick(item)">{{ $t('basicData.yes') }}</el-button>
+                </div>
+              </div>
+              </el-carousel-item>
+            </el-carousel>
+          </div>
+        </div>
+        <el-dialog v-model="isDialogVisible" width="20%" top="30vh" style="text-align: center;">
+      <div>
+        <el-select v-model="selectedLayer" clearable :placeholder="$t('hellow.layer')" style="width: 50%;">
+          <el-option v-for="n in maxLayer" :key="n" :label="n" :value="n"></el-option>
+        </el-select>
+      </div>
+      <div slot="footer" style="margin-top: 15px;">
+        <el-button @click="isDialogVisible = false">{{ $t('basicData.cancel') }}</el-button>
+        <el-button type="primary" :disabled="!selectedLayer"  @click="confirmDilapidation">{{ $t('basicData.confirm') }}</el-button>
+      </div>
+    </el-dialog>
+      </el-card>
+    </div>
+  </div>
+</template>
+<style scoped>
+.carousel-item-content {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  border: 1px solid #ccc;
+  margin: 10px auto;
+  color: white;
+  /* 纭繚鏂囧瓧棰滆壊鍙 */
+  text-align: center;
+}
+.demonstration {
+  color: var(--el-text-color-secondary);
+}
+.el-carousel__item h3 {
+  color: #475669;
+  opacity: 0.75;
+  line-height: 550px;
+  margin: 0;
+  text-align: center;
+}
+.el-carousel__item:nth-child(2n) {
+  background-color: #d3dce6;
+}
+.el-carousel__item:nth-child(2n + 1) {
+  background-color: #d3dce6;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/hollow/hollowequipment.vue b/UI-Project/src/views/hollow/hollowequipment.vue
new file mode 100644
index 0000000..27bb9b6
--- /dev/null
+++ b/UI-Project/src/views/hollow/hollowequipment.vue
@@ -0,0 +1,1803 @@
+<template>
+  <div style="height: 600px;">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;" >
+      <div style="display: flex; flex-direction: row; align-items: center; margin-bottom: 10px;">
+        <el-button id="searchButton" type="primary" @click="handleormulan">
+          {{ $t('hellow.hollowformula') }}
+        </el-button>
+        <el-button id="searchButton" type="primary" @click="handlezhiban">
+          {{ $t('hellow.createtask') }}
+        </el-button>
+        <el-button type="primary" @click="selectproject">
+          {{ $t('hellow.reviewproject') }}
+        </el-button>
+    <el-button style="margin-left: 10px;" id="searchButton" type="primary" @click="handlehistorical">{{ $t('searchOrder.historicaltasks') }}</el-button>
+    <el-button style="margin-left: 10px;" id="searchButton" type="success" @click="handleBinda">
+          {{ $t('hellow.starttask') }}
+        </el-button>
+        <el-button style="margin-left: 10px;" id="searchButton" type="info" @click="handleBindd">{{
+            $t('hellow.taskdet')
+          }}
+        </el-button>
+        <el-button style="margin-left: 10px;" id="searchButton" type="warning" @click="handleBindc">{{
+            $t('hellow.stopproject')
+          }}
+        </el-button>
+  </div>
+    <div id="dotClass">
+      <!-- <div style="margin-bottom: -5px;margin-left: 5px;"> -->
+        <!-- <el-form> -->
+          <!-- <el-row> --> 
+            <!-- <el-col :span="4">
+              <div  style="font-size: 15px;">
+                <el-form-item :label="$t('hellow.currenttask')" style="width: 14vw">
+                  {{ temperingtotal }}
+                </el-form-item>
+              </div>
+            </el-col> -->
+            <!-- <el-col :span="5">
+              <div style="font-size: 15px;">
+                <el-form-item :label="$t('hellow.claimednumber')" style="width: 14vw">
+                  {{ glasstotal }}
+                </el-form-item>
+              </div>
+            </el-col> -->
+            <!-- <el-col :span="4">
+              <div style="font-size: 15px;">
+                <el-form-item :label="$t('hellow.linenumber')" style="width: 14vw">
+                  {{ fulltotals }}
+                </el-form-item>
+              </div>
+            </el-col> -->
+            <div style="margin-left: 70px;">{{ $t('hellow.freeone') }}</div>
+        <i :style="{ marginTop: '2px', backgroundColor: freeone, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+        
+          <!-- </el-row> -->
+        <!-- </el-form> -->
+      <!-- </div> -->
+       </div>
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+        <el-table height="650" ref="table" :data="tableDataa"
+                  :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }">
+          <el-table-column prop="flowCardId" :label="$t('hellow.flowCardId')" align="center"/>
+          <el-table-column prop="glassId" :label="$t('searchOrder.glassID')" align="center"/>
+          <el-table-column prop="hollowSequence" :label="$t('hellow.order')" align="center"/>
+          <el-table-column prop="thickness" :label="$t('hellow.thickness')" align="center"/>
+          <el-table-column prop="layer" :label="$t('hellow.layer')" align="center"/>
+          <el-table-column prop="filmsId" :label="$t('hellow.coatingtypes')" align="center"/>
+          <el-table-column prop="height" :label="$t('hellow.height')" align="center"/>
+          <el-table-column prop="width" :label="$t('hellow.width')" align="center"/>
+          <el-table-column prop="state" :label="$t('hellow.state')" align="center">
+            <template #default="scope">
+            {{ scope.row.state == -1 ? $t('hellow.waitingout') : $t('hellow.finishout') }}
+            </template>
+          </el-table-column>
+        </el-table>
+      <!-- <div style="display: flex;margin-left: 40%;margin-top: 10px;">
+      <div style="margin-top: 5px;margin-right: 5px;">{{ $t('hellow.line') }}</div>
+    <el-pagination
+          background
+          size="large"
+          layout="prev, pager, next"
+          :total="30"
+          :current-page.sync="currentPage"
+          @current-change="handlePageChange1"
+        />
+      </div> -->
+  </div>
+    </el-card>
+  </div>
+  <!-- 鍒涘缓浠诲姟 -->
+  <el-dialog v-model="dialogFormVisiblea" top="5vh" width="85%">
+    <div style="display: flex;">
+    <el-input v-model="flowCardId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('searchOrder.incardnumber')" />
+    <el-input v-model="filmsId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('film.infilms')"/>
+    <el-input v-model="thickness" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('searchOrder.inthickness')"/>
+    <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="fetchFlowCardsearch">
+      {{$t('reportmanage.inquire')}}</el-button>
+  </div>
+  <el-table
+    ref="table"
+    style="margin-top: 20px; height: 700px;"
+    :data="tableDatab"
+    :row-class-name="tableRowClassName"
+    :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
+    row-key="projectNumber"
+  >
+    <el-table-column>
+    <template #default="props">
+      <el-table :data="props.row.flowCardGlassInfoDTOList" style="width: 100%" 
+      :row-class-name="(row) => nestedTableRowClassName(props.row, row)" 
+        >
+      <el-table-column prop="layer" fixed align="center" :label="$t('hellow.layernumber')" min-width="80"/>
+      <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80"/>
+      <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80"/>
+      <el-table-column prop="sumCount" align="center" :label="$t('hellow.totalnumber')" min-width="80"/>
+      <el-table-column prop="realCount" align="center" :label="$t('hellow.realpieces')" min-width="80"/>
+      <el-table-column prop="pairCount" align="center" :label="$t('hellow.pairsnumber')" min-width="80"/>
+      <el-table-column prop="damageCount" align="center" :label="$t('hellow.damagenumber')" min-width="80"/>
+      </el-table>
+      </template>
+    </el-table-column>
+    <el-table-column prop="flowCardId" fixed align="center" :label="$t('hellow.cardnumber')" min-width="20"/>
+    <el-table-column prop="productName" fixed align="center" :label="$t('large.productname')" min-width="20"/>
+    <el-table-column fixed="right" :label="$t('hellow.operate')" align="center" width="270">
+        <template #default="scope">
+          <el-button type="text" :disabled="scope.row.isThroughSlot" plain @click="handletake(scope.row)">{{ $t('hellow.claimquest') }}</el-button>
+          <el-button type="text" plain @click="handleBindRack(scope.row)">{{
+              $t('hellow.missingfilms')
+            }}
+          </el-button>
+          <el-button type="text" plain @click="handleout(scope.row)">{{
+              $t('hellow.forcedfilming')
+            }}
+          </el-button>
+        </template>
+      </el-table-column>
+  </el-table>
+</el-dialog>
+<!-- 涓┖閰嶆柟娣诲姞 -->
+<el-dialog v-model="add" top="15vh" width="90%" :title="$t('hellow.hollowformula')" >
+  <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
+    <el-form label-width="150px" label-position="right">
+      <!-- 绗竴琛岋細3涓厓绱� -->
+      <el-row style="margin-top: 10px;">
+        <el-col :span="8">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.formulaName')" style="width: 90%;">
+              <el-input v-model="formulaName" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="8">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('Mounting.removalmethoda')" style="width: 90%;">
+              <el-select v-model="filmRemove" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')">
+                <el-option :label="$t('Mounting.removal')" value="1"></el-option>
+                <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="8">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.sealInsertb')" style="width: 90%;">
+              <el-input v-model="sealInsert" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 绗簩琛岋細4涓厓绱� -->
+      <el-row style="margin-top: 20px;">
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.topRemove')" style="width: 90%;">
+              <el-input v-model="topRemove" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.bottomRemove')" style="width: 90%;">
+              <el-input v-model="bottomRemove" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.leftRemove')" style="width: 90%;">
+              <el-input v-model="leftRemove" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.rightRemove')" style="width: 90%;">
+              <el-input v-model="rightRemove" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 绗笁琛岋細4涓厓绱� -->
+      <el-row style="margin-top: 20px;">
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.casOneb')" style="width: 90%;">
+              <el-select v-model="casOne" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')">
+                <el-option :label="$t('hellow.F')" value="0"></el-option>
+                <el-option :label="$t('hellow.Y')" value="1"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.casTwob')" style="width: 90%;">
+              <el-select v-model="casTwo" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')">
+                <el-option :label="$t('hellow.F')" value="0"></el-option>
+                <el-option :label="$t('hellow.Y')" value="1"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.casThreeb')" style="width: 90%;">
+              <el-select v-model="casThree" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')">
+                <el-option :label="$t('hellow.F')" value="0"></el-option>
+                <el-option :label="$t('hellow.Y')" value="1"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.casFourb')" style="width: 90%;">
+              <el-select v-model="casFour" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')">
+                <el-option :label="$t('hellow.F')" value="0"></el-option>
+                <el-option :label="$t('hellow.Y')" value="1"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 绗洓琛岋細4涓厓绱� -->
+      <el-row style="margin-top: 20px;">
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.frameOneb')" style="width: 90%;">
+              <el-input v-model="frameOne" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.frameTwob')" style="width: 90%;">
+              <el-input v-model="frameTwo" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.frameThreeb')" style="width: 90%;">
+              <el-input v-model="frameThree" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.frameFourb')" style="width: 90%;">
+              <el-input v-model="frameFour" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 绗簲琛岋細4涓厓绱� -->
+      <el-row style="margin-top: 20px;">
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameHeightbOne')" style="width: 90%;">
+              <el-input v-model="intervalFrameHeightOne" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameHeightbTwo')" style="width: 90%;">
+              <el-input v-model="intervalFrameHeightTwo" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameHeightbThree')" style="width: 90%;">
+              <el-input v-model="intervalFrameHeightThree" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameHeightbFour')" style="width: 90%;">
+              <el-input v-model="intervalFrameHeightFour" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 绗叚琛岋細4涓厓绱� -->
+      <el-row style="margin-top: 20px;">
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameWidthbOne')" style="width: 90%;">
+              <el-input v-model="intervalFrameWidthOne" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameWidthbTwo')" style="width: 90%;">
+              <el-input v-model="intervalFrameWidthTwo" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameWidthbThree')" style="width: 90%;">
+              <el-input v-model="intervalFrameWidthThree" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameWidthbFour')" style="width: 90%;">
+              <el-input v-model="intervalFrameWidthFour" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 绗竷琛岋細4涓厓绱� -->
+      <el-row style="margin-top: 20px;">
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameTypedOne')" style="width: 90%;">
+              <el-select v-model="intervalFrameTypeOne" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')">
+                <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option>
+                <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameTypedTwo')" style="width: 90%;">
+              <el-select v-model="intervalFrameTypeTwo" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')">
+                <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option>
+                <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameTypedThree')" style="width: 90%;">
+              <el-select v-model="intervalFrameTypeThree" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')">
+                <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option>
+                <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameTypedFour')" style="width: 90%;">
+              <el-select v-model="intervalFrameTypeFour" style="width: 100%" :placeholder="$t('screendisplay.pchoice')">
+                <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option>
+                <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+    </el-form>
+  </div>
+  <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleConfirm">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="add = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+<!-- 涓┖閰嶆柟淇敼 -->
+<el-dialog v-model="adda" top="15vh" width="85%" :title="$t('hellow.edithollowformula')" >
+  <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
+    <el-form label-width="150px" label-position="right">
+      <!-- 绗竴琛岋細3涓厓绱� -->
+      <el-row style="margin-top: 20px;">
+        <el-col :span="8">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.formulaName')" style="width: 90%;">
+              <el-input v-model="formulaName" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="8">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('Mounting.removalmethoda')" style="width: 90%;">
+              <el-select v-model="filmRemove" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')">
+                <el-option :label="$t('Mounting.removal')" value="1"></el-option>
+                <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="8">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.sealInsertb')" style="width: 90%;">
+              <el-input v-model="sealInsert" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 绗簩琛岋細4涓厓绱� -->
+      <el-row style="margin-top: 20px;">
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.topRemove')" style="width: 90%;">
+              <el-input v-model="topRemove" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.bottomRemove')" style="width: 90%;">
+              <el-input v-model="bottomRemove" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.leftRemove')" style="width: 90%;">
+              <el-input v-model="leftRemove" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.rightRemove')" style="width: 90%;">
+              <el-input v-model="rightRemove" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 绗笁琛岋細4涓厓绱� -->
+      <el-row style="margin-top: 20px;">
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.casOneb')" style="width: 90%;">
+              <el-select v-model="casOne" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')">
+                <el-option :label="$t('hellow.F')" value="0"></el-option>
+                <el-option :label="$t('hellow.Y')" value="1"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.casTwob')" style="width: 90%;">
+              <el-select v-model="casTwo" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')">
+                <el-option :label="$t('hellow.F')" value="0"></el-option>
+                <el-option :label="$t('hellow.Y')" value="1"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.casThreeb')" style="width: 90%;">
+              <el-select v-model="casThree" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')">
+                <el-option :label="$t('hellow.F')" value="0"></el-option>
+                <el-option :label="$t('hellow.Y')" value="1"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.casFourb')" style="width: 90%;">
+              <el-select v-model="casFour" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')">
+                <el-option :label="$t('hellow.F')" value="0"></el-option>
+                <el-option :label="$t('hellow.Y')" value="1"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 绗洓琛岋細4涓厓绱� -->
+      <el-row style="margin-top: 20px;">
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.frameOneb')" style="width: 90%;">
+              <el-input v-model="frameOne" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.frameTwob')" style="width: 90%;">
+              <el-input v-model="frameTwo" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.frameThreeb')" style="width: 90%;">
+              <el-input v-model="frameThree" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.frameFourb')" style="width: 90%;">
+              <el-input v-model="frameFour" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 绗簲琛岋細4涓厓绱� -->
+      <el-row style="margin-top: 20px;">
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameHeightbOne')" style="width: 90%;">
+              <el-input v-model="intervalFrameHeightOne" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameHeightbTwo')" style="width: 90%;">
+              <el-input v-model="intervalFrameHeightTwo" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameHeightbThree')" style="width: 90%;">
+              <el-input v-model="intervalFrameHeightThree" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameHeightbFour')" style="width: 90%;">
+              <el-input v-model="intervalFrameHeightFour" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 绗叚琛岋細4涓厓绱� -->
+      <el-row style="margin-top: 20px;">
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameWidthbOne')" style="width: 90%;">
+              <el-input v-model="intervalFrameWidthOne" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameWidthbTwo')" style="width: 90%;">
+              <el-input v-model="intervalFrameWidthTwo" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameWidthbThree')" style="width: 90%;">
+              <el-input v-model="intervalFrameWidthThree" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameWidthbFour')" style="width: 90%;">
+              <el-input v-model="intervalFrameWidthFour" autocomplete="off" />
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 绗竷琛岋細4涓厓绱� -->
+      <el-row style="margin-top: 20px;">
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameTypedOne')" style="width: 90%;">
+              <el-select v-model="intervalFrameTypeOne" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')">
+                <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option>
+                <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameTypedTwo')" style="width: 90%;">
+              <el-select v-model="intervalFrameTypeTwo" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')">
+                <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option>
+                <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameTypedThree')" style="width: 90%;">
+              <el-select v-model="intervalFrameTypeThree" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')">
+                <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option>
+                <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+        <el-col :span="6">
+          <div style="font-size: 15px;">
+            <el-form-item :label="$t('hellow.intervalFrameTypedFour')" style="width: 90%;">
+              <el-select v-model="intervalFrameTypeFour" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')">
+                <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option>
+                <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </el-col>
+      </el-row>
+    </el-form>
+  </div>
+  <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handledit">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="adda = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 棰嗗彇浠诲姟 -->
+  <el-dialog v-model="dialogFormVisiblec" top="21vh" width="40%" :title="$t('hellow.claimquest')">
+    <div style="margin-left: 20px;margin-top: 10px;margin-bottom: 10px;">
+      <el-form label-width="100px">
+        <el-form label-width="210px" label-position="right">
+          <el-form-item :label="$t('hellow.ptotalpairQuantity')" :required="true" style="width: 25vw">
+            <el-input :placeholder="$t('hellow.cpairQuantity')" v-model="totalPairQuantity" autocomplete="off" />
+          </el-form-item>
+          <el-form-item :label="$t('hellow.route')" :required="true" style="width: 25vw;">
+            <el-select 
+            :placeholder="$t('hellow.line1')"
+            disabled
+             style="width: 270px"  
+             v-model="cell">
+               <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
+          </el-select>
+          </el-form-item>
+          <el-form-item :label="$t('hellow.hollowformulp')" :required="true" style="width: 25vw;">
+        <el-select
+            v-model="selectedFormulaName"
+            filterable
+            clearable
+            :placeholder="$t('hellow.phollowformula')"
+            style="width: 270px"
+            @change="handleFormulaChange"
+        >
+          <el-option
+              v-for="item in titleformulaName"
+              :key="item.id"
+              :label="item.formulaName"
+              :value="item.formulaName"
+          />
+        </el-select>
+      </el-form-item>
+        </el-form>
+      </el-form>
+    </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="finisha">
+          {{ $t('reportWork.sure') }}
+        </el-button>
+        <el-button @click="dialogFormVisiblec = false">{{ $t('reportWork.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 寮哄埗鍑虹墖 -->
+  <el-dialog v-model="dialogFormVisibled" top="21vh" width="40%" :title="$t('hellow.forcedfilming')">
+    <div style="margin-left: 20px;margin-top: 10px;margin-bottom: 10px;">
+      <el-form label-width="100px">
+        <el-form label-width="210px" label-position="right">
+          <el-form-item :label="$t('hellow.ptotalpairQuantity')" :required="true" style="width: 25vw">
+            <el-input :placeholder="$t('hellow.cpairQuantity')" v-model="totalPairQuantitya" autocomplete="off" />
+          </el-form-item>
+          <el-form-item :label="$t('hellow.route')" :required="true" style="width: 25vw;">
+            <el-select 
+            :placeholder="$t('hellow.line1')"
+            disabled
+             style="width: 270px"  
+             v-model="cella">
+               <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
+          </el-select>
+          </el-form-item>
+          <el-form-item :label="$t('hellow.hollowformulp')" :required="true" style="width: 25vw;">
+        <el-select
+            v-model="selectedFormulaName"
+            filterable
+            clearable
+            :placeholder="$t('hellow.phollowformula')"
+            style="width: 270px"
+            @change="handleFormulaChange"
+        >
+          <el-option
+              v-for="item in titleformulaName"
+              :key="item.id"
+              :label="item.formulaName"
+              :value="item.formulaName"
+          />
+        </el-select>
+      </el-form-item>
+        </el-form>
+      </el-form>
+    </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="finishb">
+          {{ $t('reportWork.sure') }}
+        </el-button>
+        <el-button @click="dialogFormVisibled = false">{{ $t('reportWork.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 缂虹墖璇︽儏 -->
+  <el-dialog v-model="dialogFormVisibleb" top="7vh" width="70%" height="500">
+    <div style="margin-top: -20px;text-align: center;margin-left: 400px;">
+      <el-form-item :label="$t('hellow.cardnumbera')" style="width: 14vw">
+        {{ currentRow.flowCardId }}
+      </el-form-item>
+    </div>
+    <el-table ref="table" style="margin-top: 20px;height: 400px;"
+          :data="tableDatac" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+      <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80"/>
+      <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80"/>
+      <el-table-column prop="height" align="center" :label="$t('hellow.height')" min-width="80"/>
+      <el-table-column prop="width" align="center" :label="$t('hellow.width')" min-width="80"/>
+      <!-- <el-table-column prop="totalCount" align="center" :label="$t('hellow.totalnumber')" min-width="80"/> -->
+      <el-table-column prop="lackCount" align="center" :label="$t('hellow.missingnumber')" min-width="80"/>
+      <!-- <el-table-column prop="damageCount" align="center" :label="$t('hellow.brokenpieces')" min-width="80"/> -->
+      <div style="float: right;margin-bottom: 5px;">
+        <el-pagination layout="prev, pager, next" :total="50"/>
+      </div>
+    </el-table>
+    <div style="display: flex;margin-left: 40%;margin-top: 10px;">
+  <el-pagination
+          background
+          size="large"
+          layout="prev, pager, next"
+          :total="30"
+          :current-page.sync="currentPage2"
+          @current-change="handlePageChange2"
+        />
+  </div>
+  </el-dialog>
+  <!-- 寮�濮嬩换鍔� -->
+  <el-dialog v-model="blinda" top="30vh" width="25%" :title="$t('hellow.pstarttask')">
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handlea">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="blinda = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 鏆傚仠浠诲姟 -->
+  <el-dialog v-model="blindc" top="30vh" width="25%" :title="$t('hellow.pstopproject')">
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handlec">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="blindc = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 鍒犻櫎浠诲姟 -->
+  <el-dialog v-model="blindd" top="30vh" width="25%" :title="$t('hellow.hollowtaskdet')">
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handled">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="blindd = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 棰勮 -->
+  <el-dialog v-model="dialogFormVisiblee" top="24vh" width="25%" :title="$t('hellow.reviewproject')" >
+    <div style="margin-left: 50px;margin-bottom: 10px;">
+      <el-form-item :label="$t('basicData.projectnumber')" :required="true">
+        <el-select
+            v-model="selectedProjectNo"
+            filterable
+            clearable
+            :placeholder="$t('basicData.plselectproject')"
+            style="width: 260px"
+        >
+          <el-option
+              v-for="item in titleSelectJson.processType"
+              :key="item.value"
+              :label="item.value"
+              :value="item.value"
+          />
+        </el-select>
+      </el-form-item>
+    </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleup">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="dialogFormVisiblee = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 涓┖閰嶆柟 -->
+  <el-dialog v-model="mulan" top="15vh" width="80%" :title="$t('hellow.hollowformula')">
+    <el-button id="searchButton" type="primary"  @click="openAddDialog">
+          {{ $t('basicData.add') }}
+        </el-button>
+      <el-table ref="table" style="margin-top: 20px;height: 400px;"
+                :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+        <el-table-column prop="formulaName" fixed align="center" :label="$t('hellow.formulaNamep')" min-width="120"/>
+        <el-table-column prop="filmRemove" align="center" :label="$t('Mounting.removalmethodp')"/>
+        <el-table-column prop="casOne" align="center" :label="$t('hellow.casOne')" min-width="110">
+      <template #default="scope">
+        <el-tag :type="getcasOnea(scope.row.casOne)">
+          {{ getStatuscasOnea(scope.row.casOne) }}
+        </el-tag>
+      </template>
+    </el-table-column>
+    <el-table-column prop="casTwo" align="center" :label="$t('hellow.casTwo')" min-width="110">
+      <template #default="scope">
+        <el-tag :type="getcasOneb(scope.row.casTwo)">
+          {{ getStatuscasOneb(scope.row.casTwo) }}
+        </el-tag>
+      </template>
+    </el-table-column>
+    <el-table-column prop="casThree" align="center" :label="$t('hellow.casThree')" min-width="110">
+      <template #default="scope">
+        <el-tag :type="getcasOnec(scope.row.casThree)">
+          {{ getStatuscasOnec(scope.row.casThree) }}
+        </el-tag>
+      </template>
+    </el-table-column>
+    <el-table-column prop="casFour" align="center" :label="$t('hellow.casFour')" min-width="110">
+      <template #default="scope">
+        <el-tag :type="getcasOned(scope.row.casFour)">
+          {{ getStatuscasOned(scope.row.casFour) }}
+        </el-tag>
+      </template>
+    </el-table-column>
+        <el-table-column prop="frameOne" align="center" :label="$t('hellow.frameOne')"/>
+        <el-table-column prop="frameTwo" align="center" :label="$t('hellow.frameTwo')"/>
+        <el-table-column prop="frameThree" align="center" :label="$t('hellow.frameThree')"/>
+        <el-table-column prop="frameFour" align="center" :label="$t('hellow.frameFour')"/>
+        <el-table-column prop="intervalFrameHeightOne" align="center" :label="$t('hellow.intervalFrameHeightOne')" min-width="110"/>
+        <el-table-column prop="intervalFrameHeightTwo" align="center" :label="$t('hellow.intervalFrameHeightTwo')" min-width="110"/>
+        <el-table-column prop="intervalFrameHeightThree" align="center" :label="$t('hellow.intervalFrameHeightThree')" min-width="110"/>
+        <el-table-column prop="intervalFrameHeightFour" align="center" :label="$t('hellow.intervalFrameHeightFour')" min-width="110"/>
+        <!-- <el-table-column prop="intervalFrameTypeOne" align="center" :label="$t('hellow.intervalFrameTypeOne')" min-width="110">
+          <template #default="scope">  
+         <el-tag :type="getStatusTypea(scope.row.intervalFrameTypeOne)">  
+          {{ getStatusTexta(scope.row.intervalFrameTypeOne) }}  
+        </el-tag>  
+      </template>
+        </el-table-column> -->
+        <el-table-column prop="intervalFrameTypeOne" align="center" :label="$t('hellow.intervalFrameTypeOne')" min-width="110">
+      <template #default="scope">
+        <el-tag :type="getStatusTypea(scope.row.intervalFrameTypeOne)">
+          {{ getStatusTexta(scope.row.intervalFrameTypeOne) }}
+        </el-tag>
+      </template>
+    </el-table-column>
+        <el-table-column prop="intervalFrameTypeTwo" align="center" :label="$t('hellow.intervalFrameTypeTwo')" min-width="110">
+          <template #default="scope">  
+         <el-tag :type="getStatusTypeb(scope.row.intervalFrameTypeTwo)">  
+          {{ getStatusTextb(scope.row.intervalFrameTypeTwo) }}  
+        </el-tag>  
+      </template>
+        </el-table-column>
+        <el-table-column prop="intervalFrameTypeThree" align="center" :label="$t('hellow.intervalFrameTypeThree')" min-width="110">
+          <template #default="scope">  
+         <el-tag :type="getStatusTypec(scope.row.intervalFrameTypeThree)">  
+          {{ getStatusTextc(scope.row.intervalFrameTypeThree) }}  
+        </el-tag>  
+      </template>
+        </el-table-column>
+        <el-table-column prop="intervalFrameTypeFour" align="center" :label="$t('hellow.intervalFrameTypeFour')" min-width="110">
+          <template #default="scope">  
+         <el-tag :type="getStatusTyped(scope.row.intervalFrameTypeFour)">  
+          {{ getStatusTextd(scope.row.intervalFrameTypeFour) }}  
+        </el-tag>  
+      </template>
+        </el-table-column>
+        <el-table-column prop="intervalFrameWidthOne" align="center" :label="$t('hellow.intervalFrameWidthOne')" min-width="110"/>
+        <el-table-column prop="intervalFrameWidthTwo" align="center" :label="$t('hellow.intervalFrameWidthTwo')" min-width="110"/>
+        <el-table-column prop="intervalFrameWidthThree" align="center" :label="$t('hellow.intervalFrameWidthThree')" min-width="110"/>
+        <el-table-column prop="intervalFrameWidthFour" align="center" :label="$t('hellow.intervalFrameWidthFour')" min-width="110"/>
+        <el-table-column prop="sealInsert" align="center" :label="$t('hellow.sealInsert')"/>
+        <el-table-column prop="topRemove" align="center" :label="$t('hellow.topRemovep')" min-width="95"> </el-table-column>
+        <el-table-column prop="bottomRemove" align="center" :label="$t('hellow.bottomRemovep')" min-width="95"> </el-table-column>
+        <el-table-column prop="leftRemove" align="center" :label="$t('hellow.leftRemovep')" min-width="95"> </el-table-column>
+        <el-table-column prop="rightRemove" align="center" :label="$t('hellow.rightRemovep')" min-width="95"> </el-table-column>
+        <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="270">
+            <template #default="scope">
+              <el-button type="text" plain @click="handleEdit(scope.row)">{{ $t('productStock.exit') }}</el-button>
+              <el-button type="text" plain @click="opena(scope.row)">{{ $t('productStock.delete') }}</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+        <template #footer>
+      <div id="dialog-footer">
+        <el-button @click="mulan = false">{{ $t('large.close') }}</el-button>
+      </div>
+    </template>
+</el-dialog>
+ <!-- 鍘嗗彶浠诲姟 -->
+ <el-dialog v-model="blindb" top="5vh" width="95%" @close="iframeUrl=''">
+     <iframe 
+     :src="iframeUrl" 
+     marginwidth="2000px"
+     marginheight="2000px"
+     width="100%" 
+     height="750px" 
+     frameborder="0"
+     ></iframe>
+  </el-dialog>
+</template>
+<script setup>
+import { ElMessage, ElMessageBox } from 'element-plus'
+import {onBeforeUnmount, onMounted, onUnmounted, ref, reactive, watch, computed} from "vue";
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n()
+const blinda = ref(false)
+const blindb = ref(false)
+const blindc = ref(false)
+const blindd = ref(false)
+const mulan = ref(false)
+const tableDataa = ref([])
+const tableDatab = ref([])
+const tableDatac = ref([])
+const tableDatax = ref([])
+const cell = ref('')
+const cella = ref('')
+const selectedProjectNo = ref('');
+const totalPairQuantity = ref('')
+const totalPairQuantitya = ref('')
+const bottomRemove = ref('')
+const filmRemove = ref('')
+const formulaName = ref('')
+const leftRemove = ref('')
+const rightRemove = ref('')
+const topRemove = ref('')
+const filmsId = ref('')
+const thickness = ref('')
+const flowCardId = ref('')
+const casFour = ref('')
+const casOne = ref('')
+const casThree = ref('')
+const casTwo = ref('')
+const frameFour = ref('')
+const frameOne = ref('')
+const frameThree = ref('')
+const frameTwo = ref('')
+const intervalFrameHeightOne = ref('')
+const intervalFrameHeightTwo = ref('')
+const intervalFrameHeightThree = ref('')
+const intervalFrameHeightFour = ref('')
+const intervalFrameTypeOne = ref('')
+const intervalFrameTypeTwo = ref('')
+const intervalFrameTypeThree = ref('')
+const intervalFrameTypeFour = ref('')
+const intervalFrameWidthOne = ref('')
+const intervalFrameWidthTwo = ref('')
+const intervalFrameWidthThree = ref('')
+const intervalFrameWidthFour = ref('')
+const sealInsert = ref('')
+const freeone = ref('#911005');
+const dialogFormVisiblea = ref(false)
+const dialogFormVisibleb = ref(false)
+const dialogFormVisiblec = ref(false)
+const dialogFormVisibled = ref(false)
+const dialogFormVisiblee = ref(false)
+const add = ref(false)
+const adda = ref(false)
+const currentPage2 = ref(1)
+const currentRow = reactive({});
+const formattedProcessType = ref([]);
+const selectedFormulaName = ref('');
+let selectedFormulaId = ref(null);
+const formulaNameid = ref({ id: null });
+const titleformulaName = ref({ formulaName: [] ,formulaId: []});
+const titleSelectJson = ref({ processType: [] });
+const iframeUrl = ref('');
+const handlehistorical = (row) => {
+  blindb.value = true;
+  iframeUrl.value = `${window.location.origin}/#/hollow/hellowquiphistory`;
+};
+const options = [
+  {
+    value: 930,
+    label: t('hellow.line1'),
+  },
+  {
+    value: 931,
+    label: t('hellow.line2'),
+  }
+]
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/hollowGlass/api/talk/HollowGlassone`;
+const currentPage = ref(parseInt(window.localStorage.getItem('currentPage')) || 1);
+watch(() => currentPage.value, (newVal) => {
+  window.localStorage.setItem('currentPage', newVal);
+});
+const currentPageKey = computed(() => `93${currentPage.value - 1}`);
+const handlePageChange1 = (newPage) => {
+  currentPage.value = newPage;
+};
+const handlePageChange2 = (newPage) => {
+  currentPage2.value = newPage;
+  fetchFlowBind(currentRow.flowCardId, currentPage2.value);
+};
+const handleMessage = (data) => {
+  try {
+    tableDataa.value = data.queueInfo[0];
+    const allPageData = data;
+    const currentPageKeyValue = currentPageKey.value;
+    const currentPageData = allPageData[currentPageKeyValue];
+    if (data.freeRequest != null) {
+      freeone.value = data.freeRequest[0] == true ? 'green' : '#911005';
+  }
+    // if (currentPageData && Array.isArray(currentPageData) && currentPageData.length > 0) {
+    //   tableDataa.value = currentPageData[0];
+    // } else {
+    //   console.warn('No data for the current page key:', currentPageKeyValue);
+    // }
+  } catch (error) {
+  }
+};
+onMounted(() => {
+  socket = initializeWebSocket(socketUrl, handleMessage);
+  window.localStorage.setItem('flowCardId', '')
+});
+onUnmounted(() => {
+  if (socket) {
+    closeWebSocket(socket);
+  }
+});
+// 寮�濮嬩换鍔� 
+const handleBinda = (row) => {
+  blinda.value = true;
+};
+// 鏆傚仠浠诲姟 
+const handleBindc = (row) => {
+  blindc.value = true;
+};
+// 鍒犻櫎浠诲姟 
+const handleBindd = (row) => {
+  blindd.value = true;
+};
+const removalMethodMap = {
+  1: t('Mounting.removal'),
+  0: t('Mounting.noremoval')
+};
+const removalcas = {
+  1: t('hellow.Y'),
+  0: t('hellow.F')
+}
+const removalinterval = {
+  1: t('hellow.intervalFrameTypeb'),
+  5: t('hellow.intervalFrameTypea')
+}
+// 澶勭悊缂栬緫鎸夐挳鐐瑰嚮  
+function handleEdit(row) {  
+  window.localStorage.setItem('id', row.id)
+    formulaName.value = row.formulaName;
+    filmRemove.value = removalMethodMap[row.filmRemove];
+    bottomRemove.value = row.bottomRemove;
+    leftRemove.value = row.leftRemove;
+    rightRemove.value = row.rightRemove;
+    topRemove.value = row.topRemove;
+    casFour.value = removalcas[row.casFour];
+    casOne.value = removalcas[row.casOne];
+    casThree.value = removalcas[row.casThree];
+    casTwo.value = removalcas[row.casTwo];
+    frameFour.value = row.frameFour;
+    frameOne.value = row.frameOne;
+    frameThree.value = row.frameThree;
+    frameTwo.value = row.frameTwo;
+    intervalFrameHeightOne.value = row.intervalFrameHeightOne;
+    intervalFrameHeightTwo.value = row.intervalFrameHeightTwo;
+    intervalFrameHeightThree.value = row.intervalFrameHeightThree;
+    intervalFrameHeightFour.value = row.intervalFrameHeightFour;
+    intervalFrameTypeOne.value =  removalinterval[row.intervalFrameTypeOne];
+    intervalFrameTypeTwo.value =  removalinterval[row.intervalFrameTypeTwo];
+    intervalFrameTypeThree.value = removalinterval[row.intervalFrameTypeThree];
+    intervalFrameTypeFour.value = removalinterval[row.intervalFrameTypeFour];
+    intervalFrameWidthOne.value = row.intervalFrameWidthOne;
+    intervalFrameWidthTwo.value = row.intervalFrameWidthTwo;
+    intervalFrameWidthThree.value = row.intervalFrameWidthThree;
+    intervalFrameWidthFour.value = row.intervalFrameWidthFour;
+    sealInsert.value = row.sealInsert;
+    adda.value = true;
+} 
+function openAddDialog() {  
+    formulaName.value = '';
+    filmRemove.value = '';
+    bottomRemove.value = '';
+    leftRemove.value = '';
+    rightRemove.value = '';
+    topRemove.value = '';
+    casFour.value = '';
+    casOne.value = '';
+    casThree.value = '';
+    casTwo.value = '';
+    frameFour.value = '';
+    frameOne.value = '';
+    frameThree.value = '';
+    frameTwo.value = '';
+    intervalFrameHeightOne.value = '';
+    intervalFrameHeightTwo.value = '';
+    intervalFrameHeightThree.value = '';
+    intervalFrameHeightFour.value = '';
+    intervalFrameTypeOne.value = '';
+    intervalFrameTypeTwo.value = '';
+    intervalFrameTypeThree.value = '';
+    intervalFrameTypeFour.value = '';
+    intervalFrameWidthOne.value = '';
+    intervalFrameWidthTwo.value = '';
+    intervalFrameWidthThree.value = '';
+    intervalFrameWidthFour.value = '';
+    sealInsert.value = '';
+    add.value = true;
+}
+const handlezhiban = () => {
+  dialogFormVisiblea.value = true;
+  fetchFlowCardId();
+};
+const handleormulan = () => {
+  mulan.value = true;
+  fetchmulan();
+};
+function getcasOnea(casOne) {  
+  switch (casOne) {  
+    case "1":
+      return 'success';  
+    case "0": 
+      return 'warning';  
+    default:
+      return 'info'; 
+  }  
+}  
+function getStatuscasOnea(casOne) {
+  switch (casOne) {
+    case "1":  
+      return t('hellow.Y');
+    case "0":  
+      return t('hellow.F'); 
+    default:
+      return '';
+  }  
+}
+function getcasOneb(casOne) {  
+  switch (casOne) {  
+    case "1":
+      return 'success';  
+    case "0": 
+      return 'warning';  
+    default:
+      return 'info'; 
+  }  
+}  
+function getStatuscasOneb(casOne) {
+  switch (casOne) {
+    case "1":  
+      return t('hellow.Y');
+    case "0":  
+      return t('hellow.F'); 
+    default:
+      return '';
+  }  
+}
+function getcasOnec(casOne) {  
+  switch (casOne) {  
+    case "1":
+      return 'success';  
+    case "0": 
+      return 'warning';  
+    default:
+      return 'info'; 
+  }  
+}  
+function getStatuscasOnec(casOne) {
+  switch (casOne) {
+    case "1":  
+      return t('hellow.Y');
+    case "0":  
+      return t('hellow.F'); 
+    default:
+      return '';
+  }  
+}
+
+function getcasOned(casOne) {  
+  switch (casOne) {  
+    case "1":
+      return 'success';  
+    case "0": 
+      return 'warning';  
+    default:
+      return 'info'; 
+  }  
+}  
+function getStatuscasOned(casOne) {
+  switch (casOne) {
+    case "1":  
+      return t('hellow.Y');
+    case "0":  
+      return t('hellow.F'); 
+    default:
+      return '';
+  }  
+}
+function getStatusTypea(intervalFrameTypeOne) {  
+  switch (intervalFrameTypeOne) {  
+    case "1":
+      return 'success';  
+    case "5": 
+      return 'warning';  
+    default:
+      return 'info'; 
+  }  
+}  
+function getStatusTexta(intervalFrameTypeOne) {
+  switch (intervalFrameTypeOne) {
+    case "1":  
+      return t('hellow.intervalFrameTypeb');
+    case "5":  
+      return t('hellow.intervalFrameTypea'); 
+    default:
+      return '';
+  }  
+}
+function getStatusTypeb(intervalFrameTypeTwo) {  
+  switch (intervalFrameTypeTwo) {  
+    case "1":
+      return 'success';  
+    case "5": 
+      return 'warning';  
+    default:
+      return 'info'; 
+  }  
+}  
+function getStatusTextb(intervalFrameTypeTwo) {
+  switch (intervalFrameTypeTwo) {
+    case "1":  
+      return t('hellow.intervalFrameTypeb');
+    case "5":  
+      return t('hellow.intervalFrameTypea'); 
+    default:
+      return '';
+  }  
+}
+function getStatusTypec(intervalFrameTypeThree) {  
+  switch (intervalFrameTypeThree) { 
+    case "1":
+      return 'success';  
+    case "5": 
+      return 'warning';  
+    default:
+      return 'info'; 
+  }  
+}  
+function getStatusTextc(intervalFrameTypeThree) {
+  switch (intervalFrameTypeThree) {
+    case "1":  
+      return t('hellow.intervalFrameTypeb');
+    case "5":  
+      return t('hellow.intervalFrameTypea'); 
+    default:
+      return '';
+  }  
+}
+function getStatusTyped(intervalFrameTypeFour) {  
+  switch (intervalFrameTypeFour) {  
+    case "1":
+      return 'success';  
+    case "5": 
+      return 'warning';  
+    default:
+      return 'info'; 
+  }  
+}  
+function getStatusTextd(intervalFrameTypeFour) {
+  switch (intervalFrameTypeFour) {
+    case "1":  
+      return t('hellow.intervalFrameTypeb');
+    case "5":  
+      return t('hellow.intervalFrameTypea'); 
+    default:
+      return '';
+  }  
+}
+// 棰勮
+const selectproject = () => {
+  dialogFormVisiblee.value = true;
+  selectgong();
+};
+// 缂虹墖璇︽儏
+const handleBindRack = (row) => {
+  currentPage2.value = 1;
+  const { flowCardId } = row;
+  currentRow.flowCardId  = row.flowCardId;
+  dialogFormVisibleb.value = true;
+  fetchFlowBind(flowCardId,currentPage2.value);
+};
+// 棰嗗彇浠诲姟
+const handletake = (row) => {
+  window.localStorage.setItem('flowCardId', row.flowCardId)
+  dialogFormVisiblec.value = true;
+  fetchmulan()
+};
+// 寮哄埗鍑虹墖
+const handleout = (row) => {
+  window.localStorage.setItem('flowCardId', row.flowCardId)
+  dialogFormVisibled.value = true;
+  fetchmulan()
+};
+// 鍒涘缓浠诲姟
+const fetchFlowCardId = async () => {
+  try {
+    const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard',{
+      deviceId: 0,
+      filmsId: '',
+      flowCardId: '',
+      thickness: 0,
+    });
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableDatab.value = response.data;
+    } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+function tableRowClassName({ row }) {
+  if (row.isThroughSlot == true) {
+    return 'row-red-background';
+  }
+  return '';
+}
+function nestedTableRowClassName(parentRow, row) {
+  if (parentRow.isThroughSlot == true) {
+    return 'row-red-background';
+  }
+  return '';
+}
+const fetchFlowCardsearch = async () => {
+  try {
+    const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard',{
+      filmsId: filmsId.value,
+      flowCardId: flowCardId.value,
+      thickness: thickness.value
+    });
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableDatab.value = response.data;
+    } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+// 涓┖閰嶆柟
+const fetchmulan = async () => {
+  try {
+    var url="/hollowGlass/hollowFormulaDetails/listFormulaDetails?keyword="+'';
+    const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableDatax.value = response.data;
+      titleformulaName.value = response.data.map(item => ({ formulaId: item.id, formulaName: item.formulaName }));
+    } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+const handleFormulaChange = (value) => {
+  const selectedItem = titleformulaName.value.find(item => item.formulaName === value);
+  if (selectedItem) {
+    formulaNameid.value = { id: selectedItem.formulaId };
+    window.localStorage.setItem('id', formulaNameid.value.id)
+  } else {
+    formulaNameid.value = { id: null };
+  }
+};
+// 楠岃瘉鍑芥暟
+function validateForm() {
+  const errors = [];
+  if (!formulaName.value) errors.push('蹇呭~锛�');
+  if (filmRemove.value === null) errors.push('蹇呭~锛�');
+  if (!bottomRemove.value) errors.push('蹇呭~锛�');
+  if (!topRemove.value) errors.push('蹇呭~锛�');
+  if (!leftRemove.value) errors.push('蹇呭~锛�');
+  if (!rightRemove.value) errors.push('蹇呭~锛�');
+  if (casOne.value === null) errors.push('蹇呭~锛�');
+  if (!frameOne.value) errors.push('蹇呭~锛�');
+  if (!intervalFrameHeightOne.value) errors.push('蹇呭~锛�');
+  if (!intervalFrameWidthOne.value) errors.push('蹇呭~锛�');
+  if (intervalFrameTypeOne.value === null) errors.push('蹇呭~锛�');
+  if (!sealInsert.value) errors.push('蹇呭~锛�');
+  if (errors.length > 0) {
+    ElMessage.error(errors.join(''));
+    return false;
+  }
+  return true;
+}
+// 涓┖閰嶆柟娣诲姞
+const handleConfirm = async () => {
+  try {
+    if (!validateForm()) return;  
+    const response = await request.post('/hollowGlass/hollowFormulaDetails/saveFormulaDetails',{
+      formulaName: formulaName.value,
+      filmRemove: filmRemove.value,
+      bottomRemove: bottomRemove.value,
+      leftRemove: leftRemove.value,
+      rightRemove: rightRemove.value,
+      topRemove: topRemove.value,
+      casFour: casFour.value,
+      casOne: casOne.value,
+      casThree: casThree.value,
+      casTwo: casTwo.value,
+      frameFour: frameFour.value,
+      frameOne: frameOne.value,
+      frameThree: frameThree.value,
+      frameTwo: frameTwo.value,
+      intervalFrameHeightOne: intervalFrameHeightOne.value,
+      intervalFrameHeightTwo: intervalFrameHeightTwo.value,
+      intervalFrameHeightThree: intervalFrameHeightThree.value,
+      intervalFrameHeightFour: intervalFrameHeightFour.value,
+      intervalFrameTypeOne: intervalFrameTypeOne.value,
+      intervalFrameTypeTwo: intervalFrameTypeTwo.value,
+      intervalFrameTypeThree: intervalFrameTypeThree.value,
+      intervalFrameTypeFour: intervalFrameTypeFour.value,
+      intervalFrameWidthOne: intervalFrameWidthOne.value,
+      intervalFrameWidthTwo: intervalFrameWidthTwo.value,
+      intervalFrameWidthThree: intervalFrameWidthThree.value,
+      intervalFrameWidthFour: intervalFrameWidthFour.value,
+      sealInsert: sealInsert.value,
+    });
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      // tableDatax.value = response.data;
+      fetchmulan()
+      add.value = false
+      formulaName.value = '';
+      filmRemove.value = '';
+      bottomRemove.value = '';
+      leftRemove.value = '';
+      rightRemove.value = '';
+      topRemove.value = '';
+      casFour.value = '';
+      casOne.value = '';
+      casThree.value = '';
+      casTwo.value = '';
+      frameFour.value = '';
+      frameOne.value = '';
+      frameThree.value = '';
+      frameTwo.value = '';
+      intervalFrameHeightOne.value = '';
+      intervalFrameHeightTwo.value = '';
+      intervalFrameHeightThree.value = '';
+      intervalFrameHeightFour.value = '';
+      intervalFrameTypeOne.value = '';
+      intervalFrameTypeTwo.value = '';
+      intervalFrameTypeThree.value = '';
+      intervalFrameTypeFour.value = '';
+      intervalFrameWidthOne.value = '';
+      intervalFrameWidthTwo.value = '';
+      intervalFrameWidthThree.value = '';
+      intervalFrameWidthFour.value = '';
+      sealInsert.value = '';
+    } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+
+const removalMethodMapa = {
+  [t('Mounting.removal')]: 1,
+  [t('Mounting.noremoval')]: 0,
+};
+const removalcasa = {
+  [t('hellow.Y')]: 1,
+  [t('hellow.F')]: 0,
+}
+const removalintervala = {
+  [t('hellow.intervalFrameTypeb')]: 1,
+  [t('hellow.intervalFrameTypea')]: 5,
+}
+// 涓┖閰嶆柟淇敼
+ const handledit = async() => {  
+  let id = window.localStorage.getItem('id')
+  try {
+    const response = await request.post('/hollowGlass/hollowFormulaDetails/updateFormulaDetails',{
+      id: id,
+      formulaName: formulaName.value,
+      filmRemove: removalMethodMapa[filmRemove.value],
+      bottomRemove: bottomRemove.value,
+      leftRemove: leftRemove.value,
+      rightRemove: rightRemove.value,
+      topRemove: topRemove.value,
+      casFour: removalcasa[casFour.value],
+      casOne: removalcasa[casOne.value],
+      casThree: removalcasa[casThree.value],
+      casTwo: removalcasa[casTwo.value],
+      frameFour: frameFour.value,
+      frameOne: frameOne.value,
+      frameThree: frameThree.value,
+      frameTwo: frameTwo.value,
+      intervalFrameHeightOne: intervalFrameHeightOne.value,
+      intervalFrameHeightTwo: intervalFrameHeightTwo.value,
+      intervalFrameHeightThree: intervalFrameHeightThree.value,
+      intervalFrameHeightFour: intervalFrameHeightFour.value,
+      intervalFrameTypeOne: removalintervala[intervalFrameTypeOne.value],
+      intervalFrameTypeTwo: removalintervala[intervalFrameTypeTwo.value],
+      intervalFrameTypeThree: removalintervala[intervalFrameTypeThree.value],
+      intervalFrameTypeFour:  removalintervala[intervalFrameTypeFour.value],
+      intervalFrameWidthOne: intervalFrameWidthOne.value,
+      intervalFrameWidthTwo: intervalFrameWidthTwo.value,
+      intervalFrameWidthThree: intervalFrameWidthThree.value,
+      intervalFrameWidthFour: intervalFrameWidthFour.value,
+      sealInsert: sealInsert.value,
+    });
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      adda.value = false
+      fetchmulan()
+    } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+// 涓┖閰嶆柟鍒犻櫎 
+ const opena = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('hellow.hollowformuldet'), 
+      t('productStock.prompt'),  
+      {  
+        confirmButtonText: t('productStock.yes'), 
+        cancelButtonText: t('productStock.cancel'),
+        type: 'warning',  
+      } 
+    );
+    if (confirmResult === 'confirm') {
+    var url="/hollowGlass/hollowFormulaDetails/deleteFormulaDetails?idList="+row.id;
+    const response = await request.post(url)
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      fetchmulan()
+    } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {
+  }  
+};
+// 宸ョ▼鍙�
+const selectgong = async () => {
+  try {
+    var url="/hollowGlass/hollowGlassOutRelationInfo/hollowTaskList?cell="+ 930;
+    const response = await request.post(url)
+    if (response.code == 200) {
+      const processTypes = response.data.map((projectNo, index) => ({
+        value: projectNo,
+        label: projectNo
+      }));
+      titleSelectJson.value.processType = processTypes;
+    } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+// 棰勮
+const handleup = async () => {
+  try {
+    var url="/hollowGlass/hollowGlassOutRelationInfo/appointHollowTaskDetails?cell="+ 930 + "&flowCardId=" + selectedProjectNo.value;
+  window.localStorage.setItem('flowCardId', selectedProjectNo.value)
+  const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableDataa.value = response.data;
+      dialogFormVisiblee.value = false
+      selectedProjectNo.value = ''
+      closeWebSocket(socket);
+  } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+const parseData = (rawData) => {
+  return Object.entries(rawData).map(([compositeKey, records]) => {
+    const [projectNumber, productName] = compositeKey.split(':');
+    return {
+      projectNumber,
+      productname: productName,
+      records: records.map(record => ({
+        ...record,
+      }))
+    };
+  });
+};
+const fetchFlowBind = async (flowCardId, page) => {
+  try {
+    var url="/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId="+flowCardId + "&layer=" + 1;
+    const response = await request.post(url)
+    if (response.code == 200) {
+      tableDatac.value = response.data[page];
+      ElMessage.success(response.message);
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+  }
+}
+// 寮�濮嬩换鍔�
+const handlea = async () => {
+  try {
+    let flowCardId = window.localStorage.getItem('flowCardId')
+    if (flowCardId !== '') {
+    var url="/hollowGlass/hollowGlassOutRelationInfo/startTask?flowCardId="+flowCardId + "&cell=" + 930;
+    const response = await request.post(url)
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        blinda.value = false;
+      } else {
+        ElMessage.error(response.message);
+      }
+    } else {
+      ElMessage({
+        type: 'info',
+        message: t('basicData.infonull'),
+      })
+    }
+  } catch (error) {
+  }
+}
+// 鏆傚仠浠诲姟
+const handlec = async () => {
+  try {
+    let flowCardId = window.localStorage.getItem('flowCardId')
+    if (flowCardId !== '') {
+    var url="/hollowGlass/hollowGlassOutRelationInfo/pauseTask?flowCardId="+flowCardId + "&cell=" + 930;
+    const response = await request.post(url)
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        blindc.value = false;
+      } else {
+        ElMessage.error(response.message);
+      }
+    } else {
+      ElMessage({
+        type: 'info',
+        message: t('basicData.infonull'),
+      })
+    }
+  } catch (error) {
+  }
+}
+// 鍒犻櫎浠诲姟
+const handled = async () => {
+  try {
+    let flowCardId = window.localStorage.getItem('flowCardId')
+    if (flowCardId !== '') {
+    var url="/hollowGlass/hollowGlassOutRelationInfo/deleteHollowTaskDetails?flowCardId="+flowCardId + "&cell=" + 930;
+    const response = await request.post(url)
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        blindd.value = false;
+      } else {
+        ElMessage.error(response.message);
+      }
+    } else {
+      ElMessage({
+        type: 'info',
+        message: t('basicData.infonull'),
+      })
+    }
+  } catch (error) {
+  }
+}
+// 棰嗗彇浠诲姟
+const finisha = async () => {
+  let flowCardId = window.localStorage.getItem('flowCardId')
+  let id = window.localStorage.getItem('id')
+    try {
+      var url="/hollowGlass/hollowGlassOutRelationInfo/receiveTask?cell="+ 930 + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantity.value+ "&formulaId=" + id;
+      const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      dialogFormVisiblec.value = false;
+      cell.value = '';
+      formulaName.value = '';
+      totalPairQuantity.value = '';
+    } else {
+          ElMessage.error(response.message);
+        }
+      } catch (error) {
+      }
+    }
+// 寮哄埗鍑虹墖
+const finishb = async () => {
+  let flowCardId = window.localStorage.getItem('flowCardId')
+  let id = window.localStorage.getItem('id')
+  try {
+      var url="/hollowGlass/hollowGlassOutRelationInfo/forceOutGlass?cell="+ 930 + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantitya.value+ "&formulaId=" + id;
+      const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      dialogFormVisibled.value = false;
+      cella.value = '';
+      totalPairQuantitya.value = '';
+    } else {
+          ElMessage.error(response.message);
+        }
+      } catch (error) {
+      }
+    }
+
+onBeforeUnmount(() => {
+  closeWebSocket();
+});
+</script>
+<style scoped>
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer {
+  text-align: center;
+  margin-top: -15px;
+}
+#dotClass {
+  display: flex;
+  margin-left: 20px; 
+  size: 50px;
+  margin-top: 20px;
+  margin-bottom: 10px;
+}
+::v-deep(.row-red-background) {
+  background-color: rgb(224.6, 242.8, 215.6) !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/hollow/hollowequipmenthree.vue b/UI-Project/src/views/hollow/hollowequipmenthree.vue
new file mode 100644
index 0000000..3a4fa07
--- /dev/null
+++ b/UI-Project/src/views/hollow/hollowequipmenthree.vue
@@ -0,0 +1,1023 @@
+<template>
+  <div style="height: 600px;">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;" >
+      <div style="display: flex; flex-direction: row; align-items: center; margin-bottom: 10px;">
+        <!-- <el-button id="searchButton" type="primary" @click="handleormulan">
+          {{ $t('hellow.hollowformula') }}
+        </el-button> -->
+        <el-button id="searchButton" type="primary" @click="handlezhiban">
+          {{ $t('hellow.createtask') }}
+        </el-button>
+        <el-button type="primary" @click="selectproject">
+          {{ $t('hellow.reviewproject') }}
+        </el-button>
+    <el-button style="margin-left: 10px;" id="searchButton" type="primary" @click="handlehistorical">{{ $t('searchOrder.historicaltasks') }}</el-button>
+    <el-button style="margin-left: 10px;" id="searchButton" type="success" @click="handleBinda">
+          {{ $t('hellow.starttask') }}
+        </el-button>
+        <el-button style="margin-left: 10px;" id="searchButton" type="info" @click="handleBindd">{{
+            $t('hellow.taskdet')
+          }}
+        </el-button>
+        <el-button style="margin-left: 10px;" id="searchButton" type="warning" @click="handleBindc">{{
+            $t('hellow.stopproject')
+          }}
+        </el-button>
+  </div>
+     
+    <div id="dotClass">
+            <div style="margin-left: 70px;">{{ $t('hellow.freethree') }}</div>
+        <i :style="{ marginTop: '2px', backgroundColor: freethree, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+       </div>
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+        <el-table height="650" ref="table" :data="tableDataa"
+                  :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }">
+          <el-table-column prop="flowCardId" :label="$t('hellow.flowCardId')" align="center"/>
+          <el-table-column prop="glassId" :label="$t('searchOrder.glassID')" align="center"/>
+          <el-table-column prop="hollowSequence" :label="$t('hellow.order')" align="center"/>
+          <el-table-column prop="thickness" :label="$t('hellow.thickness')" align="center"/>
+          <el-table-column prop="layer" :label="$t('hellow.layer')" align="center"/>
+          <el-table-column prop="filmsId" :label="$t('hellow.coatingtypes')" align="center"/>
+          <el-table-column prop="height" :label="$t('hellow.height')" align="center"/>
+          <el-table-column prop="width" :label="$t('hellow.width')" align="center"/>
+          <el-table-column prop="state" :label="$t('hellow.state')" align="center">
+            <template #default="scope">
+              {{ scope.row.state == -1 ? "绛夊緟鍑虹墖" : "鍑虹墖瀹屾垚" }}
+            </template>
+          </el-table-column>
+        </el-table>
+      <!-- <div style="display: flex;margin-left: 40%;margin-top: 10px;">
+      <div style="margin-top: 5px;margin-right: 5px;">{{ $t('hellow.line') }}</div>
+    <el-pagination
+          background
+          size="large"
+          layout="prev, pager, next"
+          :total="30"
+          :current-page.sync="currentPage"
+          @current-change="handlePageChange1"
+        />
+      </div> -->
+  </div>
+    </el-card>
+  </div>
+  <!-- 鍒涘缓浠诲姟 -->
+  <el-dialog v-model="dialogFormVisiblea" top="5vh" width="85%">
+    <div style="display: flex;">
+    <el-input v-model="flowCardId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('searchOrder.incardnumber')" />
+    <el-input v-model="filmsId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('film.infilms')"/>
+    <el-input v-model="thickness" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('searchOrder.inthickness')"/>
+    <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="fetchFlowCardsearch">
+      {{$t('reportmanage.inquire')}}</el-button>
+  </div>
+  <el-table
+    ref="table"
+    style="margin-top: 20px; height: 700px;"
+    :data="tableDatab"
+    :row-class-name="tableRowClassName"
+    :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
+    row-key="projectNumber"
+  >
+    <!-- <el-table-column type="expand"> -->
+    <el-table-column>
+    <template #default="props">
+      <el-table :data="props.row.flowCardGlassInfoDTOList" style="width: 100%"
+      :row-class-name="(row) => nestedTableRowClassName(props.row, row)" 
+      >
+      <el-table-column prop="layer" fixed align="center" :label="$t('hellow.layernumber')" min-width="80"/>
+      <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80"/>
+      <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80"/>
+      <el-table-column prop="sumCount" align="center" :label="$t('hellow.totalnumber')" min-width="80"/>
+      <el-table-column prop="realCount" align="center" :label="$t('hellow.realpieces')" min-width="80"/>
+      <el-table-column prop="pairCount" align="center" :label="$t('hellow.pairsnumber')" min-width="80"/>
+      <el-table-column prop="damageCount" align="center" :label="$t('hellow.damagenumber')" min-width="80"/>
+      </el-table>
+      </template>
+    </el-table-column>
+    <el-table-column prop="flowCardId" fixed align="center" :label="$t('hellow.cardnumber')" min-width="20"/>
+    <el-table-column prop="productName" fixed align="center" :label="$t('large.productname')" min-width="20"/>
+    <el-table-column fixed="right" :label="$t('hellow.operate')" align="center" width="270">
+        <template #default="scope">
+          <el-button type="text" :disabled="scope.row.isThroughSlot" plain @click="handletake(scope.row)">{{ $t('hellow.claimquest') }}</el-button>
+          <el-button type="text" plain @click="handleBindRack(scope.row)">{{
+              $t('hellow.missingfilms')
+            }}
+          </el-button>
+          <el-button type="text" plain @click="handleout(scope.row)">{{
+              $t('hellow.forcedfilming')
+            }}
+          </el-button>
+        </template>
+      </el-table-column>
+  </el-table>
+</el-dialog>
+<!-- 涓┖閰嶆柟娣诲姞 -->
+<el-dialog v-model="add" top="23vh" width="55%" :title="$t('hellow.hollowformula')" >
+    <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
+     <el-form  label-width="150px">
+      <el-form label-width="150px" label-position="right">
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item :label="$t('hellow.formulaName')" :required="true" style="width: 16vw;">
+                <el-input :placeholder="$t('hellow.formulaNamea')" v-model="formulaName" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('Mounting.removalmethoda')" :required="true" style="width: 16vw;">
+            <el-select v-model="filmRemove" clearable  style="width: 220px" :placeholder="$t('Mounting.removalmethod')">
+        <el-option :label="$t('Mounting.removal')" value="1"></el-option>
+        <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
+      </el-select>
+              </el-form-item>
+            </div>
+              </div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.bottomRemove')" :required="true" style="width: 16vw;">
+                <el-input :placeholder="$t('hellow.bottomRemovea')" v-model="bottomRemove" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.topRemove')" :required="true" style="width: 16vw;">
+                <el-input :placeholder="$t('hellow.topRemovea')" v-model="topRemove" autocomplete="off" />
+           </el-form-item>
+            </div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.leftRemove')" :required="true" style="width: 16vw;">
+                <el-input :placeholder="$t('hellow.leftRemovea')" v-model="leftRemove" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.rightRemove')" :required="true" style="width: 16vw;">
+            <el-input :placeholder="$t('hellow.rightRemovea')" v-model="rightRemove" autocomplete="off" />
+              </el-form-item>
+            </div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleConfirm">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="add = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+<!-- 涓┖閰嶆柟淇敼 -->
+<el-dialog v-model="adda" top="23vh" width="55%" :title="$t('hellow.edithollowformula')" >
+    <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
+     <el-form  label-width="150px">
+      <el-form label-width="150px" label-position="right">
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item :label="$t('hellow.formulaName')" :required="true" style="width: 16vw;">
+                <el-input :placeholder="$t('hellow.formulaNamea')" v-model="formulaName" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('Mounting.removalmethoda')" :required="true" style="width: 16vw;">
+            <el-select v-model="filmRemove" clearable  style="width: 220px" :placeholder="$t('Mounting.removalmethod')">
+        <el-option :label="$t('Mounting.removal')" value="1"></el-option>
+        <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
+      </el-select>
+              </el-form-item>
+            </div>
+              </div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.bottomRemove')" :required="true" style="width: 16vw;">
+                <el-input :placeholder="$t('hellow.bottomRemovea')" v-model="bottomRemove" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.topRemove')" :required="true" style="width: 16vw;">
+                <el-input :placeholder="$t('hellow.topRemovea')" v-model="topRemove" autocomplete="off" />
+           </el-form-item>
+            </div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.leftRemove')" :required="true" style="width: 16vw;">
+                <el-input :placeholder="$t('hellow.leftRemovea')" v-model="leftRemove" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.rightRemove')" :required="true" style="width: 16vw;">
+            <el-input :placeholder="$t('hellow.rightRemovea')" v-model="rightRemove" autocomplete="off" />
+              </el-form-item>
+            </div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handledit">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="adda = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 棰嗗彇浠诲姟 -->
+  <el-dialog v-model="dialogFormVisiblec" top="21vh" width="40%" :title="$t('hellow.claimquest')">
+    <div style="margin-left: 20px;margin-top: 10px;margin-bottom: 10px;">
+      <el-form label-width="100px">
+        <el-form label-width="210px" label-position="right">
+          <el-form-item :label="$t('hellow.ptotalpairQuantity')" :required="true" style="width: 25vw">
+            <el-input :placeholder="$t('hellow.cpairQuantity')" v-model="totalPairQuantity" autocomplete="off" />
+          </el-form-item>
+          <el-form-item :label="$t('hellow.route')" :required="true" style="width: 25vw;">
+            <el-select 
+            :placeholder="$t('hellow.line3')"
+            disabled
+             style="width: 270px"  
+             v-model="cell">
+               <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
+          </el-select>
+          </el-form-item>
+          <!-- <el-form-item :label="$t('hellow.hollowformulp')" :required="true" style="width: 25vw;">
+        <el-select
+            v-model="selectedFormulaName"
+            filterable
+            clearable
+            :placeholder="$t('hellow.phollowformula')"
+            style="width: 270px"
+            @change="handleFormulaChange"
+        >
+          <el-option
+              v-for="item in titleformulaName"
+              :key="item.id"
+              :label="item.formulaName"
+              :value="item.formulaName"
+          />
+        </el-select>
+      </el-form-item> -->
+        </el-form>
+      </el-form>
+    </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="finisha">
+          {{ $t('reportWork.sure') }}
+        </el-button>
+        <el-button @click="dialogFormVisiblec = false">{{ $t('reportWork.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 寮哄埗鍑虹墖 -->
+  <el-dialog v-model="dialogFormVisibled" top="21vh" width="40%" :title="$t('hellow.forcedfilming')">
+    <div style="margin-left: 20px;margin-top: 10px;margin-bottom: 10px;">
+      <el-form label-width="100px">
+        <el-form label-width="210px" label-position="right">
+          <el-form-item :label="$t('hellow.ptotalpairQuantity')" :required="true" style="width: 25vw">
+            <el-input :placeholder="$t('hellow.cpairQuantity')" v-model="totalPairQuantitya" autocomplete="off" />
+          </el-form-item>
+          <el-form-item :label="$t('hellow.route')" :required="true" style="width: 25vw;">
+            <el-select 
+            :placeholder="$t('hellow.line3')"
+            disabled
+             style="width: 270px"  
+             v-model="cella">
+               <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
+          </el-select>
+          </el-form-item>
+          <!-- <el-form-item :label="$t('hellow.hollowformulp')" :required="true" style="width: 25vw;">
+        <el-select
+            v-model="selectedFormulaName"
+            filterable
+            clearable
+            :placeholder="$t('hellow.phollowformula')"
+            style="width: 270px"
+            @change="handleFormulaChange"
+        >
+          <el-option
+              v-for="item in titleformulaName"
+              :key="item.id"
+              :label="item.formulaName"
+              :value="item.formulaName"
+          />
+        </el-select>
+      </el-form-item> -->
+        </el-form>
+      </el-form>
+    </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="finishb">
+          {{ $t('reportWork.sure') }}
+        </el-button>
+        <el-button @click="dialogFormVisibled = false">{{ $t('reportWork.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 缂虹墖璇︽儏 -->
+  <el-dialog v-model="dialogFormVisibleb" top="7vh" width="70%" height="500">
+    <div style="margin-top: -20px;text-align: center;margin-left: 400px;">
+      <el-form-item :label="$t('hellow.cardnumbera')" style="width: 14vw">
+        {{ currentRow.flowCardId }}
+      </el-form-item>
+    </div>
+    <el-table ref="table" style="margin-top: 20px;height: 400px;"
+          :data="tableDatac" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+      <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80"/>
+      <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80"/>
+      <el-table-column prop="height" align="center" :label="$t('hellow.height')" min-width="80"/>
+      <el-table-column prop="width" align="center" :label="$t('hellow.width')" min-width="80"/>
+      <!-- <el-table-column prop="totalCount" align="center" :label="$t('hellow.totalnumber')" min-width="80"/> -->
+      <el-table-column prop="lackCount" align="center" :label="$t('hellow.missingnumber')" min-width="80"/>
+      <!-- <el-table-column prop="damageCount" align="center" :label="$t('hellow.brokenpieces')" min-width="80"/> -->
+      <div style="float: right;margin-bottom: 5px;">
+        <el-pagination layout="prev, pager, next" :total="50"/>
+      </div>
+    </el-table>
+    <div style="display: flex;margin-left: 40%;margin-top: 10px;">
+  <el-pagination
+          background
+          size="large"
+          layout="prev, pager, next"
+          :total="30"
+          :current-page.sync="currentPage2"
+          @current-change="handlePageChange2"
+        />
+  </div>
+  </el-dialog>
+  <!-- 寮�濮嬩换鍔� -->
+  <el-dialog v-model="blinda" top="30vh" width="25%" :title="$t('hellow.pstarttask')">
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handlea">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="blinda = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 鏆傚仠浠诲姟 -->
+  <el-dialog v-model="blindc" top="30vh" width="25%" :title="$t('hellow.pstopproject')">
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handlec">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="blindc = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 鍒犻櫎浠诲姟 -->
+  <el-dialog v-model="blindd" top="30vh" width="25%" :title="$t('hellow.hollowtaskdet')">
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handled">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="blindd = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 棰勮 -->
+  <el-dialog v-model="dialogFormVisiblee" top="24vh" width="25%" :title="$t('hellow.reviewproject')" >
+    <div style="margin-left: 50px;margin-bottom: 10px;">
+      <el-form-item :label="$t('basicData.projectnumber')" :required="true">
+        <el-select
+            v-model="selectedProjectNo"
+            filterable
+            clearable
+            :placeholder="$t('basicData.plselectproject')"
+            style="width: 260px"
+        >
+          <el-option
+              v-for="item in titleSelectJson.processType"
+              :key="item.value"
+              :label="item.value"
+              :value="item.value"
+          />
+        </el-select>
+      </el-form-item>
+    </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleup">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="dialogFormVisiblee = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 涓┖閰嶆柟 -->
+  <el-dialog v-model="mulan" top="15vh" width="70%" :title="$t('hellow.hollowformula')">
+    <el-button id="searchButton" type="primary"  @click="openAddDialog">
+          {{ $t('basicData.add') }}
+        </el-button>
+      <el-table ref="table" style="margin-top: 20px;height: 400px;"
+                :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+        <el-table-column prop="formulaName" fixed align="center" :label="$t('hellow.formulaNamep')"/>
+        <el-table-column prop="filmRemove" align="center" :label="$t('Mounting.removalmethodp')" min-width="110">
+      <template #default="scope">
+        <el-tag :type="getcasOnea(scope.row.filmRemove)">
+          {{ getStatuscasOnea(scope.row.filmRemove) }}
+        </el-tag>
+      </template>
+    </el-table-column>
+        <el-table-column prop="topRemove" align="center" :label="$t('hellow.topRemovep')"> </el-table-column>
+        <el-table-column prop="bottomRemove" align="center" :label="$t('hellow.bottomRemovep')"> </el-table-column>
+        <el-table-column prop="leftRemove" align="center" :label="$t('hellow.leftRemovep')"> </el-table-column>
+        <el-table-column prop="rightRemove" align="center" :label="$t('hellow.rightRemovep')"> </el-table-column>
+        <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="270">
+            <template #default="scope">
+              <el-button type="text" plain @click="handleEdit(scope.row)">{{ $t('productStock.exit') }}</el-button>
+              <el-button type="text" plain @click="opena(scope.row)">{{ $t('productStock.delete') }}</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+        <template #footer>
+      <div id="dialog-footer">
+        <el-button @click="mulan = false">{{ $t('large.close') }}</el-button>
+      </div>
+    </template>
+</el-dialog>
+ <!-- 鍘嗗彶浠诲姟 -->
+ <el-dialog v-model="blindb" top="5vh" width="95%" @close="iframeUrl=''">
+     <iframe 
+     :src="iframeUrl" 
+     marginwidth="2000px"
+     marginheight="2000px"
+     width="100%" 
+     height="750px" 
+     frameborder="0"
+     ></iframe>
+  </el-dialog>
+</template>
+<script setup>
+import { ElMessage, ElMessageBox } from 'element-plus'
+import {onBeforeUnmount, onMounted, onUnmounted, ref, reactive, watch, computed} from "vue";
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n()
+const blinda = ref(false)
+const blindb = ref(false)
+const blindc = ref(false)
+const blindd = ref(false)
+const mulan = ref(false)
+const tableDataa = ref([])
+const tableDatab = ref([])
+const tableDatac = ref([])
+const tableDatax = ref([])
+const cell = ref('')
+const cella = ref('')
+const selectedProjectNo = ref('');
+const totalPairQuantity = ref('')
+const totalPairQuantitya = ref('')
+const bottomRemove = ref('')
+const filmRemove = ref('')
+const formulaName = ref('')
+const leftRemove = ref('')
+const thickness = ref('')
+const rightRemove = ref('')
+const topRemove = ref('')
+const filmsId = ref('')
+const flowCardId = ref('')
+const freethree = ref('#911005');
+const dialogFormVisiblea = ref(false)
+const dialogFormVisibleb = ref(false)
+const dialogFormVisiblec = ref(false)
+const dialogFormVisibled = ref(false)
+const dialogFormVisiblee = ref(false)
+const add = ref(false)
+const adda = ref(false)
+const currentPage2 = ref(1)
+const currentRow = reactive({});
+const formattedProcessType = ref([]);
+let selectedFormulaId = ref(null);
+const formulaNameid = ref({ id: null });
+const titleformulaName = ref({ formulaName: [] ,formulaId: []});
+const titleSelectJson = ref({ processType: [] });
+const iframeUrl = ref('');
+const handlehistorical = (row) => {
+  blindb.value = true;
+  iframeUrl.value = `${window.location.origin}/#/hollow/hellowquipthreehistory`;
+};
+const options = [
+  {
+    value: 930,
+    label: t('hellow.line1'),
+  },
+  {
+    value: 931,
+    label: t('hellow.line2'),
+  },
+  {
+    value: 932,
+    label: t('hellow.line3'),
+  }
+]
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/hollowGlass/api/talk/HollowGlassThree`;
+const currentPage = ref(parseInt(window.localStorage.getItem('currentPage')) || 1);
+watch(() => currentPage.value, (newVal) => {
+  window.localStorage.setItem('currentPage', newVal);
+});
+const currentPageKey = computed(() => `93${currentPage.value - 1}`);
+const handlePageChange1 = (newPage) => {
+  currentPage.value = newPage;
+};
+const handlePageChange2 = (newPage) => {
+  currentPage2.value = newPage;
+  fetchFlowBind(currentRow.flowCardId, currentPage2.value);
+};
+const handleMessage = (data) => {
+  try {
+    tableDataa.value = data.queueInfo[0];
+    const allPageData = data;
+    const currentPageKeyValue = currentPageKey.value;
+    const currentPageData = allPageData[currentPageKeyValue];
+    if (data.freeRequest != null) {
+      freethree.value = data.freeRequest[0] == true ? 'green' : '#911005';
+  }
+  } catch (error) {
+  }
+};
+onMounted(() => {
+  socket = initializeWebSocket(socketUrl, handleMessage);
+  window.localStorage.setItem('flowCardId', '')
+});
+onUnmounted(() => {
+  if (socket) {
+    closeWebSocket(socket);
+  }
+});
+function getcasOnea(filmRemove) {  
+  switch (filmRemove) {  
+    case 1:
+      return 'success';  
+    case 0: 
+      return 'warning';  
+    default:
+      return 'info'; 
+  }  
+}  
+function getStatuscasOnea(filmRemove) {
+  switch (filmRemove) {
+    case 1:  
+      return t('Mounting.removal');
+    case 0:  
+      return t('Mounting.noremoval'); 
+    default:
+      return '';
+  }  
+}
+// 寮�濮嬩换鍔� 
+const handleBinda = (row) => {
+  blinda.value = true;
+};
+// 鏆傚仠浠诲姟 
+const handleBindc = (row) => {
+  blindc.value = true;
+};
+// 鍒犻櫎浠诲姟 
+const handleBindd = (row) => {
+  blindd.value = true;
+};
+const removalMethodMap = {
+  1: t('Mounting.removal'),
+  0: t('Mounting.noremoval')
+};
+// 澶勭悊缂栬緫鎸夐挳鐐瑰嚮  
+function handleEdit(row) {  
+    formulaName.value = row.formulaName;
+    filmRemove.value = removalMethodMap[row.filmRemove];
+    bottomRemove.value = row.bottomRemove;
+    leftRemove.value = row.leftRemove;
+    rightRemove.value = row.rightRemove;
+    topRemove.value = row.topRemove;
+    adda.value = true;
+}  
+function openAddDialog() {  
+    formulaName.value = '';
+    filmRemove.value = '';
+    bottomRemove.value = '';
+    leftRemove.value = '';
+    rightRemove.value = '';
+    topRemove.value = '';
+    add.value = true;
+}
+const handlezhiban = () => {
+  dialogFormVisiblea.value = true;
+  fetchFlowCardId();
+};
+const handleormulan = () => {
+  mulan.value = true;
+  fetchmulan();
+};
+// 棰勮
+const selectproject = () => {
+  dialogFormVisiblee.value = true;
+  selectgong();
+};
+// 缂虹墖璇︽儏
+const handleBindRack = (row) => {
+  currentPage2.value = 1;
+  const { flowCardId} = row;
+  currentRow.flowCardId  = row.flowCardId;
+  dialogFormVisibleb.value = true;
+  fetchFlowBind(flowCardId, currentPage2.value);
+};
+// 棰嗗彇浠诲姟
+const handletake = (row) => {
+  window.localStorage.setItem('flowCardId', row.flowCardId)
+  dialogFormVisiblec.value = true;
+  fetchmulan()
+};
+// 寮哄埗鍑虹墖
+const handleout = (row) => {
+  window.localStorage.setItem('flowCardId', row.flowCardId)
+  dialogFormVisibled.value = true;
+  fetchmulan()
+};
+// 鍒涘缓浠诲姟
+const fetchFlowCardId = async () => {
+  try {
+    const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard',{
+      deviceId: 0,
+      filmsId: '',
+      flowCardId: '',
+      thickness: 0,
+    });
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableDatab.value = response.data;
+    } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+function tableRowClassName({ row }) {
+  if (row.isThroughSlot == true) {
+    return 'row-red-background';
+  }
+  return '';
+}
+function nestedTableRowClassName(parentRow, row) {
+  if (parentRow.isThroughSlot == true) {
+    return 'row-red-background';
+  }
+  return '';
+}
+const fetchFlowCardsearch = async () => {
+  try {
+    const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard',{
+      filmsId: filmsId.value,
+      flowCardId: flowCardId.value,
+      thickness: thickness.value
+    });
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableDatab.value = response.data;
+    } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+// 涓┖閰嶆柟
+const fetchmulan = async () => {
+  try {
+    var url="/hollowGlass/hollowFormulaDetails/listFormulaDetails?keyword="+'';
+    const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableDatax.value = response.data;
+      titleformulaName.value = response.data.map(item => ({ formulaId: item.id, formulaName: item.formulaName }));
+    } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+const handleFormulaChange = (value) => {
+  const selectedItem = titleformulaName.value.find(item => item.formulaName === value);
+  if (selectedItem) {
+    formulaNameid.value = { id: selectedItem.formulaId };
+    window.localStorage.setItem('id', formulaNameid.value.id)
+  } else {
+    formulaNameid.value = { id: null };
+  }
+};
+// 涓┖閰嶆柟娣诲姞
+const handleConfirm = async () => {
+  try {
+    const response = await request.post('/hollowGlass/hollowFormulaDetails/saveFormulaDetails',{
+      formulaName: formulaName.value,
+      filmRemove: filmRemove.value,
+      bottomRemove: bottomRemove.value,
+      leftRemove: leftRemove.value,
+      rightRemove: rightRemove.value,
+      topRemove: topRemove.value,
+    });
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableDatax.value = response.data;
+      add.value = false
+      formulaName.value = '';
+      filmRemove.value = '';
+      bottomRemove.value = '';
+      leftRemove.value = '';
+      rightRemove.value = '';
+      topRemove.value = '';
+      fetchmulan()
+    } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+const removalMethodMapa = {
+  [t('Mounting.removal')]: 1,
+  [t('Mounting.noremoval')]: 0,
+};
+// 涓┖閰嶆柟淇敼
+const handledit = async () => {
+  try {
+    const response = await request.post('/hollowGlass/hollowFormulaDetails/updateFormulaDetails',{
+      formulaName: formulaName.value,
+      filmRemove: removalMethodMapa[filmRemove.value],
+      bottomRemove: bottomRemove.value,
+      leftRemove: leftRemove.value,
+      rightRemove: rightRemove.value,
+      topRemove: topRemove.value,
+    });
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      adda.value = false
+      fetchmulan()
+    } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+// 涓┖閰嶆柟鍒犻櫎 
+ const opena = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('hellow.hollowformuldet'), 
+      t('productStock.prompt'),  
+      {  
+        confirmButtonText: t('productStock.yes'), 
+        cancelButtonText: t('productStock.cancel'),
+        type: 'warning',  
+      } 
+    );
+    if (confirmResult === 'confirm') {
+    var url="/hollowGlass/hollowFormulaDetails/deleteFormulaDetails?idList="+row.id;
+    const response = await request.post(url)
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      fetchmulan()
+    } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {
+  }  
+};
+// 宸ョ▼鍙�
+const selectgong = async () => {
+  try {
+    var url="/hollowGlass/hollowGlassOutRelationInfo/hollowTaskList?cell="+ 932;
+    const response = await request.post(url)
+    if (response.code == 200) {
+      const processTypes = response.data.map((projectNo, index) => ({
+        value: projectNo,
+        label: projectNo
+      }));
+      titleSelectJson.value.processType = processTypes;
+    } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+// 棰勮
+const handleup = async () => {
+  try {
+    var url="/hollowGlass/hollowGlassOutRelationInfo/appointHollowTaskDetails?cell="+ 932 + "&flowCardId=" + selectedProjectNo.value;
+  window.localStorage.setItem('flowCardId', selectedProjectNo.value)
+  const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableDataa.value = response.data;
+      dialogFormVisiblee.value = false
+      selectedProjectNo.value = ''
+      closeWebSocket(socket);
+  } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+const parseData = (rawData) => {
+  return Object.entries(rawData).map(([compositeKey, records]) => {
+    const [projectNumber, productName] = compositeKey.split(':');
+    return {
+      projectNumber,
+      productname: productName,
+      records: records.map(record => ({
+        ...record,
+      }))
+    };
+  });
+};
+const fetchFlowBind = async (flowCardId, page) => {
+  try {
+    var url="/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId="+flowCardId + "&layer=" + 1;
+    const response = await request.post(url)
+    if (response.code == 200) {
+      tableDatac.value = response.data[page];
+      ElMessage.success(response.message);
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+  }
+}
+// 寮�濮嬩换鍔�
+const handlea = async () => {
+  try {
+    let flowCardId = window.localStorage.getItem('flowCardId')
+    if (flowCardId !== '') {
+    var url="/hollowGlass/hollowGlassOutRelationInfo/startTask?flowCardId="+flowCardId + "&cell=" + 932;
+    const response = await request.post(url)
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        blinda.value = false;
+      } else {
+        ElMessage.error(response.message);
+      }
+    } else {
+      ElMessage({
+        type: 'info',
+        message: t('basicData.infonull'),
+      })
+    }
+  } catch (error) {
+  }
+}
+// 鏆傚仠浠诲姟
+const handlec = async () => {
+  try {
+    let flowCardId = window.localStorage.getItem('flowCardId')
+    if (flowCardId !== '') {
+    var url="/hollowGlass/hollowGlassOutRelationInfo/pauseTask?flowCardId="+flowCardId + "&cell=" + 932;
+    const response = await request.post(url)
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        blindc.value = false;
+      } else {
+        ElMessage.error(response.message);
+      }
+    } else {
+      ElMessage({
+        type: 'info',
+        message: t('basicData.infonull'),
+      })
+    }
+  } catch (error) {
+  }
+}
+// 鍒犻櫎浠诲姟
+const handled = async () => {
+  try {
+    let flowCardId = window.localStorage.getItem('flowCardId')
+    if (flowCardId !== '') {
+    var url="/hollowGlass/hollowGlassOutRelationInfo/deleteHollowTaskDetails?flowCardId="+flowCardId + "&cell=" + 932;
+    const response = await request.post(url)
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        blindd.value = false;
+      } else {
+        ElMessage.error(response.message);
+      }
+    } else {
+      ElMessage({
+        type: 'info',
+        message: t('basicData.infonull'),
+      })
+    }
+  } catch (error) {
+  }
+}
+// 棰嗗彇浠诲姟
+const finisha = async () => {
+  let flowCardId = window.localStorage.getItem('flowCardId')
+  let id = window.localStorage.getItem('id')
+    try {
+      var url="/hollowGlass/hollowGlassOutRelationInfo/receiveTask?cell="+ 932 + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantity.value+ "&formulaId=" + -1;
+      const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      dialogFormVisiblec.value = false;
+      cell.value = '';
+      formulaName.value = '';
+      totalPairQuantity.value = '';
+    } else {
+          ElMessage.error(response.message);
+        }
+      } catch (error) {
+      }
+    }
+// 寮哄埗鍑虹墖
+const finishb = async () => {
+  let flowCardId = window.localStorage.getItem('flowCardId')
+  let id = window.localStorage.getItem('id')
+  try {
+      var url="/hollowGlass/hollowGlassOutRelationInfo/forceOutGlass?cell="+ 932 + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantitya.value+ "&formulaId=" + -1;
+      const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      dialogFormVisibled.value = false;
+      cella.value = '';
+      totalPairQuantitya.value = '';
+    } else {
+          ElMessage.error(response.message);
+        }
+      } catch (error) {
+      }
+    }
+onBeforeUnmount(() => {
+  closeWebSocket();
+});
+</script>
+<style scoped>
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer {
+  text-align: center;
+  margin-top: -15px;
+}
+#dotClass {
+  display: flex;
+  margin-left: 20px; 
+  size: 50px;
+  margin-top: 20px;
+  margin-bottom: 10px;
+}
+::v-deep(.row-red-background) {
+  background-color: rgb(224.6, 242.8, 215.6) !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/hollow/hollowequipmenttwo.vue b/UI-Project/src/views/hollow/hollowequipmenttwo.vue
new file mode 100644
index 0000000..33e4597
--- /dev/null
+++ b/UI-Project/src/views/hollow/hollowequipmenttwo.vue
@@ -0,0 +1,1026 @@
+<template>
+  <div style="height: 600px;">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;" >
+      <div style="display: flex; flex-direction: row; align-items: center; margin-bottom: 10px;">
+        <el-button id="searchButton" type="primary" @click="handleormulan">
+          {{ $t('hellow.hollowformula') }}
+        </el-button>
+        <el-button id="searchButton" type="primary" @click="handlezhiban">
+          {{ $t('hellow.createtask') }}
+        </el-button>
+        <el-button type="primary" @click="selectproject">
+          {{ $t('hellow.reviewproject') }}
+        </el-button>
+    <el-button style="margin-left: 10px;" id="searchButton" type="primary" @click="handlehistorical">{{ $t('searchOrder.historicaltasks') }}</el-button>
+    <el-button style="margin-left: 10px;" id="searchButton" type="success" @click="handleBinda">
+          {{ $t('hellow.starttask') }}
+        </el-button>
+        <el-button style="margin-left: 10px;" id="searchButton" type="info" @click="handleBindd">{{
+            $t('hellow.taskdet')
+          }}
+        </el-button>
+        <el-button style="margin-left: 10px;" id="searchButton" type="warning" @click="handleBindc">{{
+            $t('hellow.stopproject')
+          }}
+        </el-button>
+  </div>
+     
+    <div id="dotClass">
+            <div style="margin-left: 70px;">{{ $t('hellow.freetwo') }}</div>
+        <i :style="{ marginTop: '2px', backgroundColor: freetwo, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+       </div>
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+        <el-table height="650" ref="table" :data="tableDataa"
+                  :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }">
+          <el-table-column prop="flowCardId" :label="$t('hellow.flowCardId')" align="center"/>
+          <el-table-column prop="glassId" :label="$t('searchOrder.glassID')" align="center"/>
+          <el-table-column prop="hollowSequence" :label="$t('hellow.order')" align="center"/>
+          <el-table-column prop="thickness" :label="$t('hellow.thickness')" align="center"/>
+          <el-table-column prop="layer" :label="$t('hellow.layer')" align="center"/>
+          <el-table-column prop="filmsId" :label="$t('hellow.coatingtypes')" align="center"/>
+          <el-table-column prop="height" :label="$t('hellow.height')" align="center"/>
+          <el-table-column prop="width" :label="$t('hellow.width')" align="center"/>
+          <el-table-column prop="state" :label="$t('hellow.state')" align="center">
+            <template #default="scope">
+              {{ scope.row.state == -1 ? "绛夊緟鍑虹墖" : "鍑虹墖瀹屾垚" }}
+            </template>
+          </el-table-column>
+        </el-table>
+      <!-- <div style="display: flex;margin-left: 40%;margin-top: 10px;">
+      <div style="margin-top: 5px;margin-right: 5px;">{{ $t('hellow.line') }}</div>
+    <el-pagination
+          background
+          size="large"
+          layout="prev, pager, next"
+          :total="30"
+          :current-page.sync="currentPage"
+          @current-change="handlePageChange1"
+        />
+      </div> -->
+  </div>
+    </el-card>
+  </div>
+  <!-- 鍒涘缓浠诲姟 -->
+  <el-dialog v-model="dialogFormVisiblea" top="5vh" width="85%">
+    <div style="display: flex;">
+    <el-input v-model="flowCardId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('searchOrder.incardnumber')" />
+    <el-input v-model="filmsId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('film.infilms')"/>
+    <el-input v-model="thickness" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('searchOrder.inthickness')"/>
+    <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="fetchFlowCardsearch">
+      {{$t('reportmanage.inquire')}}</el-button>
+  </div>
+  <el-table
+    ref="table"
+    style="margin-top: 20px; height: 700px;"
+    :data="tableDatab"
+    :row-class-name="tableRowClassName"
+    :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
+    row-key="projectNumber"
+  >
+    <!-- <el-table-column type="expand"> -->
+    <el-table-column>
+    <template #default="props">
+      <el-table :data="props.row.flowCardGlassInfoDTOList" style="width: 100%"
+      :row-class-name="(row) => nestedTableRowClassName(props.row, row)" 
+      >
+      <el-table-column prop="layer" fixed align="center" :label="$t('hellow.layernumber')" min-width="80"/>
+      <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80"/>
+      <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80"/>
+      <el-table-column prop="sumCount" align="center" :label="$t('hellow.totalnumber')" min-width="80"/>
+      <el-table-column prop="realCount" align="center" :label="$t('hellow.realpieces')" min-width="80"/>
+      <el-table-column prop="pairCount" align="center" :label="$t('hellow.pairsnumber')" min-width="80"/>
+      <el-table-column prop="damageCount" align="center" :label="$t('hellow.damagenumber')" min-width="80"/>
+      </el-table>
+      </template>
+    </el-table-column>
+    <el-table-column prop="flowCardId" fixed align="center" :label="$t('hellow.cardnumber')" min-width="20"/>
+    <el-table-column prop="productName" fixed align="center" :label="$t('large.productname')" min-width="20"/>
+    <el-table-column fixed="right" :label="$t('hellow.operate')" align="center" width="270">
+        <template #default="scope">
+          <el-button type="text" :disabled="scope.row.isThroughSlot" plain @click="handletake(scope.row)">{{ $t('hellow.claimquest') }}</el-button>
+          <el-button type="text" plain @click="handleBindRack(scope.row)">{{
+              $t('hellow.missingfilms')
+            }}
+          </el-button>
+          <el-button type="text" plain @click="handleout(scope.row)">{{
+              $t('hellow.forcedfilming')
+            }}
+          </el-button>
+        </template>
+      </el-table-column>
+  </el-table>
+</el-dialog>
+<!-- 涓┖閰嶆柟娣诲姞 -->
+<el-dialog v-model="add" top="23vh" width="55%" :title="$t('hellow.hollowformula')" >
+    <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
+     <el-form  label-width="200px">
+      <el-form label-width="200px" label-position="right">
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item :label="$t('hellow.formulaName')" :required="true" style="width: 20vw;">
+                <el-input :placeholder="$t('hellow.formulaNamea')" v-model="formulaName" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('Mounting.removalmethoda')" :required="true" style="width: 20vw;">
+            <el-select v-model="filmRemove" clearable  style="width: 270px" :placeholder="$t('Mounting.removalmethod')">
+        <el-option :label="$t('Mounting.removal')" value="1"></el-option>
+        <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
+      </el-select>
+              </el-form-item>
+            </div>
+              </div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 30px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.bottomRemove')" :required="true" style="width: 20vw;">
+                <el-input :placeholder="$t('hellow.bottomRemovea')" v-model="bottomRemove" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.topRemove')" :required="true" style="width: 20vw;">
+                <el-input :placeholder="$t('hellow.topRemovea')" v-model="topRemove" autocomplete="off" />
+           </el-form-item>
+            </div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 30px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.leftRemove')" :required="true" style="width: 20vw;">
+                <el-input :placeholder="$t('hellow.leftRemovea')" v-model="leftRemove" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.rightRemove')" :required="true" style="width: 20vw;">
+            <el-input :placeholder="$t('hellow.rightRemovea')" v-model="rightRemove" autocomplete="off" />
+              </el-form-item>
+            </div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleConfirm">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="add = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+<!-- 涓┖閰嶆柟淇敼 -->
+<el-dialog v-model="adda" top="23vh" width="55%" :title="$t('hellow.edithollowformula')" >
+    <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
+     <el-form  label-width="200px">
+      <el-form label-width="200px" label-position="right">
+        <el-row style="margin-top: 10px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+              <el-form-item :label="$t('hellow.formulaName')" :required="true" style="width: 20vw;">
+                <el-input :placeholder="$t('hellow.formulaNamea')" v-model="formulaName" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('Mounting.removalmethoda')" :required="true" style="width: 20vw;">
+            <el-select v-model="filmRemove" clearable  style="width: 270px" :placeholder="$t('Mounting.removalmethod')">
+        <el-option :label="$t('Mounting.removal')" value="1"></el-option>
+        <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
+      </el-select>
+              </el-form-item>
+            </div>
+              </div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 30px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.bottomRemove')" :required="true" style="width: 20vw;">
+                <el-input :placeholder="$t('hellow.bottomRemovea')" v-model="bottomRemove" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.topRemove')" :required="true" style="width: 20vw;">
+                <el-input :placeholder="$t('hellow.topRemovea')" v-model="topRemove" autocomplete="off" />
+           </el-form-item>
+            </div></div>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 30px;">
+          <el-col :span="6">
+              <div id="dt" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.leftRemove')" :required="true" style="width: 20vw;">
+                <el-input :placeholder="$t('hellow.leftRemovea')" v-model="leftRemove" autocomplete="off" />
+              </el-form-item></div></div>
+          </el-col>
+          <el-col :span="9">
+            <div id="dta" style="font-size: 15px;">
+        <div>
+          <el-form-item :label="$t('hellow.rightRemove')" :required="true" style="width: 20vw;">
+            <el-input :placeholder="$t('hellow.rightRemovea')" v-model="rightRemove" autocomplete="off" />
+              </el-form-item>
+            </div></div>
+          </el-col>
+        </el-row>
+        </el-form>
+            </el-form>
+          </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handledit">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="adda = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 棰嗗彇浠诲姟 -->
+  <el-dialog v-model="dialogFormVisiblec" top="21vh" width="40%" :title="$t('hellow.claimquest')">
+    <div style="margin-left: 20px;margin-top: 10px;margin-bottom: 10px;">
+      <el-form label-width="100px">
+        <el-form label-width="210px" label-position="right">
+          <el-form-item :label="$t('hellow.ptotalpairQuantity')" :required="true" style="width: 25vw">
+            <el-input :placeholder="$t('hellow.cpairQuantity')" v-model="totalPairQuantity" autocomplete="off" />
+          </el-form-item>
+          <el-form-item :label="$t('hellow.route')" :required="true" style="width: 25vw;">
+            <el-select 
+            :placeholder="$t('hellow.line2')"
+            disabled
+             style="width: 270px"  
+             v-model="cell">
+               <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
+          </el-select>
+          </el-form-item>
+          <el-form-item :label="$t('hellow.hollowformulp')" :required="true" style="width: 25vw;">
+        <el-select
+            v-model="selectedFormulaName"
+            filterable
+            clearable
+            :placeholder="$t('hellow.phollowformula')"
+            style="width: 270px"
+            @change="handleFormulaChange"
+        >
+          <el-option
+              v-for="item in titleformulaName"
+              :key="item.id"
+              :label="item.formulaName"
+              :value="item.formulaName"
+          />
+        </el-select>
+      </el-form-item>
+        </el-form>
+      </el-form>
+    </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="finisha">
+          {{ $t('reportWork.sure') }}
+        </el-button>
+        <el-button @click="dialogFormVisiblec = false">{{ $t('reportWork.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 寮哄埗鍑虹墖 -->
+  <el-dialog v-model="dialogFormVisibled" top="21vh" width="40%" :title="$t('hellow.forcedfilming')">
+    <div style="margin-left: 20px;margin-top: 10px;margin-bottom: 10px;">
+      <el-form label-width="100px">
+        <el-form label-width="210px" label-position="right">
+          <el-form-item :label="$t('hellow.ptotalpairQuantity')" :required="true" style="width: 25vw">
+            <el-input :placeholder="$t('hellow.cpairQuantity')" v-model="totalPairQuantitya" autocomplete="off" />
+          </el-form-item>
+          <el-form-item :label="$t('hellow.route')" :required="true" style="width: 25vw;">
+            <el-select 
+            :placeholder="$t('hellow.line2')"
+            disabled
+             style="width: 270px"  
+             v-model="cella">
+               <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
+          </el-select>
+          </el-form-item>
+          <el-form-item :label="$t('hellow.hollowformulp')" :required="true" style="width: 25vw;">
+        <el-select
+            v-model="selectedFormulaName"
+            filterable
+            clearable
+            :placeholder="$t('hellow.phollowformula')"
+            style="width: 270px"
+            @change="handleFormulaChange"
+        >
+          <el-option
+              v-for="item in titleformulaName"
+              :key="item.id"
+              :label="item.formulaName"
+              :value="item.formulaName"
+          />
+        </el-select>
+      </el-form-item>
+        </el-form>
+      </el-form>
+    </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="finishb">
+          {{ $t('reportWork.sure') }}
+        </el-button>
+        <el-button @click="dialogFormVisibled = false">{{ $t('reportWork.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 缂虹墖璇︽儏 -->
+  <el-dialog v-model="dialogFormVisibleb" top="7vh" width="70%" height="500">
+    <div style="margin-top: -20px;text-align: center;margin-left: 400px;">
+      <el-form-item :label="$t('hellow.cardnumbera')" style="width: 14vw">
+        {{ currentRow.flowCardId }}
+      </el-form-item>
+    </div>
+    <el-table ref="table" style="margin-top: 20px;height: 400px;"
+          :data="tableDatac" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+      <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80"/>
+      <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80"/>
+      <el-table-column prop="height" align="center" :label="$t('hellow.height')" min-width="80"/>
+      <el-table-column prop="width" align="center" :label="$t('hellow.width')" min-width="80"/>
+      <!-- <el-table-column prop="totalCount" align="center" :label="$t('hellow.totalnumber')" min-width="80"/> -->
+      <el-table-column prop="lackCount" align="center" :label="$t('hellow.missingnumber')" min-width="80"/>
+      <!-- <el-table-column prop="damageCount" align="center" :label="$t('hellow.brokenpieces')" min-width="80"/> -->
+      <div style="float: right;margin-bottom: 5px;">
+        <el-pagination layout="prev, pager, next" :total="50"/>
+      </div>
+    </el-table>
+    <div style="display: flex;margin-left: 40%;margin-top: 10px;">
+  <el-pagination
+          background
+          size="large"
+          layout="prev, pager, next"
+          :total="30"
+          :current-page.sync="currentPage2"
+          @current-change="handlePageChange2"
+        />
+  </div>
+  </el-dialog>
+  <!-- 寮�濮嬩换鍔� -->
+  <el-dialog v-model="blinda" top="30vh" width="25%" :title="$t('hellow.pstarttask')">
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handlea">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="blinda = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 鏆傚仠浠诲姟 -->
+  <el-dialog v-model="blindc" top="30vh" width="25%" :title="$t('hellow.pstopproject')">
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handlec">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="blindc = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 鍒犻櫎浠诲姟 -->
+  <el-dialog v-model="blindd" top="30vh" width="25%" :title="$t('hellow.hollowtaskdet')">
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handled">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="blindd = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 棰勮 -->
+  <el-dialog v-model="dialogFormVisiblee" top="24vh" width="25%" :title="$t('hellow.reviewproject')" >
+    <div style="margin-left: 50px;margin-bottom: 10px;">
+      <el-form-item :label="$t('basicData.projectnumber')" :required="true">
+        <el-select
+            v-model="selectedProjectNo"
+            filterable
+            clearable
+            :placeholder="$t('basicData.plselectproject')"
+            style="width: 260px"
+        >
+          <el-option
+              v-for="item in titleSelectJson.processType"
+              :key="item.value"
+              :label="item.value"
+              :value="item.value"
+          />
+        </el-select>
+      </el-form-item>
+    </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleup">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="dialogFormVisiblee = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <!-- 涓┖閰嶆柟 -->
+  <el-dialog v-model="mulan" top="15vh" width="70%" :title="$t('hellow.hollowformula')">
+    <el-button id="searchButton" type="primary"  @click="openAddDialog">
+          {{ $t('basicData.add') }}
+        </el-button>
+      <el-table ref="table" style="margin-top: 20px;height: 400px;"
+                :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+        <el-table-column prop="formulaName" fixed align="center" :label="$t('hellow.formulaNamep')"/>
+        <el-table-column prop="filmRemove" align="center" :label="$t('Mounting.removalmethodp')" min-width="110">
+      <template #default="scope">
+        <el-tag :type="getcasOnea(scope.row.filmRemove)">
+          {{ getStatuscasOnea(scope.row.filmRemove) }}
+        </el-tag>
+      </template>
+    </el-table-column>
+        <el-table-column prop="topRemove" align="center" :label="$t('hellow.topRemovep')"> </el-table-column>
+        <el-table-column prop="bottomRemove" align="center" :label="$t('hellow.bottomRemovep')"> </el-table-column>
+        <el-table-column prop="leftRemove" align="center" :label="$t('hellow.leftRemovep')"> </el-table-column>
+        <el-table-column prop="rightRemove" align="center" :label="$t('hellow.rightRemovep')"> </el-table-column>
+        <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="270">
+            <template #default="scope">
+              <el-button type="text" plain @click="handleEdit(scope.row)">{{ $t('productStock.exit') }}</el-button>
+              <el-button type="text" plain @click="opena(scope.row)">{{ $t('productStock.delete') }}</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+        <template #footer>
+      <div id="dialog-footer">
+        <el-button @click="mulan = false">{{ $t('large.close') }}</el-button>
+      </div>
+    </template>
+</el-dialog>
+ <!-- 鍘嗗彶浠诲姟 -->
+ <el-dialog v-model="blindb" top="5vh" width="95%" @close="iframeUrl=''">
+     <iframe 
+     :src="iframeUrl" 
+     marginwidth="2000px"
+     marginheight="2000px"
+     width="100%" 
+     height="750px" 
+     frameborder="0"
+     ></iframe>
+  </el-dialog>
+</template>
+<script setup>
+import { ElMessage, ElMessageBox } from 'element-plus'
+import {onBeforeUnmount, onMounted, onUnmounted, ref, reactive, watch, computed} from "vue";
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n()
+const blinda = ref(false)
+const blindb = ref(false)
+const blindc = ref(false)
+const blindd = ref(false)
+const mulan = ref(false)
+const tableDataa = ref([])
+const tableDatab = ref([])
+const tableDatac = ref([])
+const tableDatax = ref([])
+const cell = ref('')
+const cella = ref('')
+const selectedProjectNo = ref('');
+const totalPairQuantity = ref('')
+const totalPairQuantitya = ref('')
+const bottomRemove = ref('')
+const filmRemove = ref('')
+const formulaName = ref('')
+const leftRemove = ref('')
+const thickness = ref('')
+const rightRemove = ref('')
+const topRemove = ref('')
+const filmsId = ref('')
+const flowCardId = ref('')
+const freetwo = ref('#911005');
+const dialogFormVisiblea = ref(false)
+const dialogFormVisibleb = ref(false)
+const dialogFormVisiblec = ref(false)
+const dialogFormVisibled = ref(false)
+const dialogFormVisiblee = ref(false)
+const add = ref(false)
+const adda = ref(false)
+const currentPage2 = ref(1)
+const currentRow = reactive({});
+const formattedProcessType = ref([]);
+const selectedFormulaName = ref('');
+let selectedFormulaId = ref(null);
+const formulaNameid = ref({ id: null });
+const titleformulaName = ref({ formulaName: [] ,formulaId: []});
+const titleSelectJson = ref({ processType: [] });
+const iframeUrl = ref('');
+const handlehistorical = (row) => {
+  blindb.value = true;
+  iframeUrl.value = `${window.location.origin}/#/hollow/hellowquiptwohistory`;
+};
+const options = [
+  {
+    value: 930,
+    label: t('hellow.line1'),
+  },
+  {
+    value: 931,
+    label: t('hellow.line2'),
+  }
+]
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/hollowGlass/api/talk/HollowGlassTwo`;
+const currentPage = ref(parseInt(window.localStorage.getItem('currentPage')) || 1);
+watch(() => currentPage.value, (newVal) => {
+  window.localStorage.setItem('currentPage', newVal);
+});
+const currentPageKey = computed(() => `93${currentPage.value - 1}`);
+const handlePageChange1 = (newPage) => {
+  currentPage.value = newPage;
+};
+const handlePageChange2 = (newPage) => {
+  currentPage2.value = newPage;
+  fetchFlowBind(currentRow.flowCardId, currentPage2.value);
+};
+const handleMessage = (data) => {
+  try {
+    tableDataa.value = data.queueInfo[0];
+    const allPageData = data;
+    const currentPageKeyValue = currentPageKey.value;
+    const currentPageData = allPageData[currentPageKeyValue];
+    if (data.freeRequest != null) {
+      freetwo.value = data.freeRequest[0] == true ? 'green' : '#911005';
+  }
+    // if (currentPageData && Array.isArray(currentPageData) && currentPageData.length > 0) {
+    //   tableDataa.value = currentPageData[0];
+    // } else {
+    //   console.warn('No data for the current page key:', currentPageKeyValue);
+    // }
+  } catch (error) {
+  }
+};
+onMounted(() => {
+  socket = initializeWebSocket(socketUrl, handleMessage);
+  window.localStorage.setItem('flowCardId', '')
+});
+onUnmounted(() => {
+  if (socket) {
+    closeWebSocket(socket);
+  }
+});
+function getcasOnea(filmRemove) {  
+  switch (filmRemove) {  
+    case 1:
+      return 'success';  
+    case 0: 
+      return 'warning';  
+    default:
+      return 'info'; 
+  }  
+}  
+function getStatuscasOnea(filmRemove) {
+  switch (filmRemove) {
+    case 1:  
+      return t('Mounting.removal');
+    case 0:  
+      return t('Mounting.noremoval'); 
+    default:
+      return '';
+  }  
+}
+// 寮�濮嬩换鍔� 
+const handleBinda = (row) => {
+  blinda.value = true;
+};
+// 鏆傚仠浠诲姟 
+const handleBindc = (row) => {
+  blindc.value = true;
+};
+// 鍒犻櫎浠诲姟 
+const handleBindd = (row) => {
+  blindd.value = true;
+};
+const removalMethodMap = {
+  1: t('Mounting.removal'),
+  0: t('Mounting.noremoval')
+};
+// 澶勭悊缂栬緫鎸夐挳鐐瑰嚮  
+function handleEdit(row) {  
+    formulaName.value = row.formulaName;
+    filmRemove.value = removalMethodMap[row.filmRemove];
+    bottomRemove.value = row.bottomRemove;
+    leftRemove.value = row.leftRemove;
+    rightRemove.value = row.rightRemove;
+    topRemove.value = row.topRemove;
+    adda.value = true;
+}  
+function openAddDialog() {  
+    formulaName.value = '';
+    filmRemove.value = '';
+    bottomRemove.value = '';
+    leftRemove.value = '';
+    rightRemove.value = '';
+    topRemove.value = '';
+    add.value = true;
+}
+const handlezhiban = () => {
+  dialogFormVisiblea.value = true;
+  fetchFlowCardId();
+};
+const handleormulan = () => {
+  mulan.value = true;
+  fetchmulan();
+};
+// 棰勮
+const selectproject = () => {
+  dialogFormVisiblee.value = true;
+  selectgong();
+};
+// 缂虹墖璇︽儏
+const handleBindRack = (row) => {
+  currentPage2.value = 1;
+  const { flowCardId } = row;
+  currentRow.flowCardId  = row.flowCardId;
+  dialogFormVisibleb.value = true;
+  fetchFlowBind(flowCardId,currentPage2.value);
+};
+// 棰嗗彇浠诲姟
+const handletake = (row) => {
+  window.localStorage.setItem('flowCardId', row.flowCardId)
+  dialogFormVisiblec.value = true;
+  fetchmulan()
+};
+// 寮哄埗鍑虹墖
+const handleout = (row) => {
+  window.localStorage.setItem('flowCardId', row.flowCardId)
+  dialogFormVisibled.value = true;
+  fetchmulan()
+};
+// 鍒涘缓浠诲姟
+const fetchFlowCardId = async () => {
+  try {
+    const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard',{
+      deviceId: 0,
+      filmsId: '',
+      flowCardId: '',
+      thickness: 0,
+    });
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableDatab.value = response.data;
+    } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+function tableRowClassName({ row }) {
+  if (row.isThroughSlot == true) {
+    return 'row-red-background';
+  }
+  return '';
+}
+function nestedTableRowClassName(parentRow, row) {
+  if (parentRow.isThroughSlot == true) {
+    return 'row-red-background';
+  }
+  return '';
+}
+const fetchFlowCardsearch = async () => {
+  try {
+    const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard',{
+      filmsId: filmsId.value,
+      flowCardId: flowCardId.value,
+      thickness: thickness.value
+    });
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableDatab.value = response.data;
+    } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+// 涓┖閰嶆柟
+const fetchmulan = async () => {
+  try {
+    var url="/hollowGlass/hollowFormulaDetails/listFormulaDetails?keyword="+'';
+    const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableDatax.value = response.data;
+      titleformulaName.value = response.data.map(item => ({ formulaId: item.id, formulaName: item.formulaName }));
+    } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+const handleFormulaChange = (value) => {
+  const selectedItem = titleformulaName.value.find(item => item.formulaName === value);
+  if (selectedItem) {
+    formulaNameid.value = { id: selectedItem.formulaId };
+    window.localStorage.setItem('id', formulaNameid.value.id)
+  } else {
+    formulaNameid.value = { id: null };
+  }
+};
+// 涓┖閰嶆柟娣诲姞
+const handleConfirm = async () => {
+  try {
+    const response = await request.post('/hollowGlass/hollowFormulaDetails/saveFormulaDetails',{
+      formulaName: formulaName.value,
+      filmRemove: filmRemove.value,
+      bottomRemove: bottomRemove.value,
+      leftRemove: leftRemove.value,
+      rightRemove: rightRemove.value,
+      topRemove: topRemove.value,
+    });
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableDatax.value = response.data;
+      add.value = false
+      formulaName.value = '';
+      filmRemove.value = '';
+      bottomRemove.value = '';
+      leftRemove.value = '';
+      rightRemove.value = '';
+      topRemove.value = '';
+      fetchmulan()
+    } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+const removalMethodMapa = {
+  [t('Mounting.removal')]: 1,
+  [t('Mounting.noremoval')]: 0,
+};
+// 涓┖閰嶆柟淇敼
+const handledit = async () => {
+  try {
+    const response = await request.post('/hollowGlass/hollowFormulaDetails/updateFormulaDetails',{
+      formulaName: formulaName.value,
+      filmRemove: removalMethodMapa[filmRemove.value],
+      bottomRemove: bottomRemove.value,
+      leftRemove: leftRemove.value,
+      rightRemove: rightRemove.value,
+      topRemove: topRemove.value,
+    });
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      adda.value = false
+      fetchmulan()
+    } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+// 涓┖閰嶆柟鍒犻櫎 
+ const opena = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('hellow.hollowformuldet'), 
+      t('productStock.prompt'),  
+      {  
+        confirmButtonText: t('productStock.yes'), 
+        cancelButtonText: t('productStock.cancel'),
+        type: 'warning',  
+      } 
+    );
+    if (confirmResult === 'confirm') {
+    var url="/hollowGlass/hollowFormulaDetails/deleteFormulaDetails?idList="+row.id;
+    const response = await request.post(url)
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      fetchmulan()
+    } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {
+  }  
+};
+// 宸ョ▼鍙�
+const selectgong = async () => {
+  try {
+    var url="/hollowGlass/hollowGlassOutRelationInfo/hollowTaskList?cell="+ 931;
+    const response = await request.post(url)
+    if (response.code == 200) {
+      const processTypes = response.data.map((projectNo, index) => ({
+        value: projectNo,
+        label: projectNo
+      }));
+      titleSelectJson.value.processType = processTypes;
+    } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+// 棰勮
+const handleup = async () => {
+  try {
+    var url="/hollowGlass/hollowGlassOutRelationInfo/appointHollowTaskDetails?cell="+ 931 + "&flowCardId=" + selectedProjectNo.value;
+  window.localStorage.setItem('flowCardId', selectedProjectNo.value)
+  const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableDataa.value = response.data;
+      dialogFormVisiblee.value = false
+      selectedProjectNo.value = ''
+      closeWebSocket(socket);
+  } else {
+      ElMessage.error('Failed to fetch data');
+    }
+  } catch (error) {
+    ElMessage.error('Error fetching data');
+  }
+};
+const parseData = (rawData) => {
+  return Object.entries(rawData).map(([compositeKey, records]) => {
+    const [projectNumber, productName] = compositeKey.split(':');
+    return {
+      projectNumber,
+      productname: productName,
+      records: records.map(record => ({
+        ...record,
+      }))
+    };
+  });
+};
+const fetchFlowBind = async (flowCardId, page) => {
+  try {
+    var url="/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId="+flowCardId + "&layer=" + 1;
+    const response = await request.post(url)
+    if (response.code == 200) {
+      tableDatac.value = response.data[page];
+      ElMessage.success(response.message);
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+  }
+}
+// 寮�濮嬩换鍔�
+const handlea = async () => {
+  try {
+    let flowCardId = window.localStorage.getItem('flowCardId')
+    if (flowCardId !== '') {
+    var url="/hollowGlass/hollowGlassOutRelationInfo/startTask?flowCardId="+flowCardId + "&cell=" + 931;
+    const response = await request.post(url)
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        blinda.value = false;
+      } else {
+        ElMessage.error(response.message);
+      }
+    } else {
+      ElMessage({
+        type: 'info',
+        message: t('basicData.infonull'),
+      })
+    }
+  } catch (error) {
+  }
+}
+// 鏆傚仠浠诲姟
+const handlec = async () => {
+  try {
+    let flowCardId = window.localStorage.getItem('flowCardId')
+    if (flowCardId !== '') {
+    var url="/hollowGlass/hollowGlassOutRelationInfo/pauseTask?flowCardId="+flowCardId + "&cell=" + 931;
+    const response = await request.post(url)
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        blindc.value = false;
+      } else {
+        ElMessage.error(response.message);
+      }
+    } else {
+      ElMessage({
+        type: 'info',
+        message: t('basicData.infonull'),
+      })
+    }
+  } catch (error) {
+  }
+}
+// 鍒犻櫎浠诲姟
+const handled = async () => {
+  try {
+    let flowCardId = window.localStorage.getItem('flowCardId')
+    if (flowCardId !== '') {
+    var url="/hollowGlass/hollowGlassOutRelationInfo/deleteHollowTaskDetails?flowCardId="+flowCardId + "&cell=" + 931;
+    const response = await request.post(url)
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        blindd.value = false;
+      } else {
+        ElMessage.error(response.message);
+      }
+    } else {
+      ElMessage({
+        type: 'info',
+        message: t('basicData.infonull'),
+      })
+    }
+  } catch (error) {
+  }
+}
+// 棰嗗彇浠诲姟
+const finisha = async () => {
+  let flowCardId = window.localStorage.getItem('flowCardId')
+  let id = window.localStorage.getItem('id')
+    try {
+      var url="/hollowGlass/hollowGlassOutRelationInfo/receiveTask?cell="+ 931 + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantity.value+ "&formulaId=" + id;
+      const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      dialogFormVisiblec.value = false;
+      cell.value = '';
+      formulaName.value = '';
+      totalPairQuantity.value = '';
+    } else {
+          ElMessage.error(response.message);
+        }
+      } catch (error) {
+      }
+    }
+// 寮哄埗鍑虹墖
+const finishb = async () => {
+  let flowCardId = window.localStorage.getItem('flowCardId')
+  let id = window.localStorage.getItem('id')
+  try {
+      var url="/hollowGlass/hollowGlassOutRelationInfo/forceOutGlass?cell="+ 931 + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantitya.value+ "&formulaId=" + id;
+      const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      dialogFormVisibled.value = false;
+      cella.value = '';
+      totalPairQuantitya.value = '';
+    } else {
+          ElMessage.error(response.message);
+        }
+      } catch (error) {
+      }
+    }
+
+onBeforeUnmount(() => {
+  closeWebSocket();
+});
+</script>
+<style scoped>
+#dt { display:block; float:left;line-height: 20px;margin-left: 10px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 70%;}
+#dialog-footer {
+  text-align: center;
+  margin-top: -5px;
+}
+#dotClass {
+  display: flex;
+  margin-left: 20px; 
+  size: 50px;
+  margin-top: 20px;
+  margin-bottom: 10px;
+}
+::v-deep(.row-red-background) {
+  background-color: rgb(224.6, 242.8, 215.6) !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/hollow/hollowslicecage.vue b/UI-Project/src/views/hollow/hollowslicecage.vue
new file mode 100644
index 0000000..8f4b1fb
--- /dev/null
+++ b/UI-Project/src/views/hollow/hollowslicecage.vue
@@ -0,0 +1,1145 @@
+<script lang="ts" setup>
+import {useI18n} from 'vue-i18n'
+import {useRouter} from "vue-router"
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {ElMessage, ElMessageBox} from 'element-plus'
+const dialogFormVisibleaDownGlasss = ref(false)
+const scanGlass = ref([])
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const router = useRouter()
+const dialogFormVisiblea = ref(false)
+const inkageEntity = ref('#911005');
+const requestEntity = ref('#911005');
+const mesReplyEntity = ref('#911005');
+const outInkageEntity = ref('#911005');
+const outRequestEntity = ref('#911005');
+const freeone = ref('#911005');
+const freetwo = ref('#911005');
+const freethree = ref('#911005');
+const tableDataa = ref([])
+const tableDatab = ref([])
+const tableDatac = ref([])
+const tableDatad = ref([])
+const tableDataf = ref([])
+const tableDatae = ref([])
+const carPosition = ref([])
+const tableDatass = ref([])
+const ganghua = ref('')
+const diaodu = ref('')
+const flowCardId = ref('')
+const filmsId = ref('')
+const adjust = ref([]);
+const adjusta = ref([]);
+const adjustedRects = ref([]);
+const adjustedRectsa = ref([]);
+const adjustedRectsb = ref([]);
+const adjustedRectsc = ref([]);
+const adjustedRectsd = ref([]);
+const subRectsCounts = ref([]);
+const subRectsCountsa = ref([]);
+const subRectsCountsb = ref([]);
+const subRectsCountsc = ref([]);
+const subRectsCountsd = ref([]);
+const currentRow = reactive({}); // 褰撳墠琛岀殑鏁版嵁 
+const currentPage2 = ref(1)
+const add = ref(false)
+const glassId = ref('');
+const cell1=ref(true);
+const cell2=ref(true);
+const cell3=ref(true);
+const cell4=ref(true);
+const cell5=ref(true);
+const cell6=ref(true);
+const cell7=ref(true);
+const cell8=ref(true);
+const cell9=ref(true);
+const blindb = ref(false)
+const selectedRow = ref(null);
+const temperingengineerId=ref('');
+const handlePageChange2 = (newPage) => {
+  currentPage2.value = newPage;
+  window.localStorage.setItem('pagenumber', currentPage2.value)
+  fetchxiang();
+};
+const handleBindRack = (row) => {
+  selectedRow.value = row; // 鏇存柊閫変腑鐨勮鏁版嵁  
+  currentRow.deviceId  = row.deviceId; // 鐩存帴璁剧疆鍝嶅簲寮忓睘鎬�  
+  currentRow.slot = row.slot;  
+  window.localStorage.setItem('deviceId', row.deviceId)
+  window.localStorage.setItem('slot', row.slot)
+  add.value = true;
+};
+// 鎼滅储
+const searchout = async () => {
+  try {
+    const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/selectBigStorageCageDetails',{
+      glassId:glassId.value
+    });
+    if (response.code == 200) {
+      tableDataf.value = response.data;
+      ElMessage.success(response.message);
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+  }
+};
+// 鏄惁绂佺敤
+const toggleEnableState = async (row) => {
+  const newState = row.enableState === 1 ? 0 : 1;  
+  var url="/hollowGlass/hollowBigStorageCageDetails/updateHollowStorageCageDisabled?slot="+row.slot + "&enableState=" + newState;
+      const response = await request.get(url) 
+  if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {  
+      ElMessage.error(response.message);
+      }  
+  row.enableState = newState;  
+}; 
+ // 鍒犻櫎 
+ const opena = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.deletemessage'), 
+      t('searchOrder.prompt'),  
+      {  
+        confirmButtonText: t('searchOrder.yes'), 
+        cancelButtonText: t('searchOrder.cancel'),
+        type: 'warning',  
+      } 
+    ); 
+    if (confirmResult === 'confirm') {
+      const params = new URLSearchParams();
+      params.append('state', '8');
+      params.append('deviceId', row.deviceId);
+      params.append('glassId', row.glassId);
+      params.append('slot', row.slot);
+      var url = `/hollowGlass/hollowBigStorageCageDetails/deleteHollowBigStorageCageDetails?${params.toString()}`;
+      const response = await request.post(url)
+    if (response.code === 200) {
+       fetchxiang();
+      //  tableDataa.value = response.data;
+     ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.message);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+ // 鐮存崯
+ const broke = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.broke'), 
+      t('searchOrder.prompt'),  
+      {  
+        confirmButtonText: t('searchOrder.yes'), 
+        cancelButtonText: t('searchOrder.cancel'),
+        type: 'warning',  
+      } 
+    ); 
+    if (confirmResult === 'confirm') {
+      const params = new URLSearchParams();
+      params.append('state', '8');
+      params.append('deviceId', row.deviceId);
+      params.append('glassId', row.glassId);
+      params.append('slot', row.slot);
+      var url = `/hollowGlass/hollowBigStorageCageDetails/damageHollowBigStorageCageDetails?${params.toString()}`;
+    const response = await request.post(url)
+      if (response.code === 200) {
+       fetchxiang(); 
+     ElMessage.success(response.message);
+      } else {  
+      ElMessage.error(response.message);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+ // 鎷胯蛋
+ const brokec = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.brokeb'), 
+      t('searchOrder.prompt'),  
+      {  
+        confirmButtonText: t('searchOrder.yes'), 
+        cancelButtonText: t('searchOrder.cancel'),
+        type: 'warning',  
+      } 
+    ); 
+    if (confirmResult === 'confirm') {  
+      const params = new URLSearchParams();
+      params.append('state', '9');
+      params.append('deviceId', row.deviceId);
+      params.append('glassId', row.glassId);
+      params.append('slot', row.slot);
+      var url = `/hollowGlass/hollowBigStorageCageDetails/damageHollowBigStorageCageDetails?${params.toString()}`;
+      const response = await request.post(url)
+      if (response.code === 200) {
+       fetchxiang();
+       ElMessage.success(response.message);
+      } else {  
+      ElMessage.error(response.message);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+// 纭娣诲姞
+const finisha = async(row) => {  
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.sureadda'), 
+      t('searchOrder.prompt'),  
+      {  
+        confirmButtonText: t('searchOrder.yes'), 
+        cancelButtonText: t('searchOrder.cancel'),
+        type: 'warning',  
+      } 
+    ); 
+    if (confirmResult === 'confirm') {  
+    let deviceId = window.localStorage.getItem('deviceId')
+    let slot = window.localStorage.getItem('slot')
+      const dataToSend = {  
+        ...row,
+        deviceId: deviceId,
+        slot: slot
+      };  
+      const response = await request.post("/cacheVerticalGlass/hollowBigStorageCageDetails/insertHollowBigStorageCageDetails", dataToSend)
+    if (response.code === 200) {
+      tableDataa.value = response.data;
+      add.value = false;
+      ElMessage.success(response.message);
+      glassId.value = '';
+      tableDataf.value = '';
+      } else {  
+      ElMessage.error(response.message);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+const handlexiang = () => {
+  dialogFormVisiblea.value = true;
+  fetchxiang(); 
+  currentPage2.value = 1;
+  window.localStorage.setItem('pagenumber', currentPage2.value)
+  filmsId.value = ''
+  flowCardId.value = ''
+};
+// 鐞嗙墖绗间俊鎭�
+const fetchxiang = async () => {
+  try {     
+    const response = await request.post('/hollowGlass/hollowBigStorageCage/queryHollowBigStorageCageDetail',{
+        // deviceId: page,
+        filmsId: filmsId.value,
+        flowCardId: flowCardId.value,
+    })
+    if (response.code === 200) {  
+      ElMessage.success(response.message);
+      tableDataa.value = response.data
+    } else {  
+      ElMessage.warning(response.msg)
+    }  
+  } catch (error) {
+  } 
+}
+const fetchxianga = async () => {
+  let page = window.localStorage.getItem('pagenumber')
+  try {     
+    const response = await request.post('/hollowGlass/hollowBigStorageCage/queryHollowBigStorageCageDetail',{
+        deviceId: page,
+        filmsId: filmsId.value,
+        flowCardId: flowCardId.value,
+    })
+    if (response.code === 200) {  
+      ElMessage.success(response.message);
+      tableDataa.value = response.data
+      filmsId.value = ''
+      flowCardId.value = ''
+    } else {  
+      ElMessage.warning(response.msg)
+    }  
+  } catch (error) {
+  } 
+}
+function handleRowClick(row) {  
+  selectedRow.value = row; // 鏇存柊閫変腑鐨勮鏁版嵁  
+}
+// 浠诲姟閲嶇疆
+const handleptask = async() => { 
+  try {
+    const confirmResult = await ElMessageBox.confirm(  
+      t('searchOrder.partasks'), 
+      t('workOrder.prompt'),  
+      {  
+        confirmButtonText: t('workOrder.yes'), 
+        cancelButtonText: t('workOrder.cancel'),
+        type: 'warning',  
+      } 
+    );
+ if (confirmResult === 'confirm') {
+  const response = await request.post('/hollowGlass/hollowBigStorageCage/resetCage')
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      } else {
+      ElMessage.error(response.msg);
+      }  
+    }  
+  } catch (error) {
+  }  
+}; 
+// 璋冨害寮�鍏�
+const handlediaodu = async () => {
+  try  {
+    const body = {  
+      flag: diaodu.value,
+    };
+    var url="/hollowGlass/hollowGlassOutRelationInfo/dispatchHollowSwitch?flag="+diaodu.value;
+  const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      diaodu.value = response.data
+    }else {  
+      ElMessage.error(response.message);
+      }  
+}
+catch (error) {
+  }
+}
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/hollowGlass/api/talk/hollowGlassMessage`;
+const handleMessage = (data) => {
+  if(data.bigStorageCageUsageSummary!=null){
+    const summaries = data.bigStorageCageUsageSummary[0];
+      const updatedData = summaries.map(summary => ({
+        ...summary,
+        totalNumber: summary.layer * summary.sumCount,
+      }));
+      tableDatass.value = updatedData;
+  }else{
+    tableDatass.value = []
+      }
+  if (data.inkageEntity != null) {
+    inkageEntity.value = data.inkageEntity[0] == true ? 'green' : '#911005';
+  }
+  if (data.requestEntity != null) {
+    requestEntity.value = data.requestEntity == 1 ? 'green' : '#911005';
+  }
+  if (data.mesReplyEntity != null) {
+    mesReplyEntity.value = data.mesReplyEntity == 1 ? 'green' : '#911005';
+  }
+  if (data.outInkageEntity != null) {
+    outInkageEntity.value = data.outInkageEntity[0] == true ? 'green' : '#911005';
+  }
+  if (data.freeTwoRequestEntity != null) {
+    freetwo.value = data.freeTwoRequestEntity[0] == true ? 'green' : '#911005';
+  }
+  if (data.freeThreeRequestEntity != null) {
+    freethree.value = data.freeThreeRequestEntity[0] == true ? 'green' : '#911005';
+  }
+  if (data.outRequestEntity != null) {
+    outRequestEntity.value = data.outRequestEntity == 1 ? 'green' : '#911005';
+  }
+  if (data.freeOneRequestEntity != null) {
+    freeone.value = data.freeOneRequestEntity == 1 ? 'green' : '#911005';
+  }
+  if(data.bigStorageCageDetailsOutTask!=null){
+    tableDatac.value = data.bigStorageCageDetailsOutTask[0]
+    adjusta.value = data.bigStorageCageDetailsOutTask[0].filter(rect => rect.slot !== null && rect.slot !== undefined);
+  } else {
+    tableDatac.value = [],
+    adjusta.value = []
+  }
+    if (data.scanGlass != null) {
+    scanGlass.value = data.scanGlass[0];
+    let width = scanGlass.value.width;
+    let height = scanGlass.value.height;
+    if (width < height) {
+      scanGlass.value.width = height;
+      scanGlass.value.height = width;
+    }
+  }
+  if(data.bigStorageCageDetailsFeedTask!=null){
+    tableDatad.value = data.bigStorageCageDetailsFeedTask[0]
+    adjust.value = data.bigStorageCageDetailsFeedTask[0].filter(rect => rect.slot !== null && rect.slot !== undefined); 
+  }else{
+    tableDatad.value = []
+      }
+if(data.temperingGlassInfoList!=null){
+  tableDatab.value = data.temperingGlassInfoList[0]
+}else{
+    tableDatab.value = []
+      }
+if(data.bigStorageCageUsage!=null){
+  tableDatae.value = data.bigStorageCageUsage[0]
+}else{
+    tableDatae.value = []
+      }
+if(data.carPostion!=null){
+  carPosition.value = data.carPostion[0]
+}else{
+  carPosition.value = []
+  }
+if(data.dispatchHollowSwitch!=null){
+  diaodu.value = data.dispatchHollowSwitch[0]
+}else{
+  diaodu.value = ''
+  }
+  if(data.bigStorageCageInfos!=null){
+    adjustedRects.value = data.bigStorageCageInfos[0][1].map((rect, index) => ({
+    id: index + 1,
+    height: 20/55,
+    top: 46/55,
+  }));
+subRectsCounts.value = data.bigStorageCageInfos[0][1].map(rect => rect.count);
+adjustedRectsa.value = data.bigStorageCageInfos[0][2].map((rect, index) => ({
+    id: index + 1,
+    height: 20/55,
+    top: 46/55,
+  }));
+subRectsCountsa.value = data.bigStorageCageInfos[0][2].map(rect => rect.count);
+adjustedRectsb.value = data.bigStorageCageInfos[0][3].map((rect, index) => ({
+    id: index + 1,
+    height: 20/55,
+    top: 46/55,
+  }));
+subRectsCountsb.value = data.bigStorageCageInfos[0][3].map(rect => rect.count);
+adjustedRectsc.value = data.bigStorageCageInfos[0][4].map((rect, index) => ({
+    id: index + 1,
+    height: 20/55,
+    top: 46/55,
+  }));
+subRectsCountsc.value = data.bigStorageCageInfos[0][4].map(rect => rect.count);
+adjustedRectsd.value = data.bigStorageCageInfos[0][5].map((rect, index) => ({
+    id: index + 1,
+    height: 20/55,
+    top: 46/55,
+  }));
+subRectsCountsd.value = data.bigStorageCageInfos[0][5].map(rect => rect.count);
+  }else{
+    adjustedRects.value = '',
+    adjustedRectsa.value = '',
+    adjustedRectsb.value = '',
+    adjustedRectsc.value = ''
+    adjustedRectsd.value = ''
+  }
+};
+
+// 璁$畻姣忎釜澶х煩褰㈢殑鏍峰紡
+const rectStyle = (rect, index) => ({
+  position: 'absolute',
+  width: '170px',
+  left: '0px',
+  top: `${index*rect.top}px`,
+  height: `${rect.height}px`,
+});
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡鍜屾暟閲�
+const getSubRects = (rectIndex) => {
+  const count = subRectsCounts.value[rectIndex];
+  const subRects = [];
+  for (let i = 0; i < count; i++) {
+    subRects.push({});
+  }
+  return subRects;
+};
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡
+const subRectStyle = (rectIndex, subIndex) => {
+  const width = '18px';
+  const marginLeft = '8px';
+  const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft));
+  const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`;
+  return {
+    position: 'absolute',
+    width,
+    height: '100%',
+    marginLeft,
+    top: '0px',
+    backgroundColor: '#911005',
+    left,
+  };
+};
+// 璁$畻姣忎釜澶х煩褰㈢殑鏍峰紡
+const rectStylea = (rect, index) => ({
+  position: 'absolute',
+  width: '170px',
+  left: '0px',
+  top: `${index*rect.top}px`,
+  height: `${rect.height}px`,
+});
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡鍜屾暟閲�
+const getSubRectsa = (rectIndex) => {
+  const count = subRectsCountsa.value[rectIndex];
+  const subRects = [];
+  for (let i = 0; i < count; i++) {
+    subRects.push({});
+  }
+  return subRects;
+};
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡
+const subRectStylea = (rectIndex, subIndex) => {
+  const width = '18px';
+  const marginLeft = '8px';
+  const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft));
+  const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`;
+  return {
+    position: 'absolute',
+    width,
+    height: '100%',
+    marginLeft,
+    top: '0px',
+    backgroundColor: '#911005',
+    left,
+  };
+};
+// 璁$畻姣忎釜澶х煩褰㈢殑鏍峰紡
+const rectStyleb = (rect, index) => ({
+  position: 'absolute',
+  width: '170px',
+  left: '0px',
+  top: `${index*rect.top}px`,
+  height: `${rect.height}px`,
+});
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡鍜屾暟閲�
+const getSubRectsb = (rectIndex) => {
+  const count = subRectsCountsb.value[rectIndex];
+  const subRects = [];
+  for (let i = 0; i < count; i++) {
+    subRects.push({});
+  }
+  return subRects;
+};
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡
+const subRectStyleb = (rectIndex, subIndex) => {
+  const width = '18px';
+  const marginLeft = '8px';
+  const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft));
+  const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`;
+  return {
+    position: 'absolute',
+    width,
+    height: '100%',
+    marginLeft,
+    top: '0px',
+    backgroundColor: '#911005',
+    left,
+  };
+};
+// 璁$畻姣忎釜澶х煩褰㈢殑鏍峰紡
+const rectStylec = (rect, index) => ({
+  position: 'absolute',
+  width: '170px',
+  left: '0px',
+  top: `${index*rect.top}px`,
+  height: `${rect.height}px`,
+});
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡鍜屾暟閲�
+const getSubRectsc = (rectIndex) => {
+  const count = subRectsCountsc.value[rectIndex];
+  const subRects = [];
+  for (let i = 0; i < count; i++) {
+    subRects.push({});
+  }
+  return subRects;
+};
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡
+const subRectStylec = (rectIndex, subIndex) => {
+  const width = '18px';
+  const marginLeft = '8px';
+  const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft));
+  const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`;
+  return {
+    position: 'absolute',
+    width,
+    height: '100%',
+    marginLeft,
+    top: '0px',
+    backgroundColor: '#911005',
+    left,
+  };
+};
+// 璁$畻姣忎釜澶х煩褰㈢殑鏍峰紡
+const rectStyled = (rect, index) => ({
+  position: 'absolute',
+  width: '170px',
+  left: '0px',
+  top: `${index*rect.top}px`,
+  height: `${rect.height}px`,
+});
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡鍜屾暟閲�
+const getSubRectsd = (rectIndex) => {
+  const count = subRectsCountsd.value[rectIndex];
+  const subRects = [];
+  for (let i = 0; i < count; i++) {
+    subRects.push({});
+  }
+  return subRects;
+};
+// 璁$畻姣忎釜灏忕煩褰㈢殑鏍峰紡
+const subRectStyled = (rectIndex, subIndex) => {
+  const width = '18px';
+  const marginLeft = '8px';
+  const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft));
+  const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`;
+  return {
+    position: 'absolute',
+    width,
+    height: '100%',
+    marginLeft,
+    top: '0px',
+    backgroundColor: '#911005',
+    left,
+  };
+};
+const iframeUrl = ref('');
+const handlehistorical = (row) => {
+  blindb.value = true;
+  iframeUrl.value = `${window.location.origin}/#/hollow/hellowslicecagehistory`;
+};
+onMounted(() => {
+  socket = initializeWebSocket(socketUrl, handleMessage);
+});
+  onUnmounted(() => {
+    if (socket) {
+    closeWebSocket(socket);
+    }
+    });
+function getStatusType(enableState: number) {  
+  switch (enableState) {  
+    case 100:
+      return 'success';  
+    case 102: 
+      return 'warning';  
+  }  
+}  
+function getStatusText(enableState: number) {
+  switch (enableState) {
+    case 100:  
+      return t('searchOrder.zailong');
+    case 102:  
+      return t('searchOrder.rengongxp'); 
+  }  
+}
+function getcasOnea(isSame) {  
+  switch (isSame) {  
+    case 1:
+      return 'danger';  
+    case 0: 
+      return 'info';  
+  }  
+}  
+function getStatuscasOnea(isSame) {
+  switch (isSame) {
+    case 1:  
+      return t('searchOrder.same');
+    case 0:  
+      return t('searchOrder.notsame'); 
+  }  
+}
+function tableRowClassName({ row }) {
+  if (row.isSame === 1) {
+    return 'row-red-background';
+  }
+  return '';
+}
+onBeforeUnmount(() => {
+  closeWebSocket();
+});
+</script>
+<template>
+  <div style="height: 600px;">
+    <el-button style="margin-top: 7px;margin-left: 10px;" id="searchButton" type="primary" @click="handlexiang">{{ $t('searchOrder.cageinformation') }}</el-button>
+    <el-button style="margin-top: 7px;margin-left: 10px;" id="searchButton" type="success" @click="handlehistorical">{{ $t('searchOrder.historicaltasks') }}</el-button>
+    <el-button style="margin-top: 7px;margin-left: 10px;" id="searchButton" type="danger" @click="handleptask()">{{ $t('searchOrder.partask') }}</el-button>
+    <el-switch style="margin-top: 7px;margin-left: 10px;" v-model="diaodu" class="mb-2" :inactive-text="$t('searchOrder.Schedulingswitch')" @change="handlediaodu" />
+    <div id="dotClass">
+        <div>{{ $t('searchOrder.inkageEntity') }}</div>
+        <i :style="{ marginTop: '2px', backgroundColor: inkageEntity, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+        <div style="margin-left: 70px;">{{ $t('searchOrder.requestEntity') }}</div>
+        <i :style="{ marginTop: '2px', backgroundColor: requestEntity, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+        <div style="margin-left: 70px;">{{ $t('searchOrder.mesReplyEntity') }}</div>
+        <i :style="{ marginTop: '2px', backgroundColor: mesReplyEntity, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+        <div style="margin-left: 70px;">{{ $t('searchOrder.outInkageEntity') }}</div>
+        <i :style="{ marginTop: '2px', backgroundColor: outInkageEntity, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+        <div style="margin-left: 70px;">{{ $t('searchOrder.outRequestEntity') }}</div>
+        <i :style="{ marginTop: '2px', backgroundColor: outRequestEntity, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+        <div style="margin-left: 70px;">{{ $t('hellow.freeone') }}</div>
+        <i :style="{ marginTop: '2px', backgroundColor: freeone, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+        <div style="margin-left: 70px;">{{ $t('hellow.freetwo') }}</div>
+        <i :style="{ marginTop: '2px', backgroundColor: freetwo, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+        <div style="margin-left: 70px;">{{ $t('hellow.freethree') }}</div>
+        <i :style="{ marginTop: '2px', backgroundColor: freethree, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
+      </div>
+    <div class="table-container">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 300px;">
+      <el-table height="300px" ref="table"
+        :row-class-name="tableRowClassName"
+        :data="tableDatad" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="glassId" align="center" :label="$t('searchOrder.intoglassid')" min-width="140" />
+          <el-table-column prop="startSlot" align="center" :label="$t('searchOrder.startposition')" min-width="120" />
+          <el-table-column prop="targetSlot" align="center" :label="$t('searchOrder.targetlocation')" min-width="120" />
+          <el-table-column prop="taskState" align="center" :label="$t('searchOrder.taskstatus')" min-width="120">
+          <template #default="scope">
+            <el-tag type="success" >{{ scope.row.taskState==0? $t('searchOrder.filmenter') : $t('searchOrder.infilm') }}</el-tag>
+          </template>
+          </el-table-column>
+          <el-table-column prop="isSame" align="center" :label="$t('searchOrder.whethersame')" min-width="120">
+          <template #default="scope">
+        <el-tag :type="getcasOnea(scope.row.isSame)">
+          {{ getStatuscasOnea(scope.row.isSame) }}
+        </el-tag>
+      </template>
+          </el-table-column>
+        </el-table>
+       </div>
+    </el-card>
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;">
+      <el-table height="300px" ref="table" 
+       :data="tableDatac" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+         <el-table-column prop="glassId" align="center" :label="$t('searchOrder.outputglassID')" min-width="140" />
+         <el-table-column prop="startSlot" align="center" :label="$t('searchOrder.startposition')" min-width="120" />
+         <el-table-column prop="targetSlot" align="center" :label="$t('searchOrder.targetlocation')" min-width="120" />
+         <el-table-column prop="taskState" align="center" :label="$t('searchOrder.taskstatus')" min-width="157">
+           <template #default="scope">
+             <el-tag type="success" >{{ scope.row.taskState==0? $t('searchOrder.filmenter') : $t('searchOrder.infilm') }}</el-tag>
+           </template>
+         </el-table-column>
+       </el-table>
+            </el-card>
+  </div>
+    <div style="padding: 10px;display: flex;height:130px;">
+            <div v-for="(item, index) in tableDatae" :key="index" id="occupy">  
+               <el-col style="text-align:left;font-weight: bold;">#{{ item.device_id }}</el-col>  
+               <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">  
+                 <span>{{ $t('searchOrder.Usage') }}</span><span>{{ item.percentage }}%</span>  
+               </el-col>  
+               <hr style="width:80%;margin: 0 auto;" />  
+               <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">  
+                 <span>{{ $t('searchOrder.free') }}</span><span>{{ item.count }}</span>  
+               </el-col>  
+             </div>  
+    </div>
+    <div style="display: flex; align-items: flex-start; gap: 20px; height: 70vh;">
+<!-- // 鐖剁骇妗� -->
+<div class="img-zkdlpl" >
+    <div class="img-car1" :style="'z-index:999;left:305px;top:' + 1700*carPosition[0] + 'px;position:absolute;'">
+      <div  
+      v-for="(rect, index) in adjusta"  
+      :key="rect.id"  
+      :style="{
+       width: '30px',
+       height: '5px',
+       backgroundColor: '#409EFF',
+       marginLeft: 5+ `px`,
+       top: '10px',
+       }"  
+    >
+    </div>
+    </div>
+    <div class="img-car4" :style="'z-index:999;left:730px;top:' + 600*carPosition[1] + 'px;position:absolute;'">
+      <div  
+      v-for="(rect, index) in adjust"  
+      :key="rect.id"  
+      :style="{
+       width: '30px',
+       height: '5px',
+       backgroundColor: '#409EFF',
+       marginLeft: 5+ `px`,
+       top: '10px',
+       }"  
+    >
+    </div>
+    </div>
+    <div style="position: relative;">
+    <div v-show="cell1" style="width: 170px;height: 46px;position: relative;top:387px;left: 523px;">
+      <div v-for="(rect, rectIndex) in adjustedRects" :key="rect.id" :style="rectStyle(rect, rectIndex)">
+    <div
+      v-for="(subRect, subIndex) in getSubRects(rectIndex)"
+      :key="subIndex"
+      :style="subRectStyle(rectIndex, subIndex)"
+    ></div>
+    </div>
+    </div>
+ <div v-show="cell2" style="width: 170px;height: 46px;position: relative;top:389px;left: 523px;">
+  <div v-for="(rect, rectIndex) in adjustedRectsa" :key="rect.id" :style="rectStylea(rect, rectIndex)">
+    <div
+      v-for="(subRect, subIndex) in getSubRectsa(rectIndex)"
+      :key="subIndex"
+      :style="subRectStylea(rectIndex, subIndex)"
+    ></div>
+    </div>
+    </div>
+  <div v-show="cell3" style="width: 170px;height: 46px;position: relative;top:391px;left: 523px;">
+    <div v-for="(rect, rectIndex) in adjustedRectsb" :key="rect.id" :style="rectStyleb(rect, rectIndex)">
+    <div
+      v-for="(subRect, subIndex) in getSubRectsb(rectIndex)"
+      :key="subIndex"
+      :style="subRectStyleb(rectIndex, subIndex)"
+    ></div>
+    </div>
+    </div>
+  <div v-show="cell4" style="width: 170px;height: 46px;position: relative;top:392px;left: 523px;">
+    <div v-for="(rect, rectIndex) in adjustedRectsc" :key="rect.id" :style="rectStylec(rect, rectIndex)">
+    <div
+      v-for="(subRect, subIndex) in getSubRectsc(rectIndex)"
+      :key="subIndex"
+      :style="subRectStylec(rectIndex, subIndex)"
+    ></div>
+    </div>
+    </div>
+  <div v-show="cell5" style="width: 170px;height: 46px;position: relative;top:394px;left: 523px;">
+    <div v-for="(rect, rectIndex) in adjustedRectsd" :key="rect.id" :style="rectStyled(rect, rectIndex)">
+    <div
+      v-for="(subRect, subIndex) in getSubRectsd(rectIndex)"
+      :key="subIndex"
+      :style="subRectStyled(rectIndex, subIndex)"
+    ></div>
+    </div>
+    </div>
+</div>
+</div>
+<el-card style="flex: 1; height: 600px; overflow-y: auto;">
+      <div style="width: 100%; height: calc(100% - 35px); overflow-y: auto;max-height: 550px;">
+       <el-table height="550px" ref="table" border 
+       :data="tableDatass" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+         <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.cardnumber')" min-width="140" />
+         <el-table-column prop="sumCount" align="center" :label="$t('searchOrder.totallogarithms')" min-width="120" />
+         <el-table-column prop="pairCount" align="center" :label="$t('searchOrder.numberpairs')" min-width="120" />
+         <el-table-column prop="totalNumber" align="center" :label="$t('hellow.totalnumber')" min-width="100" />
+         <el-table-column prop="realCount" align="center" :label="$t('hellow.realpieces')" min-width="120" />
+         <el-table-column prop="slotCount" align="center" :label="$t('searchOrder.numberoccupied')" min-width="120" />
+       </el-table>
+       </div>
+    </el-card>
+  </div>
+  </div>
+  <!-- 娣诲姞鐞嗙墖绗间俊鎭� -->
+  <el-dialog v-model="add" top="10vh" width="70%" :title="$t('searchOrder.addcage')" >
+    <div style="margin-bottom: 20px">
+      <el-form>
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
+          <el-col :span="4">
+              <div id="dt" style="font-size: 15px;">
+              <el-form-item :label="$t('searchOrder.tida')"  style="width: 14vw">
+                {{ currentRow.deviceId }}
+              </el-form-item>
+              </div>
+          </el-col>
+          <el-col :span="5">
+            <div id="dta" style="font-size: 15px;">
+          <el-form-item :label="$t('searchOrder.gridnumbera')" style="width: 14vw">
+                {{ currentRow.slot }}
+              </el-form-item>
+              </div>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+      <div style="margin-top: -20px;margin-bottom: 40px;margin-left: 30px">
+          <el-input v-model="glassId"   :placeholder="$t('searchOrder.inputid')" clearable style="width: 200px;">
+          </el-input>
+          <el-button type="primary" plain style="margin-left: 10px;" @click="searchout">{{ $t('searchOrder.search') }}</el-button>
+    </div>
+    <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;">
+        <el-table height="100%" ref="table"
+        :data="tableDataf" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="120" />
+          <el-table-column prop="sequence" align="center" :label="$t('searchOrder.pieceingrid')" min-width="180" />
+          <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.cardnumber')" min-width="150" />
+          <el-table-column prop="glassType" align="center" :label="$t('searchOrder.typeglass')" min-width="150"/>
+          <el-table-column prop="width" align="center" :label="$t('searchOrder.width')" min-width="150"/>
+          <el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="150"/>
+          <el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="150"/>
+          <el-table-column prop="temperingLayoutId" align="center" :label="$t('searchOrder.layoutID')" min-width="150"/>
+          <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" min-width="150"/>
+          <el-table-column
+          align="center"
+            :label="$t('searchOrder.startstatus')"
+            min-width="80"
+            prop="state"
+          >
+          <template #default="scope">  
+          <el-tag  
+            :type="scope.row.state === 1 ? 'success' : 'danger'"  
+          >  
+          {{ scope.row.state === 1 ? $t('searchOrder.enable') : $t('searchOrder.disable') }}
+          </el-tag>  
+        </template> 
+          </el-table-column>
+          <el-table-column prop="gap" align="center" :label="$t('searchOrder.glassgaps')" min-width="150"/>
+          <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center" width="150">
+            <template #default="scope">
+              <el-button type="text" plain @click="finisha(scope.row)">{{ $t('searchOrder.sureadd') }}</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+  </el-dialog>
+  <!-- 鐞嗙墖绗间俊鎭� -->
+<el-dialog v-model="dialogFormVisiblea" top="2vh" width="97%" :title="$t('searchOrder.cageinformation')">
+  <div style="display: flex;">
+    <el-input v-model="flowCardId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('searchOrder.incardnumber')" />
+    <el-input v-model="filmsId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('film.infilms')"/>
+    <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="fetchxianga">
+      {{$t('reportmanage.inquire')}}</el-button>
+  </div>
+    <el-table  
+          :data="tableDataa" 
+          @row-click="handleRowClick" 
+          height="700"
+          row-key="id" 
+          default-expand-all
+          :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" 
+        >  
+          <el-table-column type="expand">  
+            <template #default="props">  
+              <div v-if="props.row.hollowBigStorageCageDetails && props.row.hollowBigStorageCageDetails.length">  
+                <el-table  
+                  :data="props.row.hollowBigStorageCageDetails"  
+                  border
+                  style="width: 98%;margin-left: 20px;"  
+                  row-key="id"  
+                  :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" 
+                >  
+          <!-- <el-table-column prop="menuName" label="浜岀骇鑿滃崟鏍�" align="center" min-width="140" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"/>   -->
+          <el-table-column prop="glassId" :label="$t('searchOrder.glassID')" align="center" min-width="130"/>
+          <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.cardnumber')" min-width="130" />
+          <el-table-column prop="filmsId" align="center" :label="$t('searchOrder.coatingtypes')" min-width="80" />
+          <!-- <el-table-column prop="glassType" align="center" :label="$t('searchOrder.typeglass')" min-width="80" /> -->
+          <el-table-column prop="width" align="center" :label="$t('searchOrder.width')" min-width="80" />
+          <el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="80" />
+          <el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="80" />
+          <el-table-column prop="temperingLayoutId" align="center" :label="$t('searchOrder.layoutID')" min-width="100" />
+          <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" min-width="120" />
+          <el-table-column
+            align="center"
+            :label="$t('searchOrder.startstatus')"
+            min-width="80"
+            prop="state"
+          >
+          <template #default="scope">  
+        <el-tag :type="getStatusType(scope.row.state)">  
+          {{ getStatusText(scope.row.state) }}  
+        </el-tag>  
+      </template> 
+          </el-table-column>
+          <el-table-column prop="gap" align="center" :label="$t('searchOrder.glassgaps')" min-width="80" />
+           <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center"  min-width="220">
+            <template #default="scope">
+              <el-button type="text" plain @click="broke(scope.row)">{{ $t('searchOrder.breakage') }}</el-button>
+              <el-button type="text" plain @click="brokec(scope.row)">{{ $t('searchOrder.takeout') }}</el-button>
+              <el-button type="text" plain @click="opena(scope.row)">{{ $t('searchOrder.delete') }}</el-button>
+            </template>
+        </el-table-column>
+                </el-table>
+              </div>  
+            </template>  
+          </el-table-column>  
+          <el-table-column prop="id" :label="$t('searchOrder.cagetableID')" align="center" min-width="100"/>  
+          <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.cagenumber')" min-width="150" />
+          <el-table-column prop="slot" align="center" :label="$t('searchOrder.gridnumber')" min-width="150" />
+          <el-table-column
+          align="center"
+            :label="$t('searchOrder.startstatus')"
+            min-width="80"
+            prop="enableState"
+          >
+          <template #default="scope">  
+          <el-tag  
+            :type="scope.row.enableState === 1 ? 'success' : 'danger'"  
+            @click="toggleEnableState(scope.row)"
+          >  
+            {{ scope.row.enableState === 1 ? $t('searchOrder.enable') : $t('searchOrder.disable')}}  
+          </el-tag>  
+        </template> 
+          </el-table-column>
+          <el-table-column prop="remainWidth" align="center" :label="$t('searchOrder.remainingwidth')" min-width="120" />
+          
+       <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center">
+            <template #default="scope">
+              <el-button type="text" plain  @click="handleBindRack(scope.row)">{{ $t('searchOrder.add') }}</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+        <div>
+    <!-- <div style="margin-top: 20px;margin-left: 40%;">
+      <el-pagination
+          background
+          size="large"
+          layout="prev, pager, next"
+          :total="50"
+          :current-page.sync="currentPage2"
+          @current-change="handlePageChange2"
+        />
+    </div> -->
+  </div>
+  </el-dialog>
+  <!-- 鍘嗗彶浠诲姟 -->
+<el-dialog v-model="blindb" top="5vh" width="95%" @close="iframeUrl=''">
+     <iframe 
+     :src="iframeUrl" 
+     marginwidth="2000px"
+     marginheight="2000px"
+     width="100%" 
+     height="750px" 
+     frameborder="0"
+     ></iframe>
+  </el-dialog>
+</template>
+<style>
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#awatch{
+  height: 450px;
+}
+#occupy {
+    height: 100%;
+    width: 15%;
+    background-color: white;
+    margin: 0px 8px 0px 8px;
+    border: 1px #EBEEF5 solid;
+    text-align: center;
+    padding: 5px;
+}
+#biao {
+    font-size: 12px;
+}
+#zhi {
+    font-size: 18px;
+    font-weight: bold;
+}
+#demo-pagination-block + #demo-pagination-block {
+  margin-top: 10px;
+}
+#demo-pagination-block #demonstration {
+  margin-bottom: 16px;
+}
+::-webkit-scrollbar {
+     width: 0 !important;
+   }
+   ::-webkit-scrollbar {
+     width: 0 !important;height: 0;
+   }
+   .img-list{
+  position:relative;
+}
+.data-img{
+  @apply float-none ;
+  width:100%;
+  height:16rem;
+  background: rgba(0, 0, 0, 0);
+  opacity: 1;
+  border-radius: 0.5rem 0.5rem 0px 0px;
+}
+.check-img{
+  position: absolute;
+  width: 3.3125rem;
+  height: 2.9375rem;
+  top:20rem;
+  right: 57rem;
+  z-index: 10;
+}
+.check-imga{
+  position: absolute;
+  width: 3.3125rem;
+  height: 2.9375rem;
+  top:15rem;
+  right: 28.5rem;
+  z-index: 10;
+}
+.vertical {
+    width: 45px;
+    height: 25px;
+    background-color: #409EFF;
+    top: 485px; /* 鍒濆浣嶇疆 */
+    left: 899px; /* 姘村钩灞呬腑 */
+    transform: translateX(-50%);
+    animation: move-vertical 6s infinite; /* 浠庝笂鍒颁笅鍔ㄧ敾锛屾寔缁�6绉掞紝鏃犻檺寰幆 */
+}
+@keyframes move-vertical {
+    0% {
+        top: 485px; /* 璧峰浣嶇疆 */
+    }
+    100% {
+        top: calc(100% - 210px); /* 浠庝笂鍒颁笅缁撴潫浣嶇疆 */
+    }
+}
+.img-zkdlpl{
+  margin-left: 20px;
+  margin-top: 0px;
+  background-image:url('../../assets/zhongkong.png');
+  background-repeat: no-repeat;
+  background-attachment: local;
+  min-height: 700px;
+  width: 1000px;
+  max-width: 100%;
+  background-size: 1000px 700px;
+  overflow: hidden;
+  position:relative
+}
+.img-car1{
+  display: flex;
+  background-image:url('../../assets/xiaoche.png');
+  position: absolute;
+  background-repeat: no-repeat;
+  background-attachment: local;
+  min-height: 200px;
+  width: 200px;
+  max-width: 100%;
+  background-size: 200px 70px;
+  overflow: hidden;
+  position:relative
+}
+.img-car4{
+  display: flex;
+  background-image:url('../../assets/xiaoche.png');
+  position: absolute;
+  background-repeat: no-repeat;
+  background-attachment: local;
+  min-height: 200px;
+  width: 200px;
+  max-width: 100%;
+  background-size: 200px 70px;
+  overflow: hidden;
+  position:relative
+}
+.table-container {
+  display: flex;
+  flex-wrap: nowrap; /* 闃叉鎹㈣ */
+  justify-content: space-between; /* 鏍规嵁闇�瑕佽皟鏁村瓙鍏冪礌涔嬮棿鐨勯棿璺� */
+}
+.table-container > el-card {
+  flex: 1; /* 浣夸袱涓崱鐗囧钩鍒嗗彲鐢ㄧ┖闂� */
+  margin-bottom: 10px; /* 鍙�夛紝鏍规嵁闇�瑕佹坊鍔犲簳閮ㄩ棿璺� */
+}
+#dotClass {
+  display: flex;
+  margin-left: 20px; 
+  size: 50px;
+  margin-top: 20px;
+  margin-bottom: 10px;
+}
+.row-red-background {
+  background-color: #CDAF95 !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/largescreen/largescreen.vue b/UI-Project/src/views/largescreen/largescreen.vue
new file mode 100644
index 0000000..43b4e09
--- /dev/null
+++ b/UI-Project/src/views/largescreen/largescreen.vue
@@ -0,0 +1,661 @@
+<template>
+  <div style="height: 500px;">
+    <el-card style="flex: 1;margin-left: 1px;margin-top: 10px;margin-right: 1px;" >
+      <el-scrollbar height="800px">
+        <div style="font-size: 20px;font-weight: bold;">{{ $t('large.loading') }}{{ temperingtotal }}</div>
+        <div id="top" style="height: 150px;display: flex; justify-content: center; align-items: center;">
+          <div class="echarts-container">
+            <div v-for="(processData, index) in processesData" :key="index" class="echarts-item" @click="showDialog">
+              <div :id="'pieChart_' + index" class="pie-chart"></div>
+            </div>
+          </div>
+        </div>
+        <div style="display: flex;">
+<div class="parter" style="margin-top: 10px;margin-left: 150px; height: 240px;width: 1000px;">
+    <img src="../../assets/dpxsa.png" style="margin-left: -10px; width: 100%;height: 100%;" alt="Your Image">
+  <div  class="moving-rect lipiana" v-show="woshia"></div>
+  <div  class="moving-rect lipianb" v-show="woshia"></div>
+  <div  class="moving-rect lipianc" v-show="woshic"></div>
+  <div  class="moving-rect lipiand" v-show="woshic"></div>
+  <div  class="moving-rect overlaya" v-show="flake"></div>
+  <div  class="moving-rect overlayb" v-show="flakeb"></div>
+  <div  class="moving-rect overlayc" v-show="flakec"></div>
+  <div  class="moving-rect longa" v-show="dalipiana"></div>
+  <div  class="moving-rect longb" v-show="dalipianb"></div>
+  <div  class="moving-rect shangpianji" v-show="shangpian"></div>
+  <div  class="moving-rect xiapianji" v-show="xiapian"></div>
+  <div  class="moving-rect xiapianji1" v-show="xiapian1"></div>
+  <div  class="moving-rect xiapianji2" v-show="xiapian2"></div>
+  <div  class="moving-rect xiapianji3" v-show="xiapian3"></div>
+  <div  class="moving-rect xiapianji4" v-show="xiapian4"></div>
+  <div  class="moving-rect xiapianji5" v-show="xiapian5"></div>
+  <div  class="moving-rect xiapianji6" v-show="xiapian6"></div>
+</div>
+</div>
+<div id="bottom" style="margin-top: 10px;height: 190px;">
+<el-table height="350" ref="table"
+      @selection-change="handleSelectionChange"
+      :data="tableDatac" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+        <el-table-column prop="orderId" align="center" :label="$t('large.orderId')" min-width="50" />
+        <el-table-column prop="customerName" align="center" :show-overflow-tooltip="true" :label="$t('large.customerName')" min-width="90" />
+        <el-table-column prop="project" align="center" :label="$t('large.project')" min-width="50" />
+        <el-table-column prop="area" align="center" :label="$t('large.are')" min-width="50" />
+        <el-table-column prop="quantity" align="center" :label="$t('large.quantity')" min-width="50" />
+        <el-table-column
+          align="center"
+          :label="$t('large.warehousing')"
+          min-width="50"
+          prop="warehousing"
+        >
+        <template #default="scope">  
+      <el-tag :type="getStatusType(scope.row.warehousing)">  
+        {{ getStatusText(scope.row.warehousing) }}  
+      </el-tag>  
+    </template> 
+        </el-table-column>
+        <el-table-column prop="deliveryDate" align="center" :label="$t('large.deliveryDate')" min-width="100" />
+        <el-table-column fixed="right" :label="$t('large.operate')" align="center" width="100">
+          <template #default="scope">
+            <el-button type="text" plain @click="handleBinda(scope.row)">{{ $t('large.mes') }}</el-button>
+          </template>
+      </el-table-column>
+      </el-table>
+</div>
+</el-scrollbar>
+</el-card>
+<el-dialog v-model="blinda" top="5vh" width="85%">
+  <el-table height="650" ref="table" 
+      @selection-change="handleSelectionChange"
+      :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+        <el-table-column prop="orderId" fixed align="center" :label="$t('large.orderId')" min-width="110" />
+        <el-table-column prop="project"  align="center" :label="$t('large.project')" min-width="110" />
+        <el-table-column prop="processId"  align="center" :label="$t('large.cardnumber')" min-width="110" />
+        <el-table-column prop="orderNumber"  align="center" :label="$t('large.serialnumber')" min-width="110" />
+        <el-table-column prop="productName"  align="center" :label="$t('large.productname')" min-width="110" />
+        <el-table-column prop="width"  align="center" :label="$t('large.width')" min-width="100" />
+        <el-table-column prop="height"  align="center" :label="$t('large.height')" min-width="100" />
+        <el-table-column prop="area"  align="center" :label="$t('large.are')" min-width="100" />
+        <el-table-column prop="quantity"  align="center" :label="$t('large.tionnumber')" min-width="110" />
+        <el-table-column prop="numberPatches"  align="center" :label="$t('large.numberpatches')" min-width="110" />
+        <el-table-column prop="receivedQuantity"  align="center" :label="$t('large.innumber')" min-width="110" />
+        <el-table-column prop="terminationStatus"  align="center" :label="$t('large.productstatus')" min-width="110" />
+        <el-table-column
+          align="center"
+            :label="$t('large.productstatus')"
+            min-width="80"
+            prop="terminationStatus"
+          >
+          <template #default="scope">  
+          <el-tag  
+            :type="scope.row.terminationStatus === 0 ? 'success' : 'danger'"  
+          >  
+            {{ scope.row.terminationStatus === 0 ? $t('large.right') : $t('large.stop') }}
+          </el-tag>  
+        </template> 
+          </el-table-column> 
+        <el-table-column prop="packType"  align="center" :label="$t('large.quantity')" min-width="110" />
+        <el-table-column prop="projectNo"  align="center" :label="$t('large.projectnumber')" min-width="110" />
+      </el-table>
+  <template #footer>
+    <div id="dialog-footer" style="text-align: center;">
+      <el-button @click="blinda = false">{{ $t('large.close') }}</el-button>
+    </div>
+  </template>
+</el-dialog>
+<el-dialog v-model="blind" top="10vh" width="70%" >
+  <el-date-picker style="margin-left: 1px;" v-model="timeRange" type="daterange" format="YYYY/MM/DD" value-format="YYYY-MM-DD"
+                  :start-placeholder="$t('large.starttime')" :end-placeholder="$t('large.endtime')"
+                  :default-time="defaultTime"/>
+  <el-button type="primary" style="margin-left: 10px;margin-top: -6px;" @click="selectReportData()">
+    {{ $t('large.inquire') }}
+  </el-button>
+  <div style="height: 550px;display: flex;margin-top: 10px;justify-content: center; align-items: center;">
+    <div class="echarts-container">
+      <div v-for="(processData, index) in dialogprocesses" :key="index" class="echarts-item">
+        <div :id="'dialogPieChart_' + index" class="pie-chart"></div>
+      </div>
+    </div>
+  </div>
+</el-dialog>
+  </div>
+</template>
+<script setup>
+import {ElMessage} from 'element-plus'
+import {nextTick, onBeforeUnmount, onMounted, onUnmounted, ref} from "vue";
+import request from "@/utils/request"
+import {host, WebSocketHost} from '@/utils/constants'
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+import {useI18n} from 'vue-i18n'
+import * as echarts from 'echarts';
+const {t} = useI18n()
+const tableData = ref([])
+const tableDatab = ref([])
+const tableDatac = ref([])
+const adjustedRects = ref([]);
+const chartRefs = ref([]);
+const timeRange = ref([])
+const flake = ref(false)
+const flakeb = ref(false)
+const flakec = ref(false)
+const woshia = ref(false)
+const woshic = ref(false)
+const dalipiana = ref(false)
+const dalipianb = ref(false)
+const shangpian = ref(false)
+const xiapian = ref(false)
+const xiapian1 = ref(false)
+const xiapian2 = ref(false)
+const xiapian3 = ref(false)
+const xiapian4 = ref(false)
+const xiapian5 = ref(false)
+const xiapian6 = ref(false)
+const blind = ref(false)
+const temperingtotal = ref(0)
+const thisProcess = ref();
+const chartDom = ref(null);  
+let chartInstance = null;  
+const blinda = ref(false)
+const handleBinda = async (row) => {  
+  blinda.value = true;
+  await fetchFlowCardId(row.orderId);
+};  
+const processesData = ref([]);
+const dialogprocesses = ref([]);
+const fetchFlowCardId = async (orderId) => {
+  try  {
+    const response = await request.post('/loadGlass/order/order/selectOrderdetail',{
+      orderId: orderId
+    })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableData.value = response.data;
+    } else {
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    console.error(error);
+  }
+}
+function getStatusType(warehousing) {  
+switch (warehousing) {  
+  case 0:  
+    return 'info';  
+  case 1:  
+    return 'warning';  
+  case 2:  
+    return 'success';  
+}  
+} 
+function getStatusText(warehousing) {  
+switch (warehousing) {
+  case 0:  
+    return t('large.notstocked');
+  case 1:  
+    return t('large.inboundstatus');
+  case 2:  
+  return t('large.allstatus');
+}  
+}  
+let socket = null;
+let socket2 = null;
+let socket3 = null;
+let socket4 = null;
+let socket5 = null;
+let socket6 = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/screen`;
+const handleMessage = (data) => {
+tableDatab.value = data.DoingTask[0]
+tableDatac.value = data.orders[0]
+  socket.onmessage = (event) => {  
+  const data = JSON.parse(event.data);  
+  processesData.value = data.device[0].map(rect => ({  
+    ...rect,  
+    completedQuantity: rect.completedQuantity,  
+    breakageQuantity: rect.breakageQuantity,  
+    thisProcess: rect.thisProcess,  
+  }));  
+  renderPieCharts();
+}
+};
+function setChartDom(index, el) {  
+if (!chartRefs.value[index]) {  
+  chartRefs.value[index] = { dom: el, chart: null };  
+} else {  
+  chartRefs.value[index].dom = el;  
+}  
+} 
+const socketUrl2 = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingIsRun`;
+const handleMessage2 = (data) => {
+  const tasks = data.temperingTaskType[0];  
+    flake.value = tasks.some(task => task.state == 1);
+    flakeb.value = tasks.some(task => task.state == 2);
+    flakec.value = tasks.some(task => task.state == 3);
+};
+// 鍗у紡鐞嗙墖
+const socketUrl3 = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlassIsRun`;
+const handleMessage3 = (data) => {
+    const tasks = data.taskCaches[0];  
+  woshia.value = tasks.some(task => task.line == 2001);  
+  woshic.value = tasks.some(task => task.line == 2002);  
+};
+// 澶х悊鐗囩
+const socketUrl4 = `ws://${WebSocketHost}:${host}/api/cacheVerticalGlass/api/talk/isRun`;
+const handleMessage4 = (data) => {
+    const tasks = data.bigStorageCageDetailsOutTask[0];  
+    dalipiana.value = tasks.some(task => task.slot !== null && task.slot !== undefined);  
+  const taskss = data.bigStorageCageDetailsFeedTask[0];  
+dalipianb.value = taskss.some(task => task.slot !== null && task.slot !== undefined);  
+};
+// 涓婄墖
+const socketUrl5 = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlassIsRun`;
+const handleMessage5 = (data) => {
+    const tasks = data.engineering;  
+    shangpian.value = tasks.some(task => task.state == 1);
+    temperingtotal.value = data.engineering[0].engineerId
+  };
+// 涓嬬墖
+const socketUrl6 = `ws://${WebSocketHost}:${host}/api/unLoadGlass/api/talk/unLoadGlassIsRun`;
+const handleMessage6 = (data) => {
+  const tasks = data.downWorkstation[0];  
+  const tasks1 = data.downGlassTask[0];  
+    xiapian.value = tasks1.some(task => task.thickness!== '');  
+    if (tasks && tasks.length >= 6) {  
+    xiapian1.value = tasks[0].racksNumber !== 0;
+    xiapian2.value = tasks[1].racksNumber !== 0;
+    xiapian3.value = tasks[2].racksNumber !== 0;
+    xiapian4.value = tasks[3].racksNumber !== 0;
+    xiapian5.value = tasks[4].racksNumber !== 0;
+    xiapian6.value = tasks[5].racksNumber !== 0;
+  }
+};
+const renderPieCharts = () => {
+processesData.value.forEach((data, index) => {
+  const chart = echarts.init(document.getElementById('pieChart_' + index));
+  const options = {
+    title: {
+        text: `${data.thisProcess} `,
+        left: 'center',
+      },
+    tooltip: {
+      trigger: 'item',
+    },
+    series: [
+      {
+        name: `${data.thisProcess} `,
+        type: 'pie',
+        radius: ['40%', '70%'],
+        avoidLabelOverlap: false,
+        data: [
+          { value: data.completedQuantity, name: t('large.completedquantity') },
+          { value: data.breakageQuantity, name: t('large.scrapquantity') }
+        ],
+        emphasis: {
+          itemStyle: {
+            shadowBlur: 10,
+            shadowOffsetX: 0,
+            shadowColor: 'rgba(0, 0, 0, 0.5)'
+          }
+        },
+        label: {
+          show: false,
+          position: 'center',
+        },
+      labelLine: {
+        show: false
+      },
+      }
+    ]
+  };
+  chart.setOption(options);
+});
+};
+const renderPieCharts1 = () => {
+dialogprocesses.value.forEach((data, index) => {
+  const chart = echarts.init(document.getElementById('dialogPieChart_' + index));
+  const options = {
+    title: {
+        text: `${data.thisProcess} `,
+        left: 'center',
+      },
+    tooltip: {
+      trigger: 'item',
+    },
+    series: [
+      {
+        name: `${data.thisProcess} `,
+        type: 'pie',
+        radius: ['40%', '70%'],
+        avoidLabelOverlap: false,
+        data: [
+          { value: data.completedQuantity, name: t('large.completedquantity') },
+          { value: data.breakageQuantity, name: t('large.scrapquantity') }
+        ],
+        emphasis: {
+          itemStyle: {
+            shadowBlur: 10,
+            shadowOffsetX: 0,
+            shadowColor: 'rgba(0, 0, 0, 0.5)'
+          }
+        },
+        label: {
+          show: false,
+          position: 'center',
+        },
+      labelLine: {
+        show: false
+      },
+      }
+    ]
+  };
+  chart.setOption(options);
+});
+};
+onMounted(() => {
+  socket = initializeWebSocket(socketUrl, handleMessage);
+  socket2 = initializeWebSocket(socketUrl2, handleMessage2);
+  socket3 = initializeWebSocket(socketUrl3, handleMessage3);
+  socket4 = initializeWebSocket(socketUrl4, handleMessage4);
+  socket5 = initializeWebSocket(socketUrl5, handleMessage5);
+  socket6 = initializeWebSocket(socketUrl6, handleMessage6);
+});
+  onUnmounted(() => {
+    if (socket) {
+    closeWebSocket(socket);
+    }
+    if (socket2) {
+    closeWebSocket2(socket2);
+    }
+    if (socket3) {
+    closeWebSocket3(socket3);
+    }
+    if (socket4) {
+    closeWebSocket4(socket4);
+    }
+    if (socket5) {
+    closeWebSocket5(socket5);
+    }
+    if (socket6) {
+    closeWebSocket6(socket6);
+    }
+    });
+onBeforeUnmount(() => {
+closeWebSocket();
+closeWebSocket2();
+closeWebSocket3();
+closeWebSocket4();
+closeWebSocket5();
+closeWebSocket6();
+});
+function showDialog() {  
+  blind.value = true;  
+}  
+// 鏌ヨ鏁版嵁
+const selectReportData = async () => {
+  const response = await request.post("/loadGlass/reporting_work/reporting-work/selectDamage", {
+    reportingWorkTime: timeRange.value[0],
+    reportingWorkTime2: timeRange.value[1],
+  })
+  if (response.code === 200) {
+    dialogprocesses.value = response.data.map(rect => ({  
+    ...rect,  
+    completedQuantity: rect.completedQuantity,  
+    breakageQuantity: rect.breakageQuantity,  
+    thisProcess: rect.thisProcess,  
+  }));  
+  await nextTick();
+  renderPieCharts1();
+    ElMessage.success(response.message);
+  } else {
+    ElMessage.error(response.message);
+  }
+};
+</script>
+<style scoped>  
+.echarts-container {
+display: flex;
+flex-wrap: wrap;
+gap: 20px;
+}
+.echarts-item {
+width: 120px;
+height: 150px;
+margin: 20px;
+}
+.pie-chart {
+width: 100%;
+height: 100%;
+}
+.parter {
+ position: relative;
+ display: inline-block; /* 浣垮鍣ㄥぇ灏忛�傚簲鍥剧墖澶у皬 */
+ width: 1500px;
+ margin-left: -300px
+}
+img {
+ display: block; /* 璁╁浘鐗囦互鍧楃骇鍏冪礌鏄剧ず */
+ max-width: 100%; /* 纭繚鍥剧墖涓嶈秴鍑哄鍣� */
+}
+.moving-rect {
+ width: 100px;
+ height: 50px;
+ position: absolute;
+}
+.longa{
+  z-index: 1;
+  width: 33px;
+  height: 5px;
+  background-color: #529b2e;
+  margin-top: -15px;
+  margin-left: 130px;
+}
+.longb{
+  z-index: 1;
+  width: 33px;
+  height: 5px;
+  background-color: #529b2e;
+  margin-top: -15px;
+  margin-left: 235px;
+}
+.xiapianji1{
+  z-index: 1;
+  width: 12px;
+  height: 7px;
+  background-color: #529b2e;
+  margin-top: -206px;
+  margin-left: 173px;
+}
+.xiapianji2{
+  z-index: 1;
+  width: 12px;
+  height: 7px;
+  background-color: #529b2e;
+  margin-top: -206px;
+  margin-left: 217px;
+}
+.xiapianji3{
+  z-index: 1;
+  width: 12px;
+  height: 7px;
+  background-color: #529b2e;
+  margin-top: -195px;
+  margin-left: 196px;
+}
+.xiapianji4{
+  z-index: 1;
+  width: 12px;
+  height: 7px;
+  background-color: #529b2e;
+  margin-top: -206px;
+  margin-left: 270px;
+}
+.xiapianji5{
+  z-index: 1;
+  width: 12px;
+  height: 7px;
+  background-color: #529b2e;
+  margin-top: -206px;
+  margin-left: 314px;
+}
+.xiapianji6{
+  z-index: 1;
+  width: 12px;
+  height: 7px;
+  background-color: #529b2e;
+  margin-top: -195px;
+  margin-left: 293px;
+}
+.xiapianji {
+ width: 20px;
+ height: 10px;
+ background-color: #529b2e;
+ top: 9px;
+ left: 200px;
+ transform: translateX(-50%);
+ animation: move-xiapianji 15s infinite;
+}
+@keyframes move-xiapianji {
+    0% {
+      left: 200px;
+    }
+    100% {
+      left: calc(100% - 700px);
+    }
+}
+.lipiana {
+    width: 15px;
+    height: 9px;
+    background-color: #529b2e;
+    top: 190px;
+    right: 530px;
+    transform: translateX(-50%);
+    animation: move-lipiana 15s infinite;
+}
+@keyframes move-lipiana {
+    0% {
+      right: 530px;
+    }
+    100% {
+      right: calc(100% - 350px);
+    }
+}
+.lipianb {
+    width: 18px;
+    height: 10px;
+    background-color: #529b2e;
+    top: 160px;
+    left: 502px;
+    transform: translateX(-50%);
+    animation: move-lipianb 15s infinite;
+}
+@keyframes move-lipianb {
+    0% {
+        top: 160px;
+    }
+    100% {
+        top: calc(100% - 55px);
+    }
+}
+.lipianc {
+    width: 15px;
+    height: 9px;
+    background-color: #529b2e;
+    top: 215px;
+    right: 490px;
+    transform: translateX(-50%);
+    animation: move-lipianc 15s infinite;
+}
+@keyframes move-lipianc {
+    0% {
+      right: 490px;
+    }
+    100% {
+      right: calc(100% - 350px);
+    }
+}
+.lipiand {
+    width: 25px;
+    height: 10px;
+    background-color: #529b2e;
+    top: 160px;
+    left: 555px;
+    transform: translateX(-50%);
+    animation: move-lipiand 15s infinite;
+}
+@keyframes move-lipiand {
+    0% {
+        top: 160px;
+    }
+    100% {
+        top: calc(100% - 40px);
+    }
+}
+.overlaya {
+    width: 15px;
+    height: 9px;
+    background-color: #529b2e;
+    top: 213px;
+    right: 800px;
+    transform: translateX(-50%);
+    animation: move-overlaya 15s infinite;
+}
+@keyframes move-overlaya {
+    0% {
+      right: 880px;
+    }
+    100% {
+      right: calc(100% - 15px);
+    }
+}
+.overlayb {
+    width: 20px;
+    height: 10px;
+    background-color: #529b2e;
+    top: 110px;
+    left: 13px;
+    transform: translateX(-50%);
+    animation: move-overlayb 15s infinite;
+}
+@keyframes move-overlayb {
+    0% {
+        top: 160px;
+    }
+    100% {
+        top: calc(100% - 190px);
+    }
+}
+.overlayc {
+    width: 20px;
+    height: 10px;
+    background-color: #529b2e;
+    top: 7px;
+    left: 13px;
+    transform: translateX(-50%);
+    animation: move-overlayc 15s infinite;
+}
+@keyframes move-overlayc {
+    0% {
+      left: 20px;
+    }
+    100% {
+      left: calc(100% - 900px);
+    }
+}
+.shangpianji {
+    width: 20px;
+    height: 10px;
+    background-color: #529b2e;
+    top: 157px;
+    right: 90px;
+    transform: translateX(-50%);
+    animation: move-shangpianji 15s infinite;
+}
+@keyframes move-shangpianji {
+    0% {
+      right: 90px;
+    }
+    100% {
+      right: calc(100% - 770px);
+    }
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/largescreendisplay/screendisplay.vue b/UI-Project/src/views/largescreendisplay/screendisplay.vue
new file mode 100644
index 0000000..c34154e
--- /dev/null
+++ b/UI-Project/src/views/largescreendisplay/screendisplay.vue
@@ -0,0 +1,1290 @@
+<script setup>
+import { onBeforeUnmount, onMounted, onUnmounted, ref, computed, nextTick } from "vue";
+import { useRouter } from "vue-router"
+import { host, WebSocketHost } from '@/utils/constants'
+import request from "@/utils/request"
+import { closeWebSocket, initializeWebSocket } from '@/utils/WebSocketService';
+import dayjs from 'dayjs';
+import { ElMessage } from 'element-plus'
+import { useI18n } from 'vue-i18n'
+import * as echarts from 'echarts';
+
+const load = ref(true)
+const edg = ref(true)
+const temp = ref(true)
+const hollow = ref(true)
+const router = useRouter()
+const blinda = ref(false)
+const blindb = ref(false)
+const blindc = ref(false)
+const { t } = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+let socket = null;
+const rawGlassStorageDetailList = ref([])
+const orderDTOS = ref([])
+const socketUrl = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/largenScreen`;
+const handleMessage = (data) => {
+  rawGlassStorageDetailList.value = data.rawGlassStorageDetailList[0]
+  orderDTOS.value = data.orderDTOS[0]
+};
+let socket1 = null;
+const edgOneTasks = ref([])
+const edgTwoTasks = ref([])
+const engineeringOne = ref([])
+const engineeringTwo = ref([])
+
+const socketUrl1 = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/largenScreen`;
+const handleMessage1 = (data) => {
+  edgOneTasks.value = data.edgOneTasks[0];
+  edgTwoTasks.value = data.edgTwoTasks[0];
+  engineeringOne.value = data.engineeringOne[0];
+  engineeringTwo.value = data.engineeringTwo[0];
+  if (numBoxes.value != edgOneTasks.value.length) {
+    numBoxes.value = edgOneTasks.value.length;
+    boxStart();
+  }
+  if (numBoxes2.value != edgTwoTasks.value.length) {
+    numBoxes2.value = edgTwoTasks.value.length;
+    boxStart2();
+  }
+  const pieChartVOS = ref([]);
+  pieChartVOS.value = data.pieChartVOS[0];
+  let oneFinish = ref();
+  let twoFinish = ref();
+  let oneunFinish = ref();
+  let twounFinish = ref();
+  if (pieChartVOS.value.length > 0) {
+    if (load.value) {
+      oneFinish = pieChartVOS.value[0].oneCompletedQuantity;
+      twoFinish = pieChartVOS.value[0].twoCompletedQuantity;
+      oneunFinish = pieChartVOS.value[0].oneUncompletedQuantity;
+      twounFinish = pieChartVOS.value[0].twoUncompletedQuantity;
+    } else {
+      oneFinish = pieChartVOS.value[0].oneCompletedArea;
+      twoFinish = pieChartVOS.value[0].twoCompletedArea;
+      oneunFinish = pieChartVOS.value[0].oneUncompletedArea;
+      twounFinish = pieChartVOS.value[0].twoUncompletedArea;
+    }
+  } else {
+    oneFinish = 0;
+    twoFinish = 0;
+    oneunFinish = 0;
+    twounFinish = 0;
+  }
+
+
+  const chartDomOne = chartOne.value;
+  if (!chartDomOne) {
+    console.error('鍥捐〃瀹瑰櫒鏈壘鍒�');
+    return;
+  }
+  const myChartOne = echarts.init(chartDomOne);
+  const optionOne = {
+    title: {
+      text: t('large.load'),
+      subtext: '',
+      left: 'right'
+    },
+    tooltip: {
+      trigger: 'item'
+    },
+    legend: {
+      orient: 'vertical',
+      left: 'left'
+    },
+    series: [
+      {
+        name: '',
+        type: 'pie',
+        radius: '50%',
+        data: [
+          { value: oneFinish, name: t('large.oneFinish') },
+          { value: twoFinish, name: t('large.twoFinish') },
+          { value: oneunFinish, name: t('large.oneunFinish') },
+          { value: twounFinish, name: t('large.twounFinish') },
+        ],
+        emphasis: {
+          itemStyle: {
+            shadowBlur: 10,
+            shadowOffsetX: 0,
+            shadowColor: 'rgba(0, 0, 0, 0.5)'
+          }
+        }
+      }
+    ],
+    graphic: [
+      {
+        type: 'rect',
+        left: 'center',
+        top: 0,
+        shape: {
+          width: 80,
+          height: 30
+        },
+        style: {
+          text: load.value == true ? t('large.quantity') : t('large.are'),
+          fill: '#5470C6',
+          stroke: '#000',
+          lineWidth: 1
+        },
+        onclick: function () {
+          load.value = !load.value;
+        }
+      }
+    ]
+  };
+
+  myChartOne.setOption(optionOne);
+};
+let socket2 = null;
+const temperingTaskType = ref([])
+const temperingGlassInfoList = ref([])
+const temperingGlassInfoInList = ref([])
+const socketUrl2 = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/largenScreen`;
+const handleMessage2 = (data) => {
+  temperingTaskType.value = data.temperingTaskType[0];
+  temperingGlassInfoList.value = data.temperingGlassInfoList[0];
+  if (numBoxes3.value != temperingTaskType.value) {
+    numBoxes3.value = temperingTaskType.value;
+    boxStart3();
+  }
+  if (temperingGlassInfoList.value > 1) {
+    numBoxes4.value = 1;
+  } else {
+    numBoxes4.value = 0;
+  }
+  temperingGlassInfoInList.value = data.temperingGlassInfoInList[0];
+  const pieChartVOS = ref([]);
+  pieChartVOS.value = data.pieChartVOS[0];
+  let oneFinish = ref();
+  let ondDamage = ref();
+  let oneunFinish = ref();
+  if (pieChartVOS.value.length > 0) {
+    if (temp.value) {
+      oneFinish = pieChartVOS.value[0].oneCompletedQuantity;
+      ondDamage = pieChartVOS.value[0].oneDamageQuantity;
+      oneunFinish = pieChartVOS.value[0].oneUncompletedQuantity;
+    } else {
+      oneFinish = pieChartVOS.value[0].oneCompletedArea;
+      ondDamage = pieChartVOS.value[0].oneDamageArea;
+      oneunFinish = pieChartVOS.value[0].oneUncompletedArea;
+    }
+  } else {
+    oneFinish = 0;
+    ondDamage = 0;
+    oneunFinish = 0;
+  }
+
+
+  const chartDomOne = chartThree.value;
+  if (!chartDomOne) {
+    console.error('鍥捐〃瀹瑰櫒鏈壘鍒�');
+    return;
+  }
+  const myChartOne = echarts.init(chartDomOne);
+  const optionOne = {
+    title: {
+      text: t('large.temp'),
+      subtext: '',
+      left: 'right'
+    },
+    tooltip: {
+      trigger: 'item'
+    },
+    legend: {
+      orient: 'vertical',
+      left: 'left'
+    },
+    series: [
+      {
+        name: '',
+        type: 'pie',
+        radius: '50%',
+        data: [
+          { value: oneFinish, name: t('large.oneFinish') },
+          { value: ondDamage, name: t('large.ondDamage') },
+          { value: oneunFinish, name: t('large.oneunFinish') },
+        ],
+        emphasis: {
+          itemStyle: {
+            shadowBlur: 10,
+            shadowOffsetX: 0,
+            shadowColor: 'rgba(0, 0, 0, 0.5)'
+          }
+        }
+      }
+    ],
+    graphic: [
+      {
+        type: 'rect',
+        left: 'center',
+        top: 0,
+        shape: {
+          width: 80,
+          height: 30
+        },
+        style: {
+          text: temp.value == true ? t('large.quantity') : t('large.are'),
+          fill: '#5470C6',
+          stroke: '#000',
+          lineWidth: 1
+        },
+        onclick: function () {
+          temp.value = !temp.value;
+        }
+      }
+    ]
+  };
+
+  myChartOne.setOption(optionOne);
+};
+let socket3 = null;
+const bigStorageCageUsage = ref([])
+const socketUrl3 = `ws://${WebSocketHost}:${host}/api/cacheVerticalGlass/api/talk/largenScreen`;
+const handleMessage3 = (data) => {
+  bigStorageCageUsage.value = data.bigStorageCageUsage[0];
+  const pieChartVOS = ref([]);
+  pieChartVOS.value = data.pieChartVOS[0];
+  let oneFinish = ref();
+  let twoFinish = ref();
+  let oneunFinish = ref();
+  let twounFinish = ref();
+  if (pieChartVOS.value.length > 0) {
+    if (edg.value) {
+      oneFinish = pieChartVOS.value[0].oneCompletedQuantity;
+      twoFinish = pieChartVOS.value[0].twoCompletedQuantity;
+      oneunFinish = pieChartVOS.value[0].oneUncompletedQuantity;
+      twounFinish = pieChartVOS.value[0].twoUncompletedQuantity;
+    } else {
+      oneFinish = pieChartVOS.value[0].oneCompletedArea;
+      twoFinish = pieChartVOS.value[0].twoCompletedArea;
+      oneunFinish = pieChartVOS.value[0].oneUncompletedArea;
+      twounFinish = pieChartVOS.value[0].twoUncompletedArea;
+    }
+  } else {
+    oneFinish = 0;
+    twoFinish = 0;
+    oneunFinish = 0;
+    twounFinish = 0;
+  }
+
+
+  const chartDomOne = chartTwo.value;
+  if (!chartDomOne) {
+    console.error('鍥捐〃瀹瑰櫒鏈壘鍒�');
+    return;
+  }
+  const myChartOne = echarts.init(chartDomOne);
+  const optionOne = {
+    title: {
+      text: t('large.edg'),
+      subtext: '',
+      left: 'right'
+    },
+    tooltip: {
+      trigger: 'item'
+    },
+    legend: {
+      orient: 'vertical',
+      left: 'left'
+    },
+    series: [
+      {
+        name: '',
+        type: 'pie',
+        radius: '50%',
+        data: [
+          { value: oneFinish, name: t('large.oneFinish') },
+          { value: twoFinish, name: t('large.twoFinish') },
+          { value: oneunFinish, name: t('large.oneunFinish') },
+          { value: twounFinish, name: t('large.twounFinish') },
+        ],
+        emphasis: {
+          itemStyle: {
+            shadowBlur: 10,
+            shadowOffsetX: 0,
+            shadowColor: 'rgba(0, 0, 0, 0.5)'
+          }
+        }
+      }
+    ],
+    graphic: [
+      {
+        type: 'rect',
+        left: 'center',
+        top: 0,
+        shape: {
+          width: 80,
+          height: 30
+        },
+        style: {
+          text: edg.value == true ? t('large.quantity') : t('large.are'),
+          fill: '#5470C6',
+          stroke: '#000',
+          lineWidth: 1
+        },
+        onclick: function () {
+          edg.value = !edg.value;
+        }
+      }
+    ]
+  };
+
+  myChartOne.setOption(optionOne);
+};
+let socket4 = null;
+const hollowBigStorageCageUsage = ref([])
+const socketUrl4 = `ws://${WebSocketHost}:${host}/api/hollowGlass/api/talk/largenScreen`;
+const handleMessage4 = (data) => {
+  hollowBigStorageCageUsage.value = data.hollowBigStorageCageUsage[0];
+  const pieChartVOS = ref([]);
+  pieChartVOS.value = data.pieChartVOS[0];
+  let oneFinish = ref();
+  let twoFinish = ref();
+  let oneunFinish = ref();
+  let twounFinish = ref();
+  if (pieChartVOS.value.length > 0) {
+    if (hollow.value) {
+      oneFinish = pieChartVOS.value[0].oneCompletedQuantity;
+      twoFinish = pieChartVOS.value[0].twoCompletedQuantity;
+      oneunFinish = pieChartVOS.value[0].oneUncompletedQuantity;
+      twounFinish = pieChartVOS.value[0].twoUncompletedQuantity;
+    } else {
+      oneFinish = pieChartVOS.value[0].oneCompletedArea;
+      twoFinish = pieChartVOS.value[0].twoCompletedArea;
+      oneunFinish = pieChartVOS.value[0].oneUncompletedArea;
+      twounFinish = pieChartVOS.value[0].twoUncompletedArea;
+    }
+  } else {
+    oneFinish = 0;
+    twoFinish = 0;
+    oneunFinish = 0;
+    twounFinish = 0;
+  }
+
+
+  const chartDomOne = chartFour.value;
+  if (!chartDomOne) {
+    console.error('鍥捐〃瀹瑰櫒鏈壘鍒�');
+    return;
+  }
+  const myChartOne = echarts.init(chartDomOne);
+  const optionOne = {
+    title: {
+      text: t('large.hollow'),
+      subtext: '',
+      left: 'right'
+    },
+    tooltip: {
+      trigger: 'item'
+    },
+    legend: {
+      orient: 'vertical',
+      left: 'left'
+    },
+    series: [
+      {
+        name: '',
+        type: 'pie',
+        radius: '50%',
+        data: [
+          { value: oneFinish, name: t('large.oneFinish') },
+          { value: twoFinish, name: t('large.twoFinish') },
+          { value: oneunFinish, name: t('large.oneunFinish') },
+          { value: twounFinish, name: t('large.twounFinish') },
+        ],
+        emphasis: {
+          itemStyle: {
+            shadowBlur: 10,
+            shadowOffsetX: 0,
+            shadowColor: 'rgba(0, 0, 0, 0.5)'
+          }
+        }
+      }
+    ],
+    graphic: [
+      {
+        type: 'rect',
+        left: 'center',
+        top: 0,
+        shape: {
+          width: 80,
+          height: 30
+        },
+        style: {
+          text: hollow.value == true ? t('large.quantity') : t('large.are'),
+          fill: '#5470C6',
+          stroke: '#000',
+          lineWidth: 1
+        },
+        onclick: function () {
+          hollow.value = !hollow.value;
+        }
+      }
+    ]
+  };
+
+  myChartOne.setOption(optionOne);
+};
+let socket5 = null;
+const productionVO = ref([])
+const socketUrl5 = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/largenScreenProduction`;
+const handleMessage5 = (data) => {
+  productionVO.value = data.productionVO[0];
+  // 灏嗗師濮嬫暟鎹浆鎹负 ECharts 鍥捐〃鎵�闇�鏍煎紡
+  categories = productionVO.value.map(item => item.date); // 鑾峰彇鏃ユ湡浣滀负 x 杞�
+  totalAreaOutOne = productionVO.value.map(item => item.totalAreaOutOne);
+  countIn = productionVO.value.map(item => item.countIn);
+  totalAreaOutTwo = productionVO.value.map(item => item.totalAreaOutTwo);
+  totalAreaOut = productionVO.value.map(item => item.totalAreaOut);
+  countOut = productionVO.value.map(item => item.countOut);
+  hollowTotalAreaOutTwo = productionVO.value.map(item => item.hollowTotalAreaOutTwo);
+  hollowCountOutOne = productionVO.value.map(item => item.hollowCountOutOne);
+  countOutTwo = productionVO.value.map(item => item.countOutTwo);
+  hollowCountOutTwo = productionVO.value.map(item => item.hollowCountOutTwo);
+  hollowTotalAreaOutOne = productionVO.value.map(item => item.hollowTotalAreaOutOne);
+  totalAreaIn = productionVO.value.map(item => item.totalAreaIn);
+  countOutOne = productionVO.value.map(item => item.countOutOne);
+  //鍥捐〃
+  nextTick() // 纭繚 DOM 鍔犺浇瀹屾垚
+  const chartDom = chartRef.value;
+  if (!chartDom) {
+    console.error('鍥捐〃瀹瑰櫒鏈壘鍒�');
+    return;
+  }
+
+  const myChart = echarts.init(chartDom);
+
+
+  const option = {
+    title: { text: '' },
+    tooltip: { trigger: 'axis' },
+    legend: {
+      data: [
+        t('large.countOutOne'),
+        t('large.totalAreaOutOne'),
+        t('large.countOutTwo'),
+        t('large.totalAreaOutTwo'),
+        t('large.countIn'),
+        t('large.totalAreaIn')
+      ]
+    },
+    grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true },
+    toolbox: { feature: { saveAsImage: {} } },
+    xAxis: {
+      type: 'category',
+      boundaryGap: false,
+      data: categories // 杩欐槸鏃ユ湡鏁版嵁
+    },
+    yAxis: { type: 'value' },
+    series: [
+      { name: t('large.countOutOne'), type: 'bar', data: countOutOne },
+      { name: t('large.totalAreaOutOne'), type: 'bar', data: totalAreaOutOne },
+      { name: t('large.countOutTwo'), type: 'bar', data: countOutTwo },
+      { name: t('large.totalAreaOutTwo'), type: 'bar', data: totalAreaOutTwo },
+      { name: t('large.countIn'), type: 'bar', data: countIn },
+      { name: t('large.totalAreaIn'), type: 'bar', data: totalAreaIn }
+    ]
+  };
+
+  myChart.setOption(option);
+
+  const chartDom2 = chartRef2.value;
+  if (!chartDom2) {
+    console.error('鍥捐〃瀹瑰櫒鏈壘鍒�');
+    return;
+  }
+  const myChart2 = echarts.init(chartDom2);
+  const option2 = {
+    title: { text: '' },
+    tooltip: { trigger: 'axis' },
+    legend: {
+      data: [
+        t('large.totalAreaOut'),
+        t('large.countOut'),
+        t('large.hollowTotalAreaOutOne'),
+        t('large.hollowCountOutOne'),
+        t('large.hollowCountOutTwo'),
+        t('large.hollowTotalAreaOutTwo')
+      ]
+    },
+    grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true },
+    toolbox: { feature: { saveAsImage: {} } },
+    xAxis: {
+      type: 'category',
+      boundaryGap: false,
+      data: categories // 杩欐槸鏃ユ湡鏁版嵁
+    },
+    yAxis: { type: 'value' },
+    series: [
+      { name: t('large.totalAreaOut'), type: 'bar', data: totalAreaOut },
+      { name: t('large.countOut'), type: 'bar', data: countOut },
+      { name: t('large.hollowTotalAreaOutOne'), type: 'bar', data: hollowTotalAreaOutOne },
+      { name: t('large.hollowCountOutOne'), type: 'bar', data: hollowCountOutOne },
+      { name: t('large.hollowCountOutTwo'), type: 'bar', data: hollowCountOutTwo },
+      { name: t('large.hollowTotalAreaOutTwo'), type: 'bar', data: hollowTotalAreaOutTwo }
+    ]
+  };
+
+  myChart2.setOption(option2);
+};
+// 灏嗗師濮嬫暟鎹浆鎹负 ECharts 鍥捐〃鎵�闇�鏍煎紡
+let categories = ref([]); // 鑾峰彇鏃ユ湡浣滀负 x 杞�
+let totalAreaOutOne = ref([]);
+let countIn = ref([]);
+let totalAreaOutTwo = ref([]);
+let totalAreaOut = ref([]);
+let countOut = ref([]);
+let hollowTotalAreaOutTwo = ref([]);
+let hollowCountOutOne = ref([]);
+let countOutTwo = ref([]);
+let hollowCountOutTwo = ref([]);
+let hollowTotalAreaOutOne = ref([]);
+let totalAreaIn = ref([]);
+let countOutOne = ref([]);
+
+const tableDatad = ref([]);
+const patternUsage = async () => {
+  try {
+    const response = await request.post('/glassStorage/rawGlassStorageDetails/patternUsage?width=' + ptnusage.value.width + '&height=' + ptnusage.value.height + '&thickness=' + ptnusage.value.thickness + '&films=' + ptnusage.value.films);
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableDatad.value = response.data;
+    } else {
+      ElMessage.error(response.message);
+    }
+  }
+  catch (error) {
+    console.error(error);
+  }
+}
+
+const tableData = ref([]);
+const dynamicColumns = ref([]);
+const flowCardDetail = async (orderId) => {
+  blinda.value = true;
+  try {
+    const response = await request.post('/glassStorage/flow_card/flowCardReportForms?orderId=' + orderId);
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableData.value = response.data;
+      // 瑙f瀽鏁版嵁骞剁敓鎴愬姩鎬佸垪
+      if (response.data.length > 0) {
+        // 瑙f瀽绗竴涓璞$殑 reportWorkQuantity锛岀‘瀹氬姩鎬佸垪
+        const firstItem = response.data[0];
+        const reportData = JSON.parse(firstItem.reportWorkQuantity || "{}");
+        dynamicColumns.value = Object.keys(reportData).map((key) => ({
+          prop: key,
+          label: key,
+        }));
+
+        // 瑙f瀽鏁版嵁骞跺皢 JSON 瀛楃涓茶浆鎹负瀵硅薄
+        tableData.value = response.data.map((item) => {
+          const reportData = JSON.parse(item.reportWorkQuantity || "{}");
+          return {
+            ...item,
+            ...reportData, // 鎶� JSON 瀛楁鍚堝苟鍒板钩閾哄璞�
+          };
+        });
+      }
+    } else {
+      ElMessage.error(response.message);
+    }
+  }
+  catch (error) {
+    console.error(error);
+  }
+}
+
+const ptnusage = ref({
+  width: '',
+  height: '',
+  thickness: '',
+  films: ''
+})
+// 鐐瑰嚮涓嬫柟寮圭獥
+const handlehistorical = (row) => {
+  blindb.value = true;
+  patternUsage()
+};
+const chartRef = ref(null)
+const chartRef2 = ref(null)
+const chartOne = ref(null)
+const chartTwo = ref(null)
+const chartThree = ref(null)
+const chartFour = ref(null)
+
+
+// 鍦ㄧ粍浠舵寕杞芥椂璁剧疆榛樿鏃堕棿鑼冨洿
+onMounted(async () => {
+
+  boxStart();
+  boxStart2();
+  boxStart3();
+  boxStart4();
+  requestAnimationFrame(animate);
+  socket = initializeWebSocket(socketUrl, handleMessage);
+  socket1 = initializeWebSocket(socketUrl1, handleMessage1);
+  socket2 = initializeWebSocket(socketUrl2, handleMessage2);
+  socket3 = initializeWebSocket(socketUrl3, handleMessage3);
+  socket4 = initializeWebSocket(socketUrl4, handleMessage4);
+  socket5 = initializeWebSocket(socketUrl5, handleMessage5);
+  const endTime = dayjs().startOf('minute'); // 褰撳墠鏃堕棿锛岀簿纭埌鍒嗛挓
+  const startTime = endTime.subtract(1, 'day').startOf('minute'); // 褰撳墠鏃堕棿鐨勫墠涓�澶╋紝绮剧‘鍒板垎閽�
+  // 璁剧疆鏃堕棿鑼冨洿涓� [寮�濮嬫椂闂�, 缁撴潫鏃堕棿]
+  // timeRange.value = [startTime.format('YYYY-MM-DD HH:mm:ss'), endTime.format('YYYY-MM-DD HH:mm:ss')];
+
+});
+// onMounted(() => {
+//   socket = initializeWebSocket(socketUrl, handleMessage);
+// });
+onUnmounted(() => {
+  if (socket) {
+    closeWebSocket(socket);
+    closeWebSocket(socket1);
+    closeWebSocket(socket2);
+    closeWebSocket(socket3);
+    closeWebSocket(socket4);
+    closeWebSocket(socket5);
+  }
+});
+onBeforeUnmount(() => {
+  closeWebSocket();
+});
+const numBoxes = ref(5);
+const numBoxes2 = ref(5);
+const numBoxes3 = ref(5);
+const numBoxes4 = ref(1);
+const speed = 0.1;
+const maxX = 200; // 缁堢偣X鍧愭爣
+const maxY = -75; // 缁堢偣Y鍧愭爣
+const maxX2 = 313; // 缁堢偣X鍧愭爣
+const maxY2 = -165; // 缁堢偣Y鍧愭爣
+const maxX3 = 95; // 缁堢偣X鍧愭爣
+const maxY3 = -85; // 缁堢偣Y鍧愭爣
+const maxX4 = 60; // 缁堢偣X鍧愭爣
+const maxY4 = 0; // 缁堢偣Y鍧愭爣
+const delayFrames = 600; // 姣忎釜 div 鐨勫欢杩熷抚鏁�
+const boxes = ref([]);
+const boxes2 = ref([]);
+const boxes3 = ref([]);
+const boxes4 = ref([]);
+// 鍒濆鍖� div 鏁版嵁
+const boxStart = () => {
+  boxes.value = [];
+  for (let i = 0; i < numBoxes.value; i++) {
+    boxes.value.push({
+      x: 0,
+      y: 0, // 鍒濆浣嶇疆鍦ㄥ簳閮�
+      direction: 'up',
+      delay: i * delayFrames,
+      style: {
+        width: '15px',
+        height: '15px',
+        backgroundColor: i % 2 === 0 ? '#911005' : '#911005',
+        position: 'absolute',
+        transform: `translate(0px, 0px)`
+      }
+    });
+  }
+}
+const boxStart2 = () => {
+  boxes2.value = [];
+  for (let i = 0; i < numBoxes2.value; i++) {
+    boxes2.value.push({
+      x: 0,
+      y: 0, // 鍒濆浣嶇疆鍦ㄥ簳閮�
+      direction: 'up',
+      delay: i * delayFrames,
+      style: {
+        width: '15px',
+        height: '15px',
+        backgroundColor: i % 2 === 0 ? '#911005' : '#911005',
+        position: 'absolute',
+        transform: `translate(0px, 0px)`
+      }
+    });
+  }
+}
+const boxStart3 = () => {
+  boxes3.value = [];
+  for (let i = 0; i < numBoxes3.value; i++) {
+    boxes3.value.push({
+      x: 0,
+      y: 0, // 鍒濆浣嶇疆鍦ㄥ簳閮�
+      direction: 'left',
+      delay: i * delayFrames,
+      style: {
+        width: '15px',
+        height: '15px',
+        backgroundColor: i % 2 === 0 ? '#911005' : '#911005',
+        position: 'absolute',
+        transform: `translate(0px, 0px)`
+      }
+    });
+  }
+}
+const boxStart4 = () => {
+  boxes4.value = [];
+  for (let i = 0; i < numBoxes4.value; i++) {
+    boxes4.value.push({
+      x: 0,
+      y: 0, // 鍒濆浣嶇疆鍦ㄥ簳閮�
+      direction: 'right',
+      delay: i * delayFrames,
+      style: {
+        width: '15px',
+        height: '15px',
+        backgroundColor: i % 2 === 0 ? '#911005' : '#911005',
+        position: 'absolute',
+        transform: `translate(0px, 0px)`
+      }
+    });
+  }
+}
+const animate = () => {
+  boxes.value.forEach((box) => {
+    if (box.delay > 0) {
+      box.delay--;
+      return;
+    }
+    if (box.direction === 'up') {
+      box.y -= speed;
+      if (box.y <= maxY) {
+        // box.y = 0; // 纭繚涓嶄細瓒呭嚭鐣岄檺
+        box.direction = 'left';
+      }
+    } else if (box.direction === 'left') {
+      box.x -= speed;
+      if (box.x <= -maxX) {
+        box.x = 0;
+        box.y = 0; // 閲嶆柊鍥炲埌搴曢儴
+        box.direction = 'up';
+      }
+    }
+    box.style = {
+      ...box.style,
+      transform: `translate(${box.x}px, ${box.y}px)`
+    };
+  });
+  boxes2.value.forEach((box) => {
+    if (box.delay > 0) {
+      box.delay--;
+      return;
+    }
+    if (box.direction === 'up') {
+      box.y -= speed;
+      if (box.y <= maxY2) {
+        // box.y = 0; // 纭繚涓嶄細瓒呭嚭鐣岄檺
+        box.direction = 'left';
+      }
+    } else if (box.direction === 'left') {
+      box.x -= speed;
+      if (box.x <= -maxX2) {
+        box.x = 0;
+        box.y = 0; // 閲嶆柊鍥炲埌搴曢儴
+        box.direction = 'up';
+      }
+    }
+    box.style = {
+      ...box.style,
+      transform: `translate(${box.x}px, ${box.y}px)`
+    };
+  });
+  boxes3.value.forEach((box) => {
+    if (box.delay > 0) {
+      box.delay--;
+      return;
+    }
+    if (box.direction === 'up') {
+      box.y -= speed;
+      if (box.y <= maxY3) {
+        // box.y = 0; // 纭繚涓嶄細瓒呭嚭鐣岄檺
+        box.direction = 'left';
+        box.x = 0;
+        box.y = 0; // 閲嶆柊鍥炲埌搴曢儴
+      }
+    } else if (box.direction === 'left') {
+      box.x -= speed;
+      if (box.x <= -maxX3) {
+
+        box.direction = 'up';
+      }
+    }
+    box.style = {
+      ...box.style,
+      transform: `translate(${box.x}px, ${box.y}px)`
+    };
+  });
+  boxes4.value.forEach((box) => {
+    if (box.delay > 0) {
+      box.delay--;
+      return;
+    }
+    if (box.direction === 'right') {
+      box.x += speed;
+      if (box.x >= maxX4) {
+        // box.y = 0; // 纭繚涓嶄細瓒呭嚭鐣岄檺
+        box.x = 0;
+        box.y = 0; // 閲嶆柊鍥炲埌搴曢儴
+      }
+    }
+    box.style = {
+      ...box.style,
+      transform: `translate(${box.x}px, ${box.y}px)`
+    };
+  });
+  requestAnimationFrame(animate);
+};
+//宓屽叆鍘嗗彶浠诲姟
+const iframeUrl1 = ref('');
+const iframe1 = ref(false);
+const handlehistorical1 = () => {
+  iframe1.value = true;
+  iframeUrl1.value = `${window.location.origin}/#/GlassStorage/rawhistory`;
+};
+const iframeUrl2 = ref('');
+const iframe2 = ref(false);
+const handlehistorical2 = () => {
+  iframe2.value = true;
+  iframeUrl2.value = `${window.location.origin}/#/Returns/upreturnhistory`;;
+};
+const iframeUrl3 = ref('');
+const iframe3 = ref(false);
+const handlehistorical3 = () => {
+  iframe3.value = true;
+  iframeUrl3.value = `${window.location.origin}/#/Returns/upreturnhistory2`;
+};
+const iframeUrl4 = ref('');
+const iframe4 = ref(false);
+const handlehistorical4 = () => {
+  iframe4.value = true;
+  iframeUrl4.value = `${window.location.origin}/#/Caching/cachingbeforehistory`;
+};
+const iframeUrl5 = ref('');
+const iframe5 = ref(false);
+const handlehistorical5 = () => {
+  iframe5.value = true;
+  iframeUrl5.value = `${window.location.origin}/#/Caching/cachingunhistory`;
+};
+const iframeUrl6 = ref('');
+const iframe6 = ref(false);
+const handlehistorical6 = () => {
+  iframe6.value = true;
+  iframeUrl6.value = `${window.location.origin}/#/Slicecage/slicecagehistory`;
+};
+const iframeUrl7 = ref('');
+const iframe7 = ref(false);
+const handlehistorical7 = () => {
+  iframe7.value = true;
+  iframeUrl7.value = `${window.location.origin}/#/hollow/hellowquiphistory`;
+};
+const iframeUrl8 = ref('');
+const iframe8 = ref(false);
+const handlehistorical8 = () => {
+  iframe8.value = true;
+  iframeUrl8.value = `${window.location.origin}/#/hollow/hellowquiptwohistory`;
+};
+const iframeUrl9 = ref('');
+const iframe9 = ref(false);
+const handlehistorical9 = () => {
+  iframe9.value = true;
+  iframeUrl9.value = `${window.location.origin}/#/hollow/hellowslicecagehistory`;
+};
+const iframeUrl10 = ref('');
+const iframe10 = ref(false);
+const handlehistorical10 = () => {
+  iframe10.value = true;
+  iframeUrl10.value = `${window.location.origin}/#/largescreendisplay/statistics`;
+};
+const transposedData = computed(() => {
+  const keys = Object.keys(fieldNames); // 鎸� fieldNames 鐨勯『搴�
+  return keys.map(key => {
+    const row = { name: fieldNames[key] || key };
+    productionVO.value.forEach((item, index) => {
+      row[`value${index}`] = item[key] ?? ''; // 澶勭悊鍙兘涓嶅瓨鍦ㄧ殑閿�
+    });
+    return row;
+  });
+});
+
+const fieldNames = {
+  date: t('large.date'),
+  countOutOne: t('large.countOutOne'),
+  totalAreaOutOne: t('large.totalAreaOutOne'),
+  countOutTwo: t('large.countOutTwo'),
+  totalAreaOutTwo: t('large.totalAreaOutTwo'),
+  countIn: t('large.countIn'),
+  totalAreaIn: t('large.totalAreaIn'),
+  countOut: t('large.countOut'),
+  totalAreaOut: t('large.totalAreaOut'),
+  hollowCountOutOne: t('large.hollowCountOutOne'),
+  hollowTotalAreaOutOne: t('large.hollowTotalAreaOutOne'),
+  hollowCountOutTwo: t('large.hollowCountOutTwo'),
+  hollowTotalAreaOutTwo: t('large.hollowTotalAreaOutTwo'),
+};
+
+
+</script>
+<template>
+  <div style="height: 500px;">
+    <el-dialog v-model="iframe1" top="5vh" width="95%" @close="iframeUrl1 = ''">
+      <iframe :src="iframeUrl1" marginwidth="2000px" marginheight="2000px" width="100%" height="700px"
+        frameborder="0"></iframe>
+    </el-dialog>
+    <el-dialog v-model="iframe2" top="5vh" width="95%" @close="iframeUrl2 = ''">
+      <iframe :src="iframeUrl2" marginwidth="2000px" marginheight="2000px" width="100%" height="700px"
+        frameborder="0"></iframe>
+    </el-dialog>
+    <el-dialog v-model="iframe3" top="5vh" width="95%" @close="iframeUrl3 = ''">
+      <iframe :src="iframeUrl3" marginwidth="2000px" marginheight="2000px" width="100%" height="700"
+        frameborder="0"></iframe>
+    </el-dialog>
+    <el-dialog v-model="iframe4" top="5vh" width="95%" @close="iframeUrl4 = ''">
+      <iframe :src="iframeUrl4" marginwidth="2000px" marginheight="2000px" width="100%" height="750px"
+        frameborder="0"></iframe>
+    </el-dialog>
+    <el-dialog v-model="iframe5" top="5vh" width="95%" @close="iframeUrl5 = ''">
+      <iframe :src="iframeUrl5" marginwidth="2000px" marginheight="2000px" width="100%" height="750px"
+        frameborder="0"></iframe>
+    </el-dialog>
+    <el-dialog v-model="iframe6" top="5vh" width="95%" @close="iframeUrl6 = ''">
+      <iframe :src="iframeUrl6" marginwidth="2000px" marginheight="2000px" width="100%" height="750px"
+        frameborder="0"></iframe>
+    </el-dialog>
+    <el-dialog v-model="iframe7" top="5vh" width="95%" @close="iframeUrl7 = ''">
+      <iframe :src="iframeUrl7" marginwidth="2000px" marginheight="2000px" width="100%" height="750px"
+        frameborder="0"></iframe>
+    </el-dialog>
+    <el-dialog v-model="iframe8" top="5vh" width="95%" @close="iframeUrl8 = ''">
+      <iframe :src="iframeUrl8" marginwidth="2000px" marginheight="2000px" width="100%" height="750px"
+        frameborder="0"></iframe>
+    </el-dialog>
+    <el-dialog v-model="iframe9" top="5vh" width="95%" @close="iframeUrl9 = ''">
+      <iframe :src="iframeUrl9" marginwidth="2000px" marginheight="2000px" width="100%" height="750px"
+        frameborder="0"></iframe>
+    </el-dialog>
+    <el-dialog v-model="iframe10" top="5vh" width="95%" @close="iframeUrl10 = ''">
+      <iframe :src="iframeUrl10" marginwidth="2000px" marginheight="2000px" width="100%" height="750px"
+        frameborder="0"></iframe>
+    </el-dialog>
+
+    <div class="awatch" style="display: flex;">
+      <!-- 鐢熶骇缁熻 -->
+      <div style="height: 100px;width: 25%;float: right;">
+        <div id="ss" style="width: 100%; display: flex; justify-content: center;">
+          <div ref="chartRef" style="width: 600px; height: 400px;" @dblclick="handlehistorical10()"></div>
+        </div>
+        <div style="width: 100%;height: 245px;display: flex;">
+          <div ref="chartOne" style="width: 100%;"></div>
+        </div>
+        <div style="width: 100%;height: 245px;display: flex;">
+          <div ref="chartTwo" style="width: 100%;"></div>
+        </div>
+      </div>
+      <div style="width: 50%;">
+        <div class="img-screen" alt="Screen">
+          <!-- 閽㈠寲鍗婇�忔槑鑹插潡 -->
+          <div
+            style="width: 80px;height: 40px;top: 315px;left: 130px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
+            <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].countOut : 0 }}{{ $t('large.slice') }}</div>
+            <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].totalAreaOut : 0 }}m虏</div>
+          </div>
+          <!-- 涓┖涓�绾垮崐閫忔槑鑹插潡 -->
+          <div
+            style="width: 80px;height: 40px;top: 235px;left: 450px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
+            <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].hollowCountOutOne : 0 }}{{ $t('large.slice') }}</div>
+            <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].hollowTotalAreaOutOne : 0 }}m虏</div>
+          </div>
+          <!-- 涓┖浜岀嚎鍗婇�忔槑鑹插潡 -->
+          <div
+            style="width: 80px;height: 40px;top: 130px;left: 450px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
+            <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].hollowCountOutTwo : 0 }}{{ $t('large.slice') }}</div>
+            <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].hollowTotalAreaOutTwo : 0 }}m虏</div>
+          </div>
+          <!-- 鍒囧壊浜岀嚎鍗婇�忔槑鑹插潡 -->
+          <div
+            style="width: 80px;height: 40px;top: 542px;left: 410px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
+            <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].countOutOne : 0 }}{{ $t('large.slice') }}</div>
+            <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].totalAreaOutOne : 0 }}m虏</div>
+          </div>
+          <!-- 鍒囧壊涓�绾垮崐閫忔槑鑹插潡 -->
+          <div
+            style="width: 80px;height: 40px;top: 490px;left: 410px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
+            <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].countOutTwo : 0 }}{{ $t('large.slice') }}</div>
+            <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].totalAreaOutTwo : 0 }}m虏</div>
+          </div>
+          <!-- 纾ㄨ竟涓�绾垮崐閫忔槑鑹插潡 -->
+          <div
+            style="width: 80px;height: 40px;top: 369px;left: 450px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
+            <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].countOutOne : 0 }}{{ $t('large.slice') }}</div>
+            <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].totalAreaOutOne : 0 }}m虏</div>
+          </div>
+          <!-- 纾ㄨ竟浜岀嚎鍗婇�忔槑鑹插潡 -->
+          <div
+            style="width: 80px;height: 40px;top: 410px;left: 450px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
+            <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].countOutTwo : 0 }}{{ $t('large.slice') }}</div>
+            <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].totalAreaOutTwo : 0 }}m虏</div>
+          </div>
+          <!-- 閽㈠寲鍓嶅ぇ鐞唟{ $t('large.slice') }}鍗婇�忔槑鑹插潡 -->
+          <div
+            style="width: 80px;height: 40px;top: 380px;left: 290px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
+            <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].countIn : 0 }}{{ $t('large.slice') }}</div>
+            <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].totalAreaIn : 0 }}m虏</div>
+          </div>
+
+          <!-- 閽㈠寲鑹插潡 -->
+          <div v-if="temperingGlassInfoInList > 0" class="tempering"
+            style="width: 44px;height: 19px;top: 284px;left: 178px;position: absolute;background-color: #911005;"></div>
+          <div v-if="temperingGlassInfoList > 0" class="tempering"
+            style="width: 53px;height: 22px;top: 282px;left: 226px;position: absolute;background-color: #911005;"></div>
+          <div v-if="temperingGlassInfoList > 1" class="tempering"
+            style="width: 53px;height: 22px;top: 282px;left: 282px;position: absolute;background-color: #911005;"></div>
+          <!-- 鍒囧壊鍙拌壊鍧� -->
+          <div v-if="engineeringOne.length > 1" class="slicing"
+            style="width: 45px;height: 20px;top: 550px;left: 496px;position: absolute;background-color: #911005;"></div>
+          <div v-if="engineeringTwo.length > 1" class="slicing"
+            style="width: 45px;height: 20px;top: 500px;left: 496px;position: absolute;background-color: #911005;"></div>
+          <!-- 鍘熺墖浠撳偍鑹插潡 -->
+          <div class="raw" style="width: 27px;height: 30px;top: 497px;left: 296px;position: absolute;">
+            <div v-for="(item, index) in rawGlassStorageDetailList.slice(0, 7)" :key="index"
+              :style='"width: " + (item.remainQuantity / 1.8) + "px;height: 5.6px;background-color: #911005;"'></div>
+          </div>
+          <div class="raw" style="width: 27px;height: 45px;top: 535px;left: 296px;position: absolute;">
+            <div v-for="(item, index) in rawGlassStorageDetailList.slice(8, 17)" :key="index"
+              :style='"width: " + (item.remainQuantity / 1.8) + "px;height: 5.6px;background-color: #911005;"'></div>
+          </div>
+          <div class="raw" style="width: 27px;height: 13px;top: 598px;left: 296px;position: absolute;">
+            <div v-for="(item, index) in rawGlassStorageDetailList.slice(18, 20)" :key="index"
+              :style='"width: " + (item.remainQuantity / 1.8) + "px;height: 5.6px;background-color: #911005;"'></div>
+          </div>
+          <div class="raw" style="width: 27px;height: 23px;top: 580px;left: 365px;position: absolute;">
+            <div v-for="(item, index) in rawGlassStorageDetailList.slice(21, 25)" :key="index"
+              :style='"width: " + (item.remainQuantity / 1.8) + "px;height: 5.6px;background-color: #911005;"'></div>
+          </div>
+          <!-- <div class="raw" style="width: 27px;height: 12px;top: 611px;left: 459px;position: absolute;">
+            <div v-for="(item, index) in rawGlassStorageDetailList.slice(26, 27)" :key="index"
+              :style='"width: " + (item.remainQuantity / 1.8) + "px;height: 5.6px;background-color: #911005;"'></div>
+          </div>
+          <div class="raw" style="width: 27px;height: 12px;top: 6676px;left: 459px;position: absolute;">
+            <div v-for="(item, index) in rawGlassStorageDetailList.slice(28, 29)" :key="index"
+              :style='"width: " + (item.remainQuantity / 1.8) + "px;height: 5.6px;background-color: #911005;"'></div>
+          </div> -->
+          <!-- 纾ㄨ竟鑹插潡 -->
+          <div class="container"
+            style="position: relative;width: 15px;height: 15px;top: 500px;left: 638px;position: absolute;">
+            <div v-for="(box, index) in boxes2" :key="index" class="box" :style="box.style"></div>
+          </div>
+          <div class="container"
+            style="position: relative;width: 15px;height: 15px;top: 548px;left: 690px;position: absolute;">
+            <div v-for="(box, index) in boxes" :key="index" class="box" :style="box.style"></div>
+          </div>
+          <!-- 閽㈠寲杩愬姩鑹插潡 -->
+          <div class="container"
+            style="position: relative;width: 15px;height: 15px;top: 370px;left: 195px;position: absolute;background-color: red;">
+            <div v-for="(box, index) in boxes3" :key="index" class="box" :style="box.style"></div>
+          </div>
+          <div class="container"
+            style="position: relative;width: 15px;height: 15px;top: 284px;left: 489px;position: absolute;">
+            <div v-for="(box, index) in boxes4" :key="index" class="box" :style="box.style"></div>
+          </div>
+          <!-- 閽㈠寲鍓嶅ぇ鐞嗙墖鑹插潡 -->
+          <div class="container" v-for="(item, index) in bigStorageCageUsage.slice(0, 1)" :key="index"
+            :style='"position: relative;width: " + (37 * item.percentage / 100) + "px;height: 13px;top: 374px;left: 309px;position: absolute;background-color: #911005;"'>
+          </div>
+          <div class="container" v-for="(item, index) in bigStorageCageUsage.slice(1, 2)" :key="index"
+            :style='"position: relative;width: " + (37 * item.percentage / 100) + "px;height: 13px;top: 390px;left: 309px;position: absolute;background-color: #911005;"'>
+          </div>
+          <div class="container" v-for="(item, index) in bigStorageCageUsage.slice(2, 3)" :key="index"
+            :style='"position: relative;width: " + (37 * item.percentage / 100) + "px;height: 13px;top: 406px;left: 309px;position: absolute;background-color: #911005;"'>
+          </div>
+          <div class="container" v-for="(item, index) in bigStorageCageUsage.slice(3, 4)" :key="index"
+            :style='"position: relative;width: " + (37 * item.percentage / 100) + "px;height: 13px;top: 422px;left: 309px;position: absolute;background-color: #911005;"'>
+          </div>
+          <!-- 涓┖鍓嶅ぇ鐞嗙墖鑹插潡 -->
+          <div class="container" v-for="(item, index) in hollowBigStorageCageUsage.slice(0, 1)" :key="index"
+            :style='"position: relative;width: " + (37 * item.percentage / 100) + "px;height: 13px;top: 265px;left: 662px;position: absolute;background-color: #911005;"'>
+          </div>
+          <div class="container" v-for="(item, index) in hollowBigStorageCageUsage.slice(1, 2)" :key="index"
+            :style='"position: relative;width: " + (37 * item.percentage / 100) + "px;height: 13px;top: 281px;left: 662px;position: absolute;background-color: #911005;"'>
+          </div>
+          <div class="container" v-for="(item, index) in hollowBigStorageCageUsage.slice(2, 3)" :key="index"
+            :style='"position: relative;width: " + (37 * item.percentage / 100) + "px;height: 13px;top: 297px;left: 662px;position: absolute;background-color: #911005;"'>
+          </div>
+          <div class="container" v-for="(item, index) in hollowBigStorageCageUsage.slice(3, 4)" :key="index"
+            :style='"position: relative;width: " + (37 * item.percentage / 100) + "px;height: 13px;top: 313px;left: 662px;position: absolute;background-color: #911005;"'>
+          </div>
+          <div class="container" v-for="(item, index) in hollowBigStorageCageUsage.slice(4, 5)" :key="index"
+            :style='"position: relative;width: " + (37 * item.percentage / 100) + "px;height: 13px;top: 329px;left: 662px;position: absolute;background-color: #911005;"'>
+          </div>
+          <div class="clickable-area" @click="handlehistorical"
+            style="position: relative;width: 108px;height: 134px;top: 478px;left: 290px;"></div>
+        </div>
+        <div style="height: 190px;width: 100%;float: right;">
+          <el-table height="190" ref="table" :data="orderDTOS"
+            :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+            <el-table-column prop="orderId" align="center" :label="$t('large.orderId')" min-width="50" />
+            <el-table-column prop="customerName" align="center" :show-overflow-tooltip="true"
+              :label="$t('large.customerName')" min-width="90" />
+            <el-table-column prop="project" align="center" :label="$t('large.project')" min-width="50" />
+            <el-table-column prop="area" align="center" :label="$t('large.are')" min-width="50" />
+            <el-table-column prop="quantity" align="center" :label="$t('large.quantity')" min-width="50" />
+            <el-table-column prop="percent" align="center" :label="$t('large.percent')" min-width="50" />
+            <el-table-column align="center" :label="$t('large.operate')" min-width="50">
+              <template #default="scope">
+                <el-button type="text" style="margin-left: 10px;margin-bottom: 10px;"
+                  @click="flowCardDetail(scope.row.orderId)">{{ $t('large.mes') }}</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+
+      <div style="height: 100px;width: 25%;float: right;">
+        <div id="ss" style="width: 100%; display: flex; justify-content: center;">
+          <div ref="chartRef2" style="width: 600px; height: 400px;" @dblclick="handlehistorical10()"></div>
+        </div>
+        <div style="width: 100%;height: 245px;display: flex;">
+          <div ref="chartThree" style="width: 100%;"></div>
+        </div>
+        <div style="width: 100%;height: 245px;display: flex;">
+          <div ref="chartFour" style="width: 100%;"></div>
+        </div>
+      </div>
+    </div>
+  </div>
+  <el-dialog v-model="blindc" top="5vh" width="90%">
+    <el-table height="700" ref="table" :data="orderDTOS"
+      :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+      <el-table-column prop="orderId" align="center" :label="$t('large.orderId')" min-width="50" />
+      <el-table-column prop="customerName" align="center" :show-overflow-tooltip="true"
+        :label="$t('large.customerName')" min-width="90" />
+      <el-table-column prop="project" align="center" :label="$t('large.project')" min-width="50" />
+      <el-table-column prop="area" align="center" :label="$t('large.are')" min-width="50" />
+      <el-table-column prop="quantity" align="center" :label="$t('large.quantity')" min-width="50" />
+      <el-table-column prop="percent" align="center" :label="$t('large.percent')" min-width="50" />
+      <el-table-column align="center" :label="$t('large.operate')" min-width="50">
+        <template #default="scope">
+          <el-button type="text" style="margin-left: 10px;margin-bottom: 10px;"
+            @click="flowCardDetail(scope.row.orderId)">{{ $t('large.mes') }}</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+  </el-dialog>
+  <!-- 鍘熺墖浣跨敤璇︽儏 -->
+  <el-dialog v-model="blindb" top="10vh" width="90%">
+    <div style="display: flex;">
+      <el-input v-model="ptnusage.width" style="margin-left: 10px;margin-bottom: 10px;width: 270px;" clearable
+        :placeholder="$t('screendisplay.pwidth')" />
+      <el-input v-model="ptnusage.height" style="margin-left: 10px;margin-bottom: 10px;width: 270px;" clearable
+        :placeholder="$t('screendisplay.pheight')" />
+      <el-input v-model="ptnusage.thickness" style="margin-left: 10px;margin-bottom: 10px;width: 270px;" clearable
+        :placeholder="$t('searchOrder.inthickness')" />
+      <el-input v-model="ptnusage.films" style="margin-left: 10px;margin-bottom: 10px;width: 270px;" clearable
+        :placeholder="$t('film.infilms')" />
+      <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="patternUsage()">{{
+        $t('reportmanage.inquire')
+      }}</el-button>
+    </div>
+    <el-table ref="table" style="margin-top: 20px;height: 650px;" :data="tableDatad"
+      :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+      <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80" />
+      <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80" />
+      <el-table-column prop="patternThickness" align="center" :label="$t('basicData.thickness')" min-width="80" />
+      <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="120" />
+      <el-table-column prop="totalCount" align="center" :label="$t('searchOrder.allnumber')" min-width="120" />
+      <el-table-column prop="count" align="center" :label="$t('searchOrder.cagesnumber')" min-width="120" />
+      <el-table-column prop="finishCount" align="center" :label="$t('screendisplay.upnumber')" min-width="120" />
+      <el-table-column prop="damageCount" align="center" :label="$t('hellow.damagenumber')" min-width="120" />
+    </el-table>
+  </el-dialog>
+  <!-- 娴佺▼鍗¤繘搴� -->
+  <el-dialog v-model="blinda" top="5vh" width="85%">
+    <el-table height="650" ref="table" :data="tableData"
+      :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+      <el-table-column prop="processId" fixed align="center" :label="$t('large.processId')" min-width="150" />
+      <el-table-column prop="glassChild" align="center" :label="$t('large.productname')" min-width="150" />
+      <el-table-column prop="orderNumber" align="center" :label="$t('large.serialnumber')" min-width="110" />
+      <el-table-column prop="technologyNumber" align="center" :label="$t('large.slicemarker')" min-width="110" />
+      <el-table-column prop="width" align="center" :label="$t('large.width')" min-width="110" />
+      <el-table-column prop="height" align="center" :label="$t('large.height')" min-width="110" />
+      <el-table-column prop="quantity" align="center" :label="$t('large.quantity')" min-width="110" />
+      <el-table-column prop="brokenNum" align="center" :label="$t('large.brokenNum')" min-width="100" />
+      <el-table-column prop="inventory" align="center" :label="$t('large.inventory')" min-width="100" />
+      <el-table-column prop="inventoryArea" align="center" :label="$t('large.inventoryarea')" min-width="100" />
+      <el-table-column prop="shippedQuantity" align="center" :label="$t('large.shippedQuantity')" min-width="110" />
+      <!-- <el-table-column prop="reportWorkQuantity" align="center" :label="$t('large.reportWorkQuantity')" min-width="110" />
+      <el-table-column prop="reportWorkQuantityCount" align="center" :label="$t('large.reportWorkQuantityCount')" min-width="110" /> -->
+      <!-- 鍔ㄦ�佺敓鎴愮殑 reportWorkQuantity 鍒� -->
+      <el-table-column v-for="column in dynamicColumns" :key="column.prop" :prop="column.prop" :label="column.label"
+        align="center" min-width="110" />
+    </el-table>
+  </el-dialog>
+</template>
+<style scoped>
+#dt {
+  display: block;
+  float: left;
+  line-height: 20px;
+  margin-left: 100px;
+}
+
+#dta {
+  display: block;
+  float: left;
+  line-height: 20px;
+  margin-left: 80%;
+}
+
+#dialog-footer {
+  text-align: center;
+  margin-top: -15px;
+}
+
+#message {
+  text-align: center;
+  align-items: center;
+  color: black;
+  width: 200px;
+  height: 100px;
+  background-color: #337ecc;
+  margin-left: 28%;
+}
+
+#awatch {
+  height: 460px;
+}
+
+.img-screen {
+  /* max-width: 48%;
+  max-height: 100%; */
+  /* margin-top: 50px; */
+  /* float: left; */
+  position: relative;
+  background-image: url('../../assets/screen.png');
+  width: 795px;
+  height: 700px;
+  background-size: contain;
+  background-repeat: no-repeat;
+  /* background-position: center; */
+  /* width: 100%; 
+  height: 0; 
+  padding-bottom: 50%;  */
+}
+
+.clickable-area {
+  cursor: pointer;
+  /* 鎸囩ず杩欐槸涓�涓彲鐐瑰嚮鐨勫尯鍩� */
+  text-align: center;
+  /* 濡傛灉闇�瑕侊紝鍙互鍦╠iv涓坊鍔犳枃鏈苟灞呬腑 */
+  line-height: 95px;
+  /* 濡傛灉闇�瑕侊紝浣挎枃鏈瀭鐩村眳涓� */
+}
+
+/* .awatch{
+  height: 460px;
+  /* max-width: 100%; */
+.box {
+  transition: transform 0.016s linear;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/largescreendisplay/statistics.vue b/UI-Project/src/views/largescreendisplay/statistics.vue
new file mode 100644
index 0000000..2fcea07
--- /dev/null
+++ b/UI-Project/src/views/largescreendisplay/statistics.vue
@@ -0,0 +1,226 @@
+<template>
+  <div>
+    <div style="display: flex;width: 1770px;">
+      <el-date-picker v-model="timeRange" type="datetimerange" range-separator="鑷�"
+        :start-placeholder="$t('reportmanage.starttime')" style="margin-left: 15px;" value-format="YYYY-MM-DD hh:mm:ss"
+        :end-placeholder="$t('reportmanage.endtime')">
+      </el-date-picker>
+      <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;"
+        @click="sethistorical()">{{ $t('reportmanage.inquire') }}</el-button>
+    </div>
+    <el-table ref="table" style="margin-top: 20px;height: 580px;width: 1770px;" :data="tableDatax"
+      :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+      <el-table-column prop="date" align="center" :label="$t('large.date')" min-width="70" />
+        <el-table-column prop="countOutOne" align="center" :label="$t('large.countOutOne')" min-width="40" />
+        <el-table-column prop="totalAreaOutOne" align="center" :label="$t('large.totalAreaOutOne')" min-width="40" />
+        <el-table-column prop="countOutTwo" align="center" :label="$t('large.countOutTwo')" min-width="50" />
+        <el-table-column prop="totalAreaOutTwo" align="center" :label="$t('large.totalAreaOutTwo')" min-width="50" />
+        <el-table-column prop="countIn" align="center" :label="$t('large.countIn')" min-width="50" />
+        <el-table-column prop="totalAreaIn" align="center" :label="$t('large.totalAreaIn')" min-width="50" />
+        <el-table-column prop="countOut" align="center" :label="$t('large.countOut')" min-width="40" />
+        <el-table-column prop="totalAreaOut" align="center" :label="$t('large.totalAreaOut')" min-width="40" />
+        <el-table-column prop="hollowCountOutOne" align="center" :label="$t('large.hollowCountOutOne')" min-width="40" />
+        <el-table-column prop="hollowTotalAreaOutOne" align="center" :label="$t('large.hollowTotalAreaOutOne')" min-width="40" />
+        <el-table-column prop="hollowCountOutTwo" align="center" :label="$t('large.hollowCountOutTwo')" min-width="40" />
+        <el-table-column prop="hollowTotalAreaOutTwo" align="center" :label="$t('large.hollowTotalAreaOutTwo')"
+                         min-width="40"/>
+    </el-table>
+    <div style="margin-top: 20px;margin-left: 40%;">
+      <el-pagination v-model:current-page="currentPage2" :page-size="pageSize" :size="large" :disabled="disabled"
+        layout="prev, pager, next, jumper" :total="totalRecords" @current-change="handlePageChange2"
+        style="margin-top: 10px;" />
+    </div>
+  </div>
+</template>
+<script lang="ts" setup>
+import { useI18n } from 'vue-i18n'
+import { useRouter } from "vue-router"
+import request from "@/utils/request"
+import { host, WebSocketHost } from '@/utils/constants'
+import { onBeforeUnmount, onMounted, onUnmounted, reactive, ref } from "vue";
+import { closeWebSocket, initializeWebSocket } from '@/utils/WebSocketService';
+import { ElMessage, ElMessageBox } from 'element-plus'
+const { t } = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+import { inject } from 'vue';
+const globalDate = inject('globalDate');
+const router = useRouter()
+const timeRange = ref([])
+const selectValuesa = reactive([]);
+const tableDatax = ref([])
+const currentPage2 = ref(1)
+const totalRecords = ref(0)
+const rawGlassHeight = ref('');
+const rawGlassThickness = ref('');
+const rawGlassWidth = ref('');
+const rawGlassfilmsId = ref('');
+const slot = ref('');
+let getglobalDate = window.localStorage.getItem('getglobalDate')
+const historical = async () => {
+  try {
+    let startTime = window.localStorage.getItem('startTime')
+    const response = await request.post("/loadGlass/largenScreen/queryDailyProduction", {
+      pageNo: 1,
+      pageSize: 20,
+      beginDate: startTime,
+      endDate: getglobalDate
+    })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      const formattedData = response.data.records.map(record => ({
+        ...record,
+        formattedCreateTime: formatTimestamp(record.createTime),
+        formattedUpdateTime: formatTimestamp(record.updateTime),
+      }));
+      // tableDatax.value = response.data.records;
+      tableDatax.value = formattedData;
+      totalRecords.value = response.data.total / 2 || 0
+    } else {
+      ElMessage.error(response.message);
+    }
+  }
+  catch (error) {
+    console.error(error);
+  }
+}
+const handlePageChange2 = (newPage) => {
+  currentPage2.value = newPage;
+  window.localStorage.setItem('pagenumber', currentPage2.value)
+  historicala(currentPage2.value);
+};
+const historicala = async (page) => {
+  try {
+    let pslot = ''
+    let celllist = []
+    if (selectValuesa[0] != null && selectValuesa[0] != 'undefined') {
+      if (selectValuesa[0] != "") {
+        celllist = [selectValuesa[0]];
+      }
+    }
+    if (slot.value != "") {
+      pslot = slot.value
+    } else {
+      pslot = '0'
+    }
+    let page = window.localStorage.getItem('pagenumber')
+    let startTime = window.localStorage.getItem('startTime')
+    const response = await request.post("/loadGlass/largenScreen/queryDailyProduction", {
+      pageNo: page,
+      pageSize: 20,
+      beginDate: (timeRange.value && timeRange.value[0]) || '',
+      endDate: (timeRange.value && timeRange.value[1]) || '',
+    })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      const formattedData = response.data.records.map(record => ({
+        ...record,
+        formattedCreateTime: formatTimestamp(record.createTime),
+        formattedUpdateTime: formatTimestamp(record.updateTime),
+      }));
+      // tableDatax.value = response.data.records;
+      tableDatax.value = formattedData;
+      totalRecords.value = response.data.total / 2 || 0
+    } else {
+      ElMessage.error(response.message);
+    }
+  }
+  catch (error) {
+    console.error(error);
+  }
+}
+// 鍘嗗彶鏌ヨ鐐瑰嚮
+const sethistorical = async () => {
+  try {
+    let pslot = ''
+    let celllist = []
+    if (selectValuesa[0] != null && selectValuesa[0] != 'undefined') {
+      if (selectValuesa[0] != "") {
+        celllist = [selectValuesa[0]];
+      }
+    }
+    if (slot.value != "") {
+      pslot = slot.value
+    } else {
+      pslot = '0'
+    }
+    let startTime = window.localStorage.getItem('startTime')
+    let page = window.localStorage.getItem('pagenumber')
+    const response = await request.post("/loadGlass/largenScreen/queryDailyProduction", {
+      pageNo: 1,
+      pageSize: 20,
+      beginDate: (timeRange.value && timeRange.value[0]) || '',
+      endDate: (timeRange.value && timeRange.value[1]) || '',
+    })
+    if (response.code == 200) {
+      currentPage2.value = 1
+      ElMessage.success(response.message);
+      const formattedData = response.data.records.map(record => ({
+        ...record,
+        formattedCreateTime: formatTimestamp(record.createTime),
+        formattedUpdateTime: formatTimestamp(record.updateTime),
+      }));
+      // tableDatax.value = response.data.records;
+      tableDatax.value = formattedData;
+      totalRecords.value = response.data.total / 2 || 0
+    } else {
+      ElMessage.error(response.message);
+    }
+  }
+  catch (error) {
+    console.error(error);
+  }
+}
+// 鏍煎紡鍖栨椂闂存埑涓哄勾鏈堟棩鏃堕棿瀛楃涓茬殑鍑芥暟
+function formatTimestamp(timestamp) {
+  const date = new Date(timestamp);
+  const year = date.getFullYear();
+  const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂
+  const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂
+  const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級
+  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+// 鏍煎紡鍖栧悗绔椂闂村苟璁$畻涓�鍛ㄥ墠鐨勬椂闂�
+const defaultTime = ref<[Date, Date]>([new Date(), new Date()]);
+function parseAndSetTime() {
+  const backendTime = new Date(getglobalDate);
+  const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 鍑忓幓7澶�
+  oneWeekAgo.setHours(0, 0, 0, 0);
+  timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
+  window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
+}
+function getStatusTypeb(taskState: number) {
+  switch (taskState) {
+    case 0:
+      return 'primary';
+    case 1:
+      return 'success';
+    case 2:
+      return 'info';
+  }
+}
+function getStatusTextb(taskState: number) {
+  switch (taskState) {
+    case 0:
+      return t('searchOrder.empty');
+    case 1:
+      return t('film.execution');
+    case 2:
+      return t('searchOrder.endtask');
+  }
+}
+function getStatusTypea(taskRunning: number) {
+  switch (taskRunning) {
+    case 0:
+      return 'primary';
+    case 1:
+      return 'success';
+  }
+}
+onMounted(() => {
+  parseAndSetTime();
+  historical();
+});
+</script>
+<style scoped></style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/purchaseOrder/Create.vue b/UI-Project/src/views/mm/purchaseOrder/Create.vue
new file mode 100644
index 0000000..0fc1826
--- /dev/null
+++ b/UI-Project/src/views/mm/purchaseOrder/Create.vue
@@ -0,0 +1,724 @@
+<template>
+  <el-header height="auto">
+    <el-descriptions
+        class="margin-top"
+        title=""
+        :column="4"
+        :size="'default'"
+        border
+        :rules="rules"
+        :model="ruleForm"
+    >
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy" prop="name">
+        <template #label>
+          <span style="color:red">*</span>
+          閲囪喘绫诲瀷
+        </template>
+<!--        <el-select v-model="form.buyType" class="m-2" placeholder="閫夋嫨閲囪喘绫诲瀷" clearable>-->
+        <el-select v-model="ruleForm.name" class="m-2" placeholder="閫夋嫨閲囪喘绫诲瀷" clearable>
+          <el-option
+              v-for="item in CGTypeOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+          />
+        </el-select>
+      </el-descriptions-item >
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          <span style="color:red">*</span>
+          閲囪喘缁勭粐
+        </template>
+        <el-input v-model="ruleForm.name" placeholder="閲囪喘缁勭粐" clearable prop="name"></el-input>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          <span style="color:red">*</span>
+          渚涘簲鍟�
+        </template>
+        <el-cascader
+            placeholder="閫夋嫨渚涘簲鍟�"
+            :options="buyerOptions"
+            filterable
+            clearable
+            empty-text="empty-text"
+            :v-model="form.supplier"
+        >
+        </el-cascader>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          <span style="color:red">*</span>
+          閲囪喘閮ㄩ棬
+        </template>
+        <el-select v-model="cgBuMen" class="m-2" placeholder="閫夋嫨閲囪喘閮ㄩ棬" clearable>
+          <el-option
+              v-for="item in CGBuMenOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+          />
+        </el-select>
+      </el-descriptions-item>
+
+
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          <span style="color:red">*</span>
+          閲囪喘鍛�
+        </template>
+        <el-select v-model="form.buyer" class="m-2" placeholder="閫夋嫨閲囪喘鍛�" clearable>
+          <el-option
+              v-for="item in BuyerOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+          />
+        </el-select>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy"
+      >
+        <template #label>
+          <span style="color:red">*</span>
+          鍒惰〃鏃ユ湡
+        </template>
+        <el-date-picker
+            v-model="form.date"
+            type="date"
+            placeholder="閫夋嫨鍒惰〃鏃ユ湡"
+
+        />
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy"></el-descriptions-item>
+    </el-descriptions>
+
+  </el-header>
+
+  <el-main style="padding-top: 5px;height:100%">
+    <!--    <el-button class="mt-4" style="width: 10%" @click="onAddItem"
+        >娣诲姞
+        </el-button>-->
+
+    <vxe-grid
+
+        max-height="500"
+        @filter-change="filterChanged"
+        class="mytable-scrollbar"
+        ref="xGrid"
+        v-bind="gridOptions"
+        @="gridEvents"
+    >
+
+      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
+      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+      <template #content="{ row}">
+        <ul class="expand-wrapper">
+          <li v-for="(item,key,index) in row">
+            <span style="font-weight: bold">{{ key + ':  ' }}</span>
+            <span>{{ item }}</span>
+          </li>
+        </ul>
+      </template>
+
+      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
+      <template #button_slot="{ row }">
+        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
+        <!--          <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
+        <!--          <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
+      </template>
+
+      <template #num1_filter="{ column, $panel }">
+        <div>
+          <div v-for="(option, index) in column.filters" :key="index">
+            <el-input v-model="option.data" @input="changeFilterEvent($event, option, $panel)" />
+          </div>
+        </div>
+      </template>
+    </vxe-grid>
+
+  </el-main>
+
+</template>
+
+<script lang="ts" setup>
+import {ref, reactive} from 'vue'
+import {useRouter} from "vue-router";
+import {ElMessage, ElMessageBox} from "element-plus";
+
+let router = useRouter()
+
+//缁勪欢鎺ユ敹鍙傛暟
+const gridOptions = reactive({
+  border: "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe: true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'CustomerList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
+  showOverflow: true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  columns: [
+    //{title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},
+    {type: 'seq', fixed: "left", title: ' ', width: 50},
+    {type: 'checkbox', fixed: "left", title: '', width: 50},
+    //{type: 'expand', title: '璇︽儏', fixed: "left", slots: {content: 'content'}, width: 50},
+    {
+      field: 'cgdh',
+      width: '10%',
+      title: '鐗╂枡缂栫爜',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'cgzt',
+      width: '10%',
+      title: '鐗╂枡鍚嶇О',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'gys',
+      width: '10%',
+      title: '浜у湴',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'w',
+      width: '8%',
+      title: '瀹藉害', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'g',
+      width: '8%',
+      title: '楂樺害', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true,
+      type: 'number'
+    },
+    {
+      field: 'h',
+      width: '8%',
+      title: '鍘氬害', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'xh',
+      width: '8%',
+      title: '鍨嬪彿',/*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'dw',
+      width: '8%',
+      title: '鍗曚綅', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'sl',
+      width: '8%',
+      title: '鏁伴噺', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'sl',
+      width: '8%',
+      title: '鎿嶄綔鏁伴噺', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}}
+    },
+    {
+      field: 'sl',
+      width: '12%',
+      title: '绠辨暟',    /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'je',
+      width: '8%',
+      title: '鍗曠墖闈㈢Н', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'je',
+      width: '12%',
+      title: '鍗曚环',   /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: '6',
+      width: '8%',
+      title: '鎬绘暟閲�',   /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'sl',
+      width: '8%',
+      title: '鎬婚潰绉�', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'yl',
+      width: '10%',
+      title: '鎬婚噾棰�',/*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    },
+    {
+      field: 'yl',
+      width: '10%',
+      title: '澶囨敞', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+      sortable: true
+    }
+  ],//琛ㄥご鍙傛暟
+  toolbarConfig: {
+    buttons: [
+      {type: 'text'},
+      {
+        'name': '鏂板',
+
+        'code': 'Add',
+      },
+      {
+        'name': '绉婚櫎',
+
+        'code': 'Remove'
+      },
+      {
+        'name': '淇濆瓨璁㈠崟',
+        status: 'primary',
+        'code': 'Save'
+      }, {
+        'name': '鍏ュ簱',
+        status: 'primary',
+        'code': 'Storage'
+      }/*,
+      {
+        'name': '閫�璐�',
+        status: 'primary',
+        'code': 'Return'
+      },
+      {
+        'name': '杩斿洖鏌ヨ',
+
+        'code':'GoSelect'
+      }*/],
+    import: false,
+    export: true,
+    print: true,
+    zoom: true,
+    custom: true,
+    tools: [],
+
+  },//琛ㄥご鎸夐挳
+  /*data: [{},{},{},{},{},{}],//table body瀹為檯鏁版嵁*/
+  data: [{}, {}, {}],//table body瀹為檯鏁版嵁
+  mergeFooterItems: [
+    {row: 0, col: 0, rowspan: 1, colspan: 3}
+  ],//鍚堝苟鑴�
+  footerMethod({columns, data}) {//椤佃剼鍑芥暟
+    return [
+      columns.map((column, columnIndex) => {
+        if (columnIndex === 0) {
+          return '鍚堣:'
+        }
+        /* if (props.tableProp.footList.includes(column.field)) {
+           return sumNum(data, column.field)
+         }*/
+        return ''
+      })
+    ]
+  },
+
+})
+
+const xGrid = ref()
+const gridEvents = {
+  toolbarButtonClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+//鏂板
+        case 'Add': {
+          const record = {
+            checked: false
+          }
+          $grid.insertAt(record, 0).then(({row}) => {
+            $grid.setEditRow(row)
+          })
+          break
+        }
+//绉婚櫎
+        case 'Remove': {
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�','warning');
+            return
+          } else {
+
+            MessageConfirmShow('绉婚櫎','鏄惁纭绉婚櫎閫変腑鐨�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒');
+
+          }
+          break
+        }
+//淇濆瓨
+        case 'Save': {
+          /*if (form.buyItem === null || form.buyItem === '') {
+            MessageShow('閲囪喘缁勭粐涓嶅彲涓虹┖','warning');
+            return;
+          }
+*/
+          //閫変腑鏁版嵁
+          /* const $table = this.$refs.xTable
+           const selectRecords = $table.getCheckboxRecords()*/
+//+$grid.rows.number
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�','warning');
+            return
+          } else {
+
+
+            MessageConfirmShow('淇濆瓨璁㈠崟','鏄惁纭畾淇濆瓨褰撳墠璁㈠崟淇℃伅');
+          }
+          break
+        }
+//鍏ュ簱
+        case 'Storage': {
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�','warning');
+            return
+          } else {
+            MessageConfirmShow('鍏ュ簱','鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭鍏ュ簱锛�')
+          }
+          break
+        }
+//閫�搴�
+        case 'Return': {
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�','warning');
+            return
+          } else {
+
+
+          }
+          break
+        }
+
+      }
+    }
+  },
+  toolbarToolClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+        case 'myPrint': {
+          $grid.print()
+          break
+        }
+      }
+    }
+  },
+}
+
+
+import type { FormInstance, FormRules } from 'element-plus'
+
+
+
+
+interface RuleForm {
+  name: string
+  region: string
+  count: string
+  date1: string
+  date2: string
+  delivery: boolean
+  type: string[]
+  resource: string
+  desc: string
+}
+const ruleFormRef = ref<FormInstance>()
+const ruleForm = reactive<RuleForm>({
+  name: '',
+  region: '',
+  count: '',
+  date1: '',
+  date2: '',
+  delivery: false,
+  type: [],
+  resource: '',
+  desc: '',
+})
+const rules = reactive<FormRules<RuleForm>>({
+  name: [
+    { required: true, message: 'Please input Activity name', trigger: 'blur' },
+    { min: 3, max: 5, message: 'Length should be 3 to 5', trigger: 'blur' },
+  ],
+  region: [
+    {
+      required: true,
+      message: 'Please select Activity zone',
+      trigger: 'change',
+    },
+  ],
+  count: [
+    {
+      required: true,
+      message: 'Please select Activity count',
+      trigger: 'change',
+    },
+  ],
+  date1: [
+    {
+      type: 'date',
+      required: true,
+      message: 'Please pick a date',
+      trigger: 'change',
+    },
+  ],
+  date2: [
+    {
+      type: 'date',
+      required: true,
+      message: 'Please pick a time',
+      trigger: 'change',
+    },
+  ],
+  type: [
+    {
+      type: 'array',
+      required: true,
+      message: 'Please select at least one activity type',
+      trigger: 'change',
+    },
+  ],
+  resource: [
+    {
+      required: true,
+      message: 'Please select activity resource',
+      trigger: 'change',
+    },
+  ],
+  desc: [
+    { required: true, message: 'Please input activity form', trigger: 'blur' },
+  ],
+})
+
+
+const form = reactive({
+  name: '',
+  region: '',
+  date: '',
+  delivery: false,
+  type: [],
+  resource: '',
+  desc: '',
+  supplier: '',
+  buyer: '',
+  buyItem: '',
+  buyType: ''
+
+})
+
+//渚涘簲鍟�
+const buyerOptions = [
+  {value: '0', label: '渚涘簲鍟�1'},
+  {value: '1', label: '渚涘簲鍟�2'},
+  {value: '2', label: '渚涘簲鍟�3'},
+  {value: '3', label: '渚涘簲鍟�4'},
+  {value: '4', label: '渚涘簲鍟�5'},
+  {value: '5', label: '渚涘簲鍟�6'},
+]
+
+
+const value = ref('')
+const cgBuMen = ref('')
+
+//閲囪喘绫诲瀷
+const CGTypeOptions = [
+  {
+    value: '1',
+    label: '鏍囧噯绫诲瀷',
+  },
+  {
+    value: '2',
+    label: '闈炴爣鍑嗙被鍨�',
+  },
+  {
+    value: '3',
+    label: '杩藉姞閲囪喘',
+  },
+
+]
+
+//閲囪喘閮ㄩ棬
+const CGBuMenOptions = [
+  {
+    value: '0',
+    label: '閲囪喘鍗庡寳閮�',
+  },
+  {
+    value: '1',
+    label: '閲囪喘涓滃崡閮�',
+  },
+  {
+    value: '2',
+    label: '閲囪喘瑗垮寳閮�',
+  },
+  {
+    value: '3',
+    label: '閲囪喘涓師閮�',
+  },
+  {
+    value: '4',
+    label: '閲囪喘澶栧浗閮�',
+  },
+
+]
+
+//閲囪喘浜�
+const BuyerOptions = [
+  {
+    value: '0',
+    label: '閲囪喘鍛�1',
+  },
+  {
+    value: '1',
+    label: '閲囪喘鍛�2',
+  },
+  {
+    value: '2',
+    label: '閲囪喘鍛�3',
+  },
+  {
+    value: '3',
+    label: '閲囪喘鍛�4',
+  },
+  {
+    value: '4',
+    label: '閲囪喘鍛�5',
+  },
+
+]
+
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type){
+  const $grid = xGrid.value
+  switch (type) {
+    case '鍏ュ簱':
+      //鍏ュ簱閫昏緫浠g爜TODO
+      MessageShow('鍏ュ簱鎴愬姛锛�', 'success');
+      break;
+    case '閫�璐�':
+      //閫�璐ч�昏緫浠g爜TODO
+      MessageShow('閫�璐ф垚鍔燂紒', 'success');
+      break;
+    case '淇濆瓨璁㈠崟':
+      //淇濆瓨璁㈠崟閫昏緫浠g爜TODO
+      const submitForm = async (formEl: FormInstance | undefined) => {
+        if (!formEl) return
+        await formEl.validate((valid, fields) => {
+          if (valid) {
+            console.log('submit!')
+          } else {
+            console.log('error submit!', fields)
+          }
+        })
+      }
+      MessageShow('璁㈠崟淇濆瓨鎴愬姛锛�', 'success');
+      break;
+    case '绉婚櫎':
+      $grid.removeCheckboxRow();
+      break;
+    default:
+      MessageShow('鏈煡鎿嶄綔锛�', 'error');
+      break;
+  }
+  return true;
+
+}
+
+//鎻愮ず淇℃伅
+const MessageShow = (content, type ) => {
+
+  ElMessage({
+    message: content,
+    type: type,
+    showClose: true,
+  })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title='鎿嶄綔纭鎻愮ず', type='warning') => {
+
+  ElMessageBox.confirm(
+      content,
+      title,
+      {
+        cancelButtonText: '鍙栨秷',
+        confirmButtonText: '纭畾',
+        type: type,
+        center: true,
+      }
+  )
+      //鐐瑰嚮浜嗙‘瀹�
+      .then(() => {
+        return logicExecute(czType);
+      })
+      //鐐瑰嚮浜嗗彇娑�
+      .catch(() => {
+        return false;
+      })
+}
+
+
+</script>
+<style scoped>
+:deep(.el-descriptions__table .label-diy) {
+  text-align: center;
+  width: 100px;
+  /*font-size: large;*/
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/purchaseOrder/CreateHeader.vue b/UI-Project/src/views/mm/purchaseOrder/CreateHeader.vue
new file mode 100644
index 0000000..dce1027
--- /dev/null
+++ b/UI-Project/src/views/mm/purchaseOrder/CreateHeader.vue
@@ -0,0 +1,739 @@
+<template>
+  <el-header height="auto">
+
+
+  </el-header>
+
+  <el-main style="padding-top: 5px;height:100%">
+
+    <!--    鍒涘缓琛ㄥご妯℃嫙鏍峰紡涓�-->
+    <div>鍒涘缓琛ㄥご绫讳竴</div>
+    <el-form label-width="100px" :inline="true" :model="formInline" class="demo-form-inline">
+      <div class="order-primary" style="background-color: white; border: #181818 1px solid">
+        <el-row>
+          <el-col class="elcolStyle" :span="2">
+            <el-text>*椤圭洰鍚嶇О锛�</el-text>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-input/>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-text>*瀹㈡埛閫夋嫨锛�</el-text>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-select clearable placeholder=" ">
+              <el-option/>
+            </el-select>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-text>*璁㈠崟绫诲瀷锛�</el-text>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-select clearable placeholder=" ">
+              <el-option/>
+            </el-select>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-text>璁㈠崟鍒嗙被锛�</el-text>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-select clearable placeholder=" ">
+              <el-option/>
+            </el-select>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-text>鍟嗘爣閫夐」锛�</el-text>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-select clearable placeholder=" ">
+              <el-option/>
+            </el-select>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-text>鍖呰鏂瑰紡锛�</el-text>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-select clearable placeholder=" ">
+              <el-option/>
+            </el-select>
+          </el-col>
+          <!--      <el-col :span="2"><el-text  /></el-col>-->
+        </el-row>
+        <el-row>
+          <el-col class="elcolStyle" :span="2">
+            <el-text>閿�鍞崟鍙凤細</el-text>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-text/>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-text>浜よ揣鏃ユ湡锛�</el-text>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-date-picker
+                type="week"
+                format="[Week] ww"
+                placeholder="閫夋嫨鏃ユ湡" style="width: 100%"/>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-text>鎵规锛�</el-text>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-input/>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-text>璁$畻鏂瑰紡锛�</el-text>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-select clearable placeholder=" ">
+              <el-option/>
+            </el-select>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-text>*涓氬姟鍛橈細</el-text>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-select clearable placeholder=" ">
+              <el-option/>
+            </el-select>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-text>閾濇潯鏂瑰紡锛�</el-text>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-select clearable placeholder=" ">
+              <el-option/>
+            </el-select>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col class="elcolStyle" :span="2">
+            <el-text>鎬婚噾棰濓細</el-text>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-text/>
+          </el-col>
+
+          <el-col class="elcolStyle" :span="2">
+            <el-text>鍚堝悓缂栧彿锛�</el-text>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-input/>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-text>瀹㈡埛鎵规锛�</el-text>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-text/>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-text>鑱旂郴浜猴細</el-text>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-input/>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-text>鑱旂郴鐢佃瘽锛�</el-text>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-input/>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-text>閫佽揣鍦板潃锛�</el-text>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-input/>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col class="elcolStyle" :span="2">
+            <el-text>鍏朵粬閲戦锛�</el-text>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-text/>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-text>鍏朵粬閲戦澶囨敞锛�</el-text>
+          </el-col>
+          <el-col class="elcolStyle" :span="2">
+            <el-text/>
+          </el-col>
+
+        </el-row>
+      </div>
+    </el-form>
+
+    <br/>
+    <div>鍒涘缓琛ㄥご绫讳簩</div>
+    <!--    鍒涘缓琛ㄥご妯℃嫙鏍峰紡浜�-->
+    <!--    <el-form label-width="80px" :inline="true" :model="formInline2" class="demo-form-inline">-->
+    <div class="header2">
+      <el-row :gutter="10" style="height: 35px">
+        <el-col :span="4">
+          <el-form-item label="椤圭洰鍚嶇О" class="item-style">
+            <el-input></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item label="瀹㈡埛閫夋嫨" class="item-style" prop="name">
+            <el-select v-model="cgBuMen" class="m-2" placeholder="閫夋嫨閲囪喘閮ㄩ棬" clearable>
+              <el-option
+                  v-for="item in CGBuMenOptions"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+              />
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item label="璁㈠崟绫诲瀷" class="item-style">
+            <el-cascader
+                placeholder="璁㈠崟绫诲瀷"
+                :options="buyerOptions"
+                filterable
+                clearable
+                empty-text="empty-text"
+                :v-model="form.supplier"
+            >
+            </el-cascader>
+          </el-form-item>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item label="璁㈠崟鍒嗙被" class="item-style">
+            <el-select v-model="form.buyer" class="m-2" placeholder="璁㈠崟鍒嗙被" clearable>
+              <el-option
+                  v-for="item in BuyerOptions"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+              />
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item label="鍟嗗搧閫夐」" class="item-style">
+            <el-select v-model="form.buyer" class="m-2" placeholder="鍟嗗搧閫夐」" clearable>
+              <el-option
+                  v-for="item in BuyerOptions"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+              />
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item label="鍖呰鏂瑰紡" class="item-style">
+            <el-select v-model="form.buyer" class="m-2" placeholder="鍖呰鏂瑰紡" clearable>
+              <el-option
+                  v-for="item in BuyerOptions"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+              />
+            </el-select>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="10" style="height: 35px">
+        <el-col :span="4">
+          <el-form-item label="閿�鍞崟鍙�" class="item-style">
+            <el-input></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item label="浜よ揣鏃ユ湡" class="item-style">
+            <el-date-picker
+                type="week"
+                format="[Week] ww"
+                placeholder="閫夋嫨鏃ユ湡" style="width: 100%"/>
+          </el-form-item>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item label="璁㈠崟鎵规" class="item-style">
+            <el-input></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item label="璁$畻鏂瑰紡" class="item-style">
+            <el-select v-model="form.buyer" class="m-2" placeholder="璁$畻鏂瑰紡" clearable>
+              <el-option
+                  v-for="item in BuyerOptions"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+              />
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item label="涓氬姟鍛�" class="item-style">
+            <el-select v-model="form.buyer" class="m-2" placeholder="涓氬姟鍛�" clearable>
+              <el-option
+                  v-for="item in BuyerOptions"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+              />
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item label="閾濇潯鏂瑰紡" class="item-style">
+            <el-select v-model="form.buyer" class="m-2" placeholder="閾濇潯鏂瑰紡" clearable>
+              <el-option
+                  v-for="item in BuyerOptions"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+              />
+            </el-select>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="10" style="height: 35px">
+        <el-col :span="4">
+          <el-form-item label="鎬婚噾棰�" class="item-style">
+            <el-input></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item label="鍚堝悓缂栧彿" class="item-style">
+            <el-input></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item label="瀹㈡埛鎵规" class="item-style">
+            <el-input></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item label="鑱旂郴浜�" class="item-style">
+            <el-input></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item label="鑱旂郴鐢佃瘽" class="item-style">
+            <el-input></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item label="閫佽揣鍦板潃" class="item-style">
+            <el-input></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="10" style="height: 35px">
+        <el-col :span="4">
+          <el-form-item label="鍏朵粬閲戦" class="item-style">
+            <el-input></el-input>
+          </el-form-item>
+        </el-col>
+        <!--          <el-col :span="4">
+                    <span>鍏朵粬閲戦澶囨敞</span>
+                    <el-input ></el-input>
+                  </el-col>-->
+        <el-col :span="4">
+          <el-form-item label="鍏朵粬閲戦澶囨敞" class="item-style">
+            <el-input></el-input>
+          </el-form-item>
+        </el-col>
+
+      </el-row>
+
+    </div>
+    <!--    </el-form>-->
+
+    <!--    鍒涘缓琛ㄥご妯℃嫙鏍峰紡涓�-->
+    <br/>
+    <div>鍒涘缓琛ㄥご绫讳笁</div>
+    <!--    <el-form label-width="100px" :inline="true" :model="formInline3" class="demo-form-inline">-->
+    <el-descriptions
+        class="margin-top"
+        title=""
+        :column="6"
+        :size="'small'"
+        border
+    >
+
+      <el-descriptions-item>
+        <template #label>
+          <span style="color:red">*</span>
+          椤圭洰鍚嶇О
+        </template>
+        <el-input></el-input>
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template #label>
+          <span style="color:red">*</span>
+          瀹㈡埛閫夋嫨
+        </template>
+        <el-select></el-select>
+
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template #label>
+          <span style="color:red">*</span>
+          璁㈠崟绫诲瀷
+        </template>
+        <el-select></el-select>
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template #label>
+          <span style="color:red">*</span>
+          璁㈠崟鍒嗙被
+        </template>
+        <el-select></el-select>
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template #label>
+          <span style="color:red">*</span>
+          鍟嗘爣閫夐」
+        </template>
+        <el-select></el-select>
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template #label>
+          <span style="color:red">*</span>
+          鍖呰鏂瑰紡
+        </template>
+        <el-select></el-select>
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template #label>
+          <span style="color:red">*</span>
+          閿�鍞崟鍙�
+        </template>
+        <el-input></el-input>
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template #label>
+          <span style="color:red">*</span>
+          浜よ揣鏃ユ湡
+        </template>
+        <el-date-picker
+            type="week"
+            format="[Week] ww"
+            placeholder="閫夋嫨鏃ユ湡" style="width: 100%"/>
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template #label>
+          <span style="color:red">*</span>
+          鎵规
+        </template>
+        <el-input></el-input>
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template #label>
+          <span style="color:red">*</span>
+          璁$畻鏂瑰紡
+        </template>
+        <el-select></el-select>
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template #label>
+          <span style="color:red">*</span>
+          涓氬姟鍛�
+        </template>
+        <el-select></el-select>
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template #label>
+          閾濇潯鏂瑰紡
+        </template>
+        <el-select></el-select>
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template #label>
+          鎬婚噾棰�
+        </template>
+        <el-input></el-input>
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template #label>
+          鍚堝悓缂栧彿
+        </template>
+        <el-input></el-input>
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template #label>
+          瀹㈡埛鎵规
+        </template>
+        <el-input></el-input>
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template #label>
+          鑱旂郴浜�
+        </template>
+        <el-input></el-input>
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template #label>
+          鑱旂郴鐢佃瘽
+        </template>
+        <el-input></el-input>
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template #label>
+          閫佽揣鍦板潃
+        </template>
+        <el-input></el-input>
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template #label>
+
+          鍏朵粬閲戦
+        </template>
+        <el-input></el-input>
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template #label>
+          鍏朵粬閲戦澶囨敞
+        </template>
+       <el-input />
+      </el-descriptions-item>
+
+      <el-descriptions-item></el-descriptions-item>
+<!--      <el-descriptions-item></el-descriptions-item>
+      <el-descriptions-item></el-descriptions-item>
+      <el-descriptions-item></el-descriptions-item>
+      <el-descriptions-item></el-descriptions-item>-->
+    </el-descriptions>
+
+    <!--    </el-form>-->
+  </el-main>
+
+</template>
+
+<script setup>
+import {ref, reactive} from 'vue'
+
+let router = useRouter()
+
+
+const openAlert = (options) => {
+  if (options.type === 'message') {
+    VXETable.modal.message(options)
+  } else {
+    VXETable.modal.alert(options)
+  }
+
+}
+
+
+const form = reactive({
+  name: '',
+  region: '',
+  date: '',
+  delivery: false,
+  type: [],
+  resource: '',
+  desc: '',
+  supplier: '',
+  buyer: '',
+  buyItem: '',
+  buyType: ''
+
+})
+
+const onSubmit = () => {
+  console.log('submit!')
+}
+
+//渚涘簲鍟�
+const buyerOptions = [
+  {value: '0', label: '渚涘簲鍟�1'},
+  {value: '1', label: '渚涘簲鍟�2'},
+  {value: '2', label: '渚涘簲鍟�3'},
+  {value: '3', label: '渚涘簲鍟�4'},
+  {value: '4', label: '渚涘簲鍟�5'},
+  {value: '5', label: '渚涘簲鍟�6'},
+]
+
+
+const value = ref('')
+const cgBuMen = ref('')
+
+//閲囪喘绫诲瀷
+const CGTypeOptions = [
+  {
+    value: '1',
+    label: '鏍囧噯绫诲瀷',
+  },
+  {
+    value: '2',
+    label: '闈炴爣鍑嗙被鍨�',
+  },
+  {
+    value: '3',
+    label: '杩藉姞閲囪喘',
+  },
+
+]
+
+//閲囪喘閮ㄩ棬
+const CGBuMenOptions = [
+  {
+    value: '0',
+    label: '閲囪喘鍗庡寳閮�',
+  },
+  {
+    value: '1',
+    label: '閲囪喘涓滃崡閮�',
+  },
+  {
+    value: '2',
+    label: '閲囪喘瑗垮寳閮�',
+  },
+  {
+    value: '3',
+    label: '閲囪喘涓師閮�',
+  },
+  {
+    value: '4',
+    label: '閲囪喘澶栧浗閮�',
+  },
+
+]
+
+//閲囪喘浜�
+const BuyerOptions = [
+  {
+    value: '0',
+    label: '閲囪喘鍛�1',
+  },
+  {
+    value: '1',
+    label: '閲囪喘鍛�2',
+  },
+  {
+    value: '2',
+    label: '閲囪喘鍛�3',
+  },
+  {
+    value: '3',
+    label: '閲囪喘鍛�4',
+  },
+  {
+    value: '4',
+    label: '閲囪喘鍛�5',
+  },
+
+]
+
+import dayjs from 'dayjs'
+import {VXETable} from "vxe-table";
+import {useRouter} from "vue-router";
+import {User} from "@element-plus/icons-vue";
+
+const now = new Date()
+
+const tableData = ref([
+  {
+    wlcode: '202312205101',
+    wlname: '杩欐槸涓�涓墿鏂欏悕绉�',
+    cd: '浜у湴12',
+    hd: '8',
+    gd: '2440',
+    kd: '3660',
+    xh: 'CN10P'
+  },
+  {
+    wlcode: '202312305101',
+    wlname: '杩欐槸涓�涓墿鏂欏悕绉�',
+    cd: '浜у湴1',
+    gd: '2440',
+    kd: '3660',
+    hd: '5',
+    xh: 'CN10P'
+  },
+  {
+    wlcode: '202312405101',
+    wlname: '杩欐槸涓�涓墿鏂欏悕绉�',
+    cd: '浜у湴13',
+    hd: '12',
+    gd: '2440',
+    kd: '3660',
+    xh: 'CN10P'
+  },
+])
+
+
+const onAddItem = () => {
+  now.setDate(now.getDate() + 1)
+  tableData.value.push({
+    wlcode: dayjs(now).format('YYYYMMDDss') + '01',
+    wlname: '杩欐槸涓�涓墿鏂欏悕绉�',
+    cd: '浜у湴1',
+    hd: '6',
+    xh: 'CN10P',
+    gd: '2440',
+    kd: '3660',
+  })
+}
+
+
+</script>
+
+
+<style scoped>
+.custom-header {
+  .el-checkbox {
+    display: flex;
+    height: unset;
+  }
+}
+
+.item-style {
+  width: 92%;
+}
+
+
+.main-div {
+  width: 100%;
+  height: 100%;
+  text-align: center;
+}
+
+/*.el-col{
+  border: #181818 1px solid;
+}*/
+
+.elcolStyle {
+  border: #181818 1px solid;
+}
+
+header2 :deep(.el-col) {
+  padding: 0;
+  margin: 0;
+//height: 35px; color: red;
+
+}
+
+order-primary :deep(.el-input__wrapper) {
+  box-shadow: 0 0 0 0 var(--el-input-border-color, var(--el-border-color)) inset;
+  cursor: default;
+  border: none !important;
+  background-color: transparent;
+}
+
+.order-primary {
+  width: 100%;
+}
+
+.order-detail {
+  width: 100%;
+  height: 80%;
+}
+
+/*.cell-item {
+  display: flex;
+  align-items: center;
+}*/
+
+:deep(.el-descriptions__label) {
+  width: 90px;
+  text-align: center;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/purchaseOrder/Details.vue b/UI-Project/src/views/mm/purchaseOrder/Details.vue
new file mode 100644
index 0000000..8ee52de
--- /dev/null
+++ b/UI-Project/src/views/mm/purchaseOrder/Details.vue
@@ -0,0 +1,453 @@
+<template>
+  <el-header height="auto">
+    <el-descriptions
+        class="margin-top"
+        title=""
+        :column="4"
+        :size="'default'"
+        border
+    >
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          鎿嶄綔鍗曞彿
+        </template>
+        <el-input v-model="form.buyItem" placeholder="鍗曞彿" disabled></el-input>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          閲囪喘绫诲瀷
+        </template>
+        <el-input v-model="form.buyItem" placeholder="閲囪喘绫诲瀷" disabled></el-input>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          閲囪喘閮ㄩ棬
+        </template>
+        <el-input v-model="form.buyItem" placeholder="閲囪喘閮ㄩ棬" disabled></el-input>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          渚涘簲鍟�
+        </template>
+        <el-input v-model="form.buyItem" placeholder="渚涘簲鍟�" disabled></el-input>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          閲囪喘鍛�
+        </template>
+        <el-input v-model="form.buyItem" placeholder="閲囪喘鍛�" disabled></el-input>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          閲囪喘缁勭粐
+        </template>
+        <el-input v-model="form.buyItem" placeholder="閲囪喘缁勭粐" disabled></el-input>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          鍒惰〃鏃ユ湡
+        </template>
+        <el-date-picker
+            v-model="form.date"
+            type="date"
+            placeholder="閫夋嫨鍒惰〃鏃ユ湡"
+        />
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy"></el-descriptions-item>
+
+    </el-descriptions>
+  </el-header>
+
+  <el-main style="padding-top: 5px;height:100%">
+    <vxe-grid
+        max-height="500"
+        @filter-change="filterChanged"
+        ref="xGrid"
+        v-bind="gridOptions"
+        v-on="gridEvents"
+    >
+
+      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
+      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+      <template #content="{ row}">
+        <ul class="expand-wrapper">
+          <li v-for="(item,key,index) in row">
+            <span style="font-weight: bold">{{ key + ':  ' }}</span>
+            <span>{{ item }}</span>
+          </li>
+        </ul>
+      </template>
+
+    </vxe-grid>
+
+  </el-main>
+
+</template>
+
+<script setup>
+import {ref, reactive} from 'vue'
+
+let router = useRouter()
+import {useRouter} from "vue-router";
+import { ElMessage, ElMessageBox} from "element-plus";
+
+const value = ref('')
+
+//缁勪欢鎺ユ敹鍙傛暟
+const gridOptions = reactive({
+  border: "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe: true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'CustomerList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  //寮�鍚櫄鎷熸粴鍔�
+  scrollY: {enabled: true},
+  showOverflow: true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  //绛涢�夐厤缃」
+  filterConfig: {
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  //琛ㄥご鍙傛暟銆佸垪鍚�
+  columns: [
+    {type: 'seq', fixed: "left", title: ' ', width: 50},
+    {type: 'checkbox', fixed: "left", title: '', width: 50},
+    {
+      field: 'cgdh',
+      width: '10%',
+      title: '鐗╂枡缂栫爜',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'cgzt',
+      width: '10%',
+      title: '鐗╂枡鍚嶇О',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'gys',
+      width: '10%',
+      title: '浜у湴',
+
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'w',
+      width: '8%',
+      title: '瀹藉害',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'g',
+      width: '8%',
+      title: '楂樺害',
+      filters: [{data: ''}],
+      sortable: true,
+
+    },
+    {
+      field: 'h',
+      width: '8%',
+      title: '鍘氬害',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'xh',
+      width: '8%',
+      title: '鍨嬪彿',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'dw',
+      width: '8%',
+      title: '鍗曚綅',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'sl',
+      width: '8%',
+      title: '鏁伴噺',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'czsl',
+      width: '8%',
+      title: '鎿嶄綔鏁伴噺',
+      type: 'number',
+      editRender: {name: 'input', type: 'number', attrs: {placeholder: ''}}
+    },
+    {
+      field: 'sl',
+      width: '12%',
+      title: '绠辨暟',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'je',
+      width: '8%',
+      title: '鍗曠墖闈㈢Н',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'je',
+      width: '12%',
+      title: '鍗曚环',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'sl',
+      width: '8%',
+      title: '鎬婚潰绉�',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'yl',
+      width: '10%',
+      title: '鎬婚噾棰�',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'yl',
+      width: '10%',
+      title: '澶囨敞',
+      filters: [{data: ''}],
+      sortable: true
+    }
+  ],
+  //琛ㄥご鎸夐挳
+  toolbarConfig: {
+    buttons: [
+      {type: 'text'},
+      {
+        'name': '淇濆瓨璁㈠崟',
+        status: 'primary',
+        'code': 'Save'
+      }, {
+        'name': '鍏ュ簱',
+        status: 'primary',
+        'code': 'Storage'
+      },
+      {
+        'name': '閫�璐�',
+        status: 'primary',
+        'code': 'Return'
+      },
+      {
+        'name': '鍙栨秷',
+        status: '',
+        'code': 'Cancel'
+      }],
+    import: false,
+    export: true,
+    print: true,
+    zoom: true,
+    custom: true,
+    tools: [],
+
+  },
+  //table body瀹為檯鏁版嵁
+  data: [{}, {}, {}],
+  //鑴氬悎骞�
+  mergeFooterItems: [
+    {row: 0, col: 0, rowspan: 1, colspan: 3}
+  ],
+  //鍚堝苟鑴�
+  footerMethod({columns, data}) {//椤佃剼鍑芥暟
+    return [
+      columns.map((column, columnIndex) => {
+        if (columnIndex === 0) {
+          return '鍚堣:'
+        }
+        /* if (props.tableProp.footList.includes(column.field)) {
+           return sumNum(data, column.field)
+         }*/
+        return ''
+      })
+    ]
+  },
+
+})
+
+const xGrid = ref()
+const gridEvents = {
+  toolbarButtonClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+//淇濆瓨
+        case 'Save': {
+          MessageAlertShow('鐐瑰嚮浜嗕繚瀛樿鍗�','鎿嶄綔鎻愮ず');
+          //MessageShow('鐐瑰嚮浜嗕繚瀛樿鍗曪紒', 'error');
+          break;
+        }
+//鍙栨秷锛岃繑鍥炴煡璇㈤〉闈�
+        case 'Cancel': {
+          router.push({path: '/main/purchaseOrder/StoragePurchaseOrder'})
+          break
+        }
+//鍏ュ簱
+        case 'Storage': {
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹紒', 'warning');
+            return
+          } else {
+            MessageConfirmShow('鍏ュ簱', '鏄惁纭瀵归�変腑鐨�' + $grid.getCheckboxRecords().length + '鐗╂枡杩涜鍏ュ簱鎿嶄綔锛�');
+          }
+          break
+        }
+//閫�璐�
+        case 'Return': {
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹紒', 'warning');
+            return
+          } else {
+
+            MessageConfirmShow('閫�璐�', '鏄惁纭瀵归�変腑鐨�' + $grid.getCheckboxRecords().length + '鐗╂枡杩涜閫�璐ф搷浣滐紒');
+          }
+          break
+        }
+
+      }
+    }
+  },
+  toolbarToolClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+        case 'myPrint': {
+          $grid.print()
+          break
+        }
+      }
+    }
+  },
+}
+
+//琛ㄥ崟鏁版嵁
+const form = reactive({
+  name: '',
+  region: '',
+  date: '',
+  delivery: false,
+  type: [],
+  resource: '',
+  desc: '',
+  supplier: '',
+  buyer: '',
+  buyItem: '',
+  buyType: ''
+
+})
+
+
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type){
+  const $grid = xGrid.value
+  switch (type) {
+    case '鍏ュ簱':
+      //鍏ュ簱閫昏緫浠g爜TODO
+      MessageShow('鍏ュ簱鎴愬姛锛�', 'success');
+      break;
+    case '閫�璐�':
+      //閫�璐ч�昏緫浠g爜TODO
+      MessageShow('閫�璐ф垚鍔燂紒', 'success');
+      break;
+    default:
+      MessageShow('鏈煡鎿嶄綔锛�', 'error');
+      break;
+  }
+  return true;
+}
+
+//鎻愮ず淇℃伅
+//淇℃伅鍐呭锛屾樉绀烘柟寮忥紝鏄剧ず鏍囬锛岀被鍨�
+const MessageShow = (content,type='success') => {
+    ElMessage({
+      message: content,
+      type: type,
+      showClose: true,
+    })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title='鎿嶄綔纭鎻愮ず', type='warning') => {
+  ElMessageBox.confirm(
+      content,
+      title,
+      {
+        cancelButtonText: '鍙栨秷',
+        confirmButtonText: '纭畾',
+        type: type,
+        center: true,
+      }
+  )
+      //鐐瑰嚮浜嗙‘瀹�
+      .then(() => {
+
+        return logicExecute(czType);
+      })
+      //鐐瑰嚮浜嗗彇娑�
+      .catch(() => {
+        return false;
+      })
+}
+
+//寮圭獥淇℃伅
+const MessageAlertShow=(content,title,type='info')=>{
+
+  ElMessageBox.alert(content, title, {
+    // 绂佹鑷姩瀵圭劍
+    //autofocus: false,
+    confirmButtonText: 'OK',
+    /*callback: (action: Action) => {
+      MessageShow(`action: ${action}`,type)
+    },*/
+  })
+}
+
+</script>
+
+
+<style scoped>
+:deep(.el-descriptions__table .label-diy) {
+  text-align: center;
+  width: 100px;
+  /*  font-size: large;*/
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/purchaseOrder/Payment.vue b/UI-Project/src/views/mm/purchaseOrder/Payment.vue
new file mode 100644
index 0000000..475da20
--- /dev/null
+++ b/UI-Project/src/views/mm/purchaseOrder/Payment.vue
@@ -0,0 +1,354 @@
+<template>
+  <el-container>
+    <el-header class="m-header" style="height: auto">
+      <el-row :gutter="10" style="margin-bottom: 5px">
+        <el-col :span="7">
+          <el-date-picker
+              v-model="datevalue"
+              type="daterange"
+              unlink-panels
+              range-separator="鍒�"
+              start-placeholder="寮�濮嬫棩鏈�"
+              end-placeholder="缁撴潫鏃ユ湡"
+              :shortcuts="shortcuts"
+              :size="size"
+              format="YYYY/MM/DD"
+              value-format="YYYY-MM-DD"
+          />
+        </el-col>
+
+        <el-col :span="2">
+          <el-button
+              id="select"
+              type="primary"
+              :icon="Search"
+              @click="autoAddRow">鏌ヨ
+          </el-button>
+        </el-col>
+      </el-row>
+
+    </el-header>
+    <el-main style="padding-top: 5px">
+      <vxe-grid
+
+          max-height="600"
+          @filter-change="filterChanged"
+          class="mytable-scrollbar"
+          ref="xGrid"
+          v-bind="PayOptions"
+          @="gridEvents"
+
+      >
+
+        <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+        <template #content="{ row }">
+          <ul class="expand-wrapper">
+            <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!==undefined ">
+              <span style="font-weight: bold">{{item.title+':  '}}</span>
+              <span>{{ row[item.field] }}</span>
+            </li>
+          </ul>
+        </template>
+
+        <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
+        <template #button_slot="{ row }">
+          <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
+          <!--          <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
+          <!--          <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
+        </template>
+
+
+        <template #num1_filter="{ column, $panel }">
+          <div>
+            <div v-for="(option, index) in column.filters" :key="index">
+              <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+            </div>
+          </div>
+        </template>
+      </vxe-grid>
+    </el-main>
+  </el-container>
+</template>
+
+
+<script setup>
+import {ref} from 'vue'
+import {Search} from "@element-plus/icons-vue";
+import 'dayjs/locale/zh-cn'
+import {VXETable} from "vxe-table";
+import {reactive} from "vue";
+import {useRouter} from 'vue-router'
+import {ElMessage, ElMessageBox} from "element-plus";
+
+const datevalue = ref('')//鏃堕棿
+
+//缁勪欢鎺ユ敹鍙傛暟
+const PayOptions = reactive({
+  border: "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe: true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'CustomerList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
+  showOverflow: true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  columns: [
+    /* {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},*/
+    {type: 'expand', title: '', fixed: "left", slots: {content: 'content'}, width: '5%'},//璇︽儏
+    {type: 'checkbox', fixed: "left", title: '', width: '5%'},
+    {type: 'seq', fixed: "left", title: ' ', width: '5%'},
+    {
+      field: 'cgdh',
+      width: '10%',
+      title: '閲囪喘鍗曞彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'cgzt', width: '10%', title: '鏈堜唤', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'gys',
+      width: '10%',
+      title: '渚涘簲鍟�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'wlbh',
+      width: '10%',
+      title: '鏈熷垵閲戦',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'wlmc',
+      width: '10%',
+      title: '鏈湡搴斾粯',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'w',
+      width: '10%',
+      title: '鏈湡宸蹭粯',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'g',
+      width: '10%',
+      title: '鏈熸湯浣欓',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'h', width: '9%', title: '绋庣巼', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: '6', width: '10%', title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
+  ],//琛ㄥご鍙傛暟
+  toolbarConfig: {
+    buttons: [{type: 'text'}, {
+      'name': '搴斾粯纭',
+      status: 'primary',
+      'code': 'Sure',
+    }],
+    import: false,
+    export: true,
+    print: true,
+    zoom: true,
+    custom: true,
+    style: 'paddling-left:10px'
+  },//琛ㄥご鎸夐挳
+  data: [{}, {}, {}, {}],//table body瀹為檯鏁版嵁
+  mergeFooterItems: [
+    {row: 0, col: 0, rowspan: 1, colspan: 3}
+  ],//鍚堝苟鑴�
+  footerMethod({columns, data}) {//椤佃剼鍑芥暟
+    return [
+      columns.map((column, columnIndex) => {
+        if (columnIndex === 0) {
+          return '鍚堣:'
+        }
+        /* if (props.tableProp.footList.includes(column.field)) {
+           return sumNum(data, column.field)
+         }*/
+        return ''
+      })
+    ]
+  },
+
+})
+
+
+const xGrid = ref()
+const gridEvents = {
+  toolbarButtonClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+          //搴斾粯纭
+        case 'Sure': {
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�!", 'warning');
+            return
+          } else {
+            MessageConfirmShow("纭搴斾粯", '鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭搴斾粯锛�')
+          }
+          break
+        }
+      }
+    }
+  },
+  toolbarToolClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+        case 'myPrint': {
+          $grid.print()
+          break
+        }
+      }
+    }
+  },
+}
+
+
+
+const shortcuts = [
+  {
+    text: '杩戜竴鍛�',
+    value: () => {
+      const end = new Date()
+      const start = new Date()
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+      return [start, end]
+    },
+  },
+  {
+    text: '杩戜竴涓湀',
+    value: () => {
+      const end = new Date()
+      const start = new Date()
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+      return [start, end]
+    },
+  },
+  {
+    text: '杩戜笁涓湀',
+    value: () => {
+      const end = new Date()
+      const start = new Date()
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+      return [start, end]
+    },
+  },
+]
+
+
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type){
+  const $grid = xGrid.value
+  switch (type) {
+    case '纭搴斾粯':
+      //鍏ュ簱閫昏緫浠g爜TODO
+      MessageShow('鎿嶄綔鎴愬姛锛�', 'success');
+      break;
+
+    default:
+      MessageShow('鏈煡鎿嶄綔锛�', 'error');
+      break;
+
+  }
+  return true;
+}
+
+
+//鎻愮ず淇℃伅
+//淇℃伅鍐呭锛屾樉绀烘柟寮忥紝鏄剧ず鏍囬锛岀被鍨�
+const MessageShow = (content, type = 'success') => {
+  ElMessage({
+    message: content,
+    type: type,
+    showClose: true,
+  })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title = '鎿嶄綔纭鎻愮ず', type = 'warning') => {
+  ElMessageBox.confirm(
+      content,
+      title,
+      {
+        cancelButtonText: '鍙栨秷',
+        confirmButtonText: '纭畾',
+        type: type,
+        center: true,
+      }
+  )
+      //鐐瑰嚮浜嗙‘瀹�
+      .then(() => {
+
+        return  logicExecute(czType);
+
+      })
+      //鐐瑰嚮浜嗗彇娑�
+      .catch(() => {
+        return false;
+      })
+}
+
+//寮圭獥淇℃伅
+const MessageAlertShow = (content, title, type = 'info') => {
+
+  ElMessageBox.alert(content, title, {
+    // 绂佹鑷姩瀵圭劍
+    //autofocus: false,
+    confirmButtonText: 'OK',
+    /*callback: (action: Action) => {
+      MessageShow(`action: ${action}`,type)
+    },*/
+  })
+}
+
+</script>
+
+
+<style scoped>
+.el-row {
+  margin-bottom: 20px;
+}
+
+.el-row:last-child {
+  margin-bottom: 0;
+}
+
+.el-col {
+  border-radius: 4px;
+}
+
+.m-header {
+  height: 32px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/purchaseOrder/PurchaseOrder.vue b/UI-Project/src/views/mm/purchaseOrder/PurchaseOrder.vue
new file mode 100644
index 0000000..62b26fb
--- /dev/null
+++ b/UI-Project/src/views/mm/purchaseOrder/PurchaseOrder.vue
@@ -0,0 +1,39 @@
+<template>
+  <div class="common-layout">
+    <el-container>
+      <!-- <el-header style="height: 30px"> -->
+
+        <!-- <el-breadcrumb :separator-icon="ArrowRight">
+          <el-breadcrumb-item>閲囪喘涓庣墿璧�</el-breadcrumb-item>
+          <el-breadcrumb-item> 閲囪喘閫�璐�
+
+          </el-breadcrumb-item>
+          <el-breadcrumb-item :to="{path:'/main/purchaseReturn/SelectPurchaseReturn'}"> 鏌ヨ
+
+          </el-breadcrumb-item>
+
+          <el-breadcrumb-item >
+
+          </el-breadcrumb-item>
+        </el-breadcrumb> -->
+      <!-- </el-header> -->
+      <el-main style="padding: 0;width: 99%;height: 100%;">
+        <router-view/>
+      </el-main>
+      <!--      <el-footer>Footer</el-footer>-->
+    </el-container>
+  </div>
+</template>
+
+
+<script setup>
+
+import {ArrowRight} from "@element-plus/icons-vue";
+
+
+</script>
+
+
+<style scoped>
+
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/purchaseOrder/Return.vue b/UI-Project/src/views/mm/purchaseOrder/Return.vue
new file mode 100644
index 0000000..6d8e32e
--- /dev/null
+++ b/UI-Project/src/views/mm/purchaseOrder/Return.vue
@@ -0,0 +1,593 @@
+<template>
+  <el-container>
+    <el-header class="m-header" style="height: auto">
+      <el-row :gutter="10" style="margin-bottom: 5px">
+        <el-col :span="7">
+          <el-date-picker
+              v-model="datevalue"
+              type="daterange"
+              unlink-panels
+              range-separator="鍒�"
+              start-placeholder="寮�濮嬫棩鏈�"
+              end-placeholder="缁撴潫鏃ユ湡"
+              :shortcuts="shortcuts"
+              :size="size"
+              format="YYYY/MM/DD"
+              value-format="YYYY-MM-DD"
+          />
+
+        </el-col>
+
+        <el-col :span="2">
+          <el-button
+              id="select"
+              type="primary"
+              :icon="Search"
+              @click="BtnSearchPurchaseOrder">鏌ヨ
+          </el-button>
+        </el-col>
+      </el-row>
+    </el-header>
+    <el-main style="padding-top: 5px;height:100%">
+      <vxe-grid
+
+          max-height="600"
+          @filter-change="filterChanged"
+          class="mytable-scrollbar"
+          ref="xGrid"
+          v-bind="gridOptions"
+          v-on="gridEvents"
+          @cell-dblclick="cellClickEvent"
+      >
+
+        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
+        <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+        <template #content="{ row }">
+          <ul class="expand-wrapper">
+            <li v-for="(item,index) in gridOptions.columns" v-show="item.field!==undefined ">
+              <span style="font-weight: bold">{{ item.title + ':  ' }}</span>
+              <span>{{ row[item.field] }}</span>
+            </li>
+          </ul>
+        </template>
+
+        <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
+        <template #button_slot="{ row }">
+          <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
+          <!--          <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
+          <!--          <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
+        </template>
+
+
+        <template #num1_filter="{ column, $panel }">
+          <div>
+            <div v-for="(option, index) in column.filters" :key="index">
+              <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+            </div>
+          </div>
+        </template>
+      </vxe-grid>
+
+
+      <!--      璇︽儏妗� 閮ㄥ垎1-->
+      <vxe-modal v-model="showDetails" title="鏌ョ湅璇︽儏" width="600" height="80%" :mask="false" :lock-view="false"
+                 resize>
+        <el-container>
+          <el-header height="35px"
+                     style="margin: 0;padding: 0">
+
+            <el-input v-model="showCGDH" placeholder="閲囪喘鍗曞彿" disabled>
+              <template #prepend>閲囪喘鍗曞彿锛�</template>
+            </el-input>
+          </el-header>
+          <el-main>
+            <template #default>
+              <vxe-table
+                  border="default"
+                  auto-resize
+                  show-overflow
+                  max-height="400"
+                  :row-config="{isHover: true}"
+                  :show-header="false"
+                  :sync-resize="showDetails"
+                  :data="detailData"
+
+              >
+                <vxe-column field="label" width="30%" class-name="v-column-label"></vxe-column>
+                <vxe-column field="value"></vxe-column>
+              </vxe-table>
+            </template>
+          </el-main>
+          <el-footer height="40px">
+            <el-row>
+              <el-col :offset="20" :span="4">
+                <el-button
+                    id="Sure"
+                    type="primary"
+                    @click="SureReturn"
+                >纭閫�璐�
+                </el-button>
+              </el-col>
+
+            </el-row>
+          </el-footer>
+        </el-container>
+      </vxe-modal>
+      <!--      璇︽儏妗� 閮ㄥ垎1 缁撴潫-->
+    </el-main>
+  </el-container>
+</template>
+
+
+<script setup>
+
+import {ref} from "vue";
+import {reactive} from "vue";
+import {useRouter} from 'vue-router'
+import {Search} from "@element-plus/icons-vue";
+import dayjs from "dayjs";
+import {ElMessage, ElMessageBox} from "element-plus";
+
+
+let router = useRouter()
+const getTableRow = (row, type) => {
+  switch (type) {
+    case 'edit' : {
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/purchaseOrder/DetailsPurchaseOrder', query: {id: row.id}})
+      break
+    }
+    case 'delete': {
+
+
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅' + row.id)
+      break
+    }
+  }
+}
+
+const xGrid = ref()
+
+const gridEvents = {
+  toolbarButtonClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+        case 'Sure': {
+          if ($grid.getCheckboxRecords().length === 0) {
+
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�!', 'warning');
+
+            return
+          } else {
+
+            MessageConfirmShow('纭畾', '鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭閫�璐э紵')
+          }
+          break
+        }
+        case 'Log': {
+          MessageAlertShow('鐐瑰嚮浜嗛��璐ц褰�!', '鎿嶄綔鎻愮ず');
+          break
+        }
+      }
+    }
+  },
+  toolbarToolClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+        case 'myPrint': {
+          $grid.print()
+          break
+        }
+      }
+    }
+  },
+}
+
+
+//鏌ヨ鎸夐挳鏂规硶
+const BtnSearchPurchaseOrder = () => {
+
+  //寮�濮嬫椂闂达紝缁撴潫鏃堕棿鑾峰彇
+  //MessageShow("寮�濮嬫椂闂�"+datevalue._rawValue[0]+"\r\n缁撴潫鏃堕棿\r\n"+datevalue._rawValue[1]);
+
+  for (let i = 1; i < 6; i++) {
+    const randomInt = Math.floor(Math.random() * 999) + 1000;//4浣嶆暟闅忔満鏁�
+    const randomSumInt = Math.floor(Math.random() * 99) + 10;//2浣嶆暟闅忔満鏁�
+    const randomOrderInt = Math.floor(Math.random() * 99) + 100;//3浣嶆暟闅忔満鏁�
+    const t = i % 2 === 0 ? 5 : 6;
+    const s = i % 2 === 0 ? '鍏ュ簱' : i % 3 === 0 ? '閫�璐�' : '閮ㄥ垎鍏ュ簱';
+    const thdh = i % 2 === 0 ? '' : i % 3 === 0 ? 'THID' + randomOrderInt : '';
+    const CGNo = 'NGCG231200' + randomOrderInt;//閲囪喘缂栧彿
+    const wlNo = 'NGWL1000' + randomInt;
+    const xh = 'NGXH' + randomSumInt;
+    const wlmc = 'WLMC' + randomInt;
+    const gys = '渚涘簲鍟�' + randomSumInt;
+    const xhdh = 'NG231200' + randomOrderInt;
+    const w = i % 2 === 0 ? '3300' : i % 3 === 0 ? '3660' : i % 4 === 0 ? '2250' : '2580';
+    const h = i % 2 === 0 ? '2440' : i % 3 === 0 ? '2440' : i % 4 === 0 ? '2000' : '2300';
+    const dw = i % 2 === 0 ? '鐗�' : i % 3 === 0 ? '骞崇背' : i % 4 === 0 ? '鍖�' : '鍚�';
+    now.setDate(now.getDate() + 1);
+    gridOptions.data.push({
+      cgdh: CGNo,
+      thdh: thdh,
+      h: t,
+      xh: xh,
+      wlbh: wlNo,
+      wlmc: wlmc,
+      gys: gys,
+      w: w,
+      g: h,
+      dw: dw,
+      cgzt: s,
+      rq: dayjs(now).format('YYYY-MM-DD'),
+      yl: randomSumInt,
+      sl: randomOrderInt,
+      xsdh: xhdh,
+      je: randomInt,
+      6: '139xxxxxxxx',
+
+    })
+  }
+
+}
+
+
+//缁勪欢鎺ユ敹鍙傛暟
+const gridOptions = reactive({
+  border: "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe: true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'CustomerList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
+  showOverflow: true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  columns: [
+    {type: 'expand', title: '', fixed: "left", slots: {content: 'content'}, width: 50},//璇︽儏
+    {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},
+    {type: 'checkbox', fixed: "left", title: '', width: 50},
+    {type: 'seq', fixed: "left", title: ' ', width: 50},
+
+
+    {
+      field: 'thdh',
+      width: '10%',
+      title: '閫�璐у崟鍙�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'cgdh',
+      width: '10%',
+      title: '閲囪喘鍗曞彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'cgzt', width: '10%', title: '鐘舵��', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'gys',
+      width: '10%',
+      title: '渚涘簲鍟�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'wlbh',
+      width: '10%',
+      title: '鐗╂枡缂栧彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'wlmc',
+      width: '10%',
+      title: '鐗╂枡鍚嶇О',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'w', width: '8%', title: '瀹藉害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'g', width: '8%', title: '楂樺害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'h', width: '8%', title: '鍘氬害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'xh', width: '8%', title: '鍨嬪彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'dw', width: '8%', title: '鍗曚綅', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: '6',
+      width: '12%',
+      title: '涓嶅惈绋庡崟浠�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'sl', width: '8%', title: '鏁伴噺', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'sl',
+      width: '12%',
+      title: '宸查噰璐暟閲�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'je', width: '8%', title: '閲戦', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'je',
+      width: '12%',
+      title: '涓嶅惈绋庨噾棰�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: '6', width: '8%', title: '绋庣巼', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'sl', width: '8%', title: '搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'yl', width: '10%', title: '鍛ㄧ敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'yl', width: '10%', title: '鏈堢敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'cgzt',
+      width: '10%',
+      title: '鍗曟嵁鐘舵��',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'xsdh',
+      width: '10%',
+      title: '閿�鍞崟鍙�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'rq',
+      width: '10%',
+      title: '鍒跺崟鏃ユ湡',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: '6', width: '10%', title: '鍒跺崟浜�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: '6',
+      width: '10%',
+      title: '閲囪喘閮ㄩ棬',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: '6',
+      width: '10%',
+      title: '閲囪喘缁勭粐',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: '6', width: '10%', title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
+  ],//琛ㄥご鍙傛暟
+  toolbarConfig: {
+    buttons: [{type: 'text'}, {
+      'name': '閫�璐ц褰�',
+
+      'code': 'Log'
+    },
+      {
+        'name': '纭閫�璐�',
+        status: 'primary',
+        'code': 'Sure'
+      }],
+    import: false,
+    export: true,
+    print: true,
+    zoom: true,
+    custom: true,
+    style: 'paddling-left:10px'
+  },//琛ㄥご鎸夐挳
+  data: [],//table body瀹為檯鏁版嵁
+  mergeFooterItems: [
+    {row: 0, col: 0, rowspan: 1, colspan: 4}
+  ],//鍚堝苟鑴�
+  footerMethod({columns, data}) {//椤佃剼鍑芥暟
+    return [
+      columns.map((column, columnIndex) => {
+        if (columnIndex === 0) {
+          return '鍚堣:'
+        }
+        /* if (props.tableProp.footList.includes(column.field)) {
+           return sumNum(data, column.field)
+         }*/
+        return ''
+      })
+    ]
+  },
+
+})
+
+
+//璇︽儏妗� 閮ㄥ垎2
+const showCGDH = ref();
+const showDetails = ref(false);
+let detailData = [];
+const cellClickEvent = ({row}) => {
+  if (isQueryColumnId === false) {
+    queryColumnId();
+  }
+
+  detailData = list.map(field => {
+    return {label: queryColumnsTitle(field), value: row[field]}
+  })
+  showDetails.value = true;
+  showCGDH.value = row['cgdh'];
+}
+
+//鑾峰彇琛ㄥ垪
+let list = [];
+let columnIndex = 4;//鍒楁爣澶翠粠绗嚑鍒楀紑濮嬬殑
+let isQueryColumnId = false;
+const queryColumnId = () => {
+
+  while (columnIndex < gridOptions.columns.length) {
+    list.push(gridOptions.columns[columnIndex].field);
+    columnIndex++;
+  }
+  isQueryColumnId = true;
+  return list;
+}
+
+//鑾峰彇琛ㄥ垪鍚�
+function queryColumnsTitle(cn) {
+  let i = 0;
+  while (i < gridOptions.columns.length + 1) {
+    if (gridOptions.columns[i].field === cn) {
+      return gridOptions.columns[i].title;
+    }
+    i++;
+  }
+}
+
+// 璇︽儏妗嗛儴鍒�2 缁撴潫
+
+const SureReturn = () => {
+
+  MessageConfirmShow('閫�璐�', '鏄惁纭閫�璐э紵')
+
+}
+
+//璇︽儏妗� 閮ㄥ垎2 缁撴潫
+
+
+const now = new Date()
+
+//鏃堕棿蹇嵎閫夋嫨
+const datevalue = ref('')
+const shortcuts = [
+  {
+    text: '杩戜竴鍛�',
+    value: () => {
+      const end = new Date()
+      const start = new Date()
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+      return [start, end]
+    },
+  },
+  {
+    text: '杩戜竴涓湀',
+    value: () => {
+      const end = new Date()
+      const start = new Date()
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+      return [start, end]
+    },
+  },
+  {
+    text: '杩戜笁涓湀',
+    value: () => {
+      const end = new Date()
+      const start = new Date()
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+      return [start, end]
+    },
+  },
+]
+
+
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type) {
+  const $grid = xGrid.value
+  switch (type) {
+    case '纭畾':
+      //澶氶�夐��璐ч�昏緫浠g爜TODO
+      MessageShow('鎿嶄綔鎴愬姛锛�', 'success');
+      break;
+    case '閫�璐�':
+      //鍗曢��璐ч�昏緫浠g爜TODO
+      MessageShow('鎿嶄綔鎴愬姛锛�', 'success');
+      break;
+    default:
+      MessageShow('鏈煡鎿嶄綔锛�', 'error');
+      break;
+  }
+  return true;
+}
+
+
+//鎻愮ず淇℃伅
+//淇℃伅鍐呭锛屾樉绀烘柟寮忥紝鏄剧ず鏍囬锛岀被鍨�
+const MessageShow = (content, type = 'success') => {
+  ElMessage({
+    message: content,
+    type: type,
+    showClose: true,
+  })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title = '鎿嶄綔纭鎻愮ず', type = 'warning') => {
+  ElMessageBox.confirm(
+      content,
+      title,
+      {
+        cancelButtonText: '鍙栨秷',
+        confirmButtonText: '纭畾',
+        type: type,
+        center: true,
+      }
+  )
+      //鐐瑰嚮浜嗙‘瀹�
+      .then(() => {
+
+        logicExecute(czType);
+
+        return true;
+      })
+      //鐐瑰嚮浜嗗彇娑�
+      .catch(() => {
+        return false;
+      })
+}
+
+//寮圭獥淇℃伅
+const MessageAlertShow = (content, title, type = 'info') => {
+
+  ElMessageBox.alert(content, title, {
+    // 绂佹鑷姩瀵圭劍
+    //autofocus: false,
+    confirmButtonText: 'OK',
+    /*callback: (action: Action) => {
+      MessageShow(`action: ${action}`,type)
+    },*/
+  })
+}
+
+</script>
+
+
+<style scoped>
+:deep(.v-column-label div span) {
+  font-weight: bold;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/purchaseOrder/Select.vue b/UI-Project/src/views/mm/purchaseOrder/Select.vue
new file mode 100644
index 0000000..1b9c98f
--- /dev/null
+++ b/UI-Project/src/views/mm/purchaseOrder/Select.vue
@@ -0,0 +1,917 @@
+<script setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+
+import { ref } from 'vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+const dialogFormVisible = ref(false)
+const dialogFormVisiblea = ref(false)
+const box = ref(true)
+const boxa = ref(false)
+const boxb = ref(false)
+const tableData = [
+  {
+    id: '1',
+    long: '1005',
+    wide: '183.6',
+    thick: '1991',
+    type: '寰呰瘑鍒�',
+    typea: '1',
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  },
+  {
+    id: '2',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    typea: '1',
+    type: '寰呰瘑鍒�'
+  }
+]
+const tableDataa = [
+  {
+    ida: '3',
+    longa: '1005',
+    widea: '183.6',
+    thicka: '1991',
+  },
+  {
+    ida: '4',
+    longa: '105',
+    widea: '183',
+    thicka: '191',
+  }
+]
+const open = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+    .then(() => {
+      ElMessage({
+        type: 'success',
+        message: '鍒犻櫎鎴愬姛锛�',
+      })
+    })
+    .catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '鍒犻櫎澶辫触',
+      })
+    })
+}
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+
+
+const dialogForm = () => {
+  ElMessageBox.confirm(
+    '鏄惁鍒囨崲鐗堝浘?',
+    '鎻愮ず',
+    {
+      confirmButtonText: '鏄�',
+      cancelButtonText: '鍙栨秷',
+      type: 'warning',
+    }
+  )
+  .then(() => {
+    // this.boxa = true
+    // this.box = false
+      
+    })
+}
+const selectedRows = ref([]);
+const handleSelectionChange = (selection) => {
+  selectedRows.value = selection;
+};
+const showMessage = () => {
+  if (selectedRows.value.length === 0) {
+    ElMessage('璇疯嚦灏戦�夋嫨涓�涓�夐」')
+  } else{
+    ElMessage({
+    message: '閲嶆柊璇嗗埆鎴愬姛锛�',
+    type: 'success',
+  })
+
+  }
+};
+const pick = () => {
+  if (selectedRows.value.length === 0) {
+    ElMessage('璇疯嚦灏戦�夋嫨涓�涓�夐」')
+  } else{
+    ElMessage({
+    message: '浜哄伐鍖归厤鎴愬姛锛�',
+    type: 'success',
+  })
+
+  }
+};
+const remove = () => {
+  if (selectedRows.value.length === 0) {
+    ElMessage('璇疯嚦灏戦�夋嫨涓�涓�夐」')
+  } else{
+    ElMessage({
+    message: '鎿嶄綔鎴愬姛锛�',
+    type: 'success',
+  })
+
+  }
+};
+
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'OrderList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  data:  [
+    {
+      'id': '1',
+      'long': '5',
+      'wide': '1005',
+      'thick': '183.6',
+    }
+  ],
+})
+</script>
+
+<template>
+  <div>
+     <el-button style="margin-top: 5px;margin-left: 5px;"   id="searchButton" type="primary" @click="showMessage">閲嶆柊璇嗗埆</el-button>
+    <el-button style="margin-top: 5px"  id="searchButton" type="primary" @click="pick">浜哄伐鍖归厤</el-button>
+    <el-button style="margin-top: 5px"  id="searchButton" type="primary" @click="remove">浜哄伐鎷胯蛋</el-button>
+    <el-button style="margin-top: 5px"  id="searchButton" type="primary" >鐮存崯</el-button>
+    <el-button style="margin-top: 5px"  id="searchButton" @click="boxb = true;box = false" >鍚堝苟</el-button>
+    <el-button style="margin-top: 5px"  id="searchButton" @click="box = true;boxb = false" >鍗曠墖</el-button>
+    <el-button style="margin-top: 5px;float: right;margin-right: 50px;"  id="searchButton" type="text"  @click="dialogForm">鐗堝浘鍙�</el-button>
+
+    <div v-if="box">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" >
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 450px;">
+        <el-table height="100%" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column type="selection" width="55"  />
+          <el-table-column prop="id" align="center" label="id" min-width="80" />
+          <el-table-column prop="long" align="center" label="闀�" min-width="120" />
+          <el-table-column prop="wide" align="center" label="瀹�" min-width="120" />
+          <el-table-column prop="type" align="center" label="鐘舵��" min-width="120" />
+          <el-table-column prop="thick" align="center" label="鍏朵粬" min-width="120" />
+          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+            <template #default>
+              <!-- <el-button type="text" plain  @click="dialogFormVisible = true">璇︽儏</el-button> -->
+              <el-button type="text" plain  @click="dialogFormVisiblea = true">璁剧疆</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+  </div>
+    <div v-if="boxb">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" >
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 450px;">
+        <el-table height="100%" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column type="selection" width="55"  />
+          <el-table-column prop="id" align="center" label="绫诲瀷搴忓彿" min-width="80" />
+          <el-table-column prop="long" align="center" label="闀�" min-width="120" />
+          <el-table-column prop="wide" align="center" label="瀹�" min-width="120" />
+          <el-table-column prop="typea" align="center" label="鏁伴噺" min-width="120" />
+          <el-table-column prop="thick" align="center" label="鍏朵粬" min-width="120" />
+          <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+            <template #default>
+              <!-- <el-button type="text" plain  @click="dialogFormVisible = true">璇︽儏</el-button> -->
+              <el-button type="text" plain  @click="dialogFormVisiblea = true">璁剧疆</el-button>
+            </template>
+        </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+  </div>
+    <!-- <div v-if="boxa">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" >
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto">
+        <el-table height="100%" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="tableDataa" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+          <el-table-column type="selection" width="55"  />
+          <el-table-column prop="ida" align="center" label="id" min-width="80" />
+          <el-table-column prop="longa" align="center" label="闀�" min-width="120" />
+          <el-table-column prop="widea" align="center" label="瀹�" min-width="120" />
+          <el-table-column prop="thicka" align="center" label="鍏朵粬" min-width="120" />
+        </el-table>
+      </div>
+    </el-card>
+  </div> -->
+  </div>
+  <!-- <el-dialog v-model="dialogFormVisible" top="21vh" width="30%" title="灏忕墖鍥�" >
+      
+        <div id="message">
+          200*100
+        </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button @click="dialogFormVisible = false">鍏抽棴</el-button>
+      </div>
+    </template>
+  </el-dialog> -->
+  <el-dialog v-model="dialogFormVisiblea" top="21vh" width="30%" title="娴嬮噺璁剧疆" >
+            <el-form  label-width="150px">
+      <el-form style="margin-left: 80px;">
+        
+        <el-form-item label="璇樊闀匡細" :required="true" style="width: 16vw;margin-bottom: 30px;">
+            <div style="display: flex;"><el-input  autocomplete="off" /><div style="margin-left: 10px;">mm</div> </div>
+              </el-form-item>
+              <el-form-item label="璇樊瀹斤細" :required="true" style="width: 16vw">
+            <div style="display: flex;"><el-input  autocomplete="off" /><div style="margin-left: 10px;">mm</div> </div>
+              </el-form-item>
+        </el-form>
+            </el-form>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="dialogFormVisiblea = false">
+          纭
+        </el-button>
+        <el-button @click="dialogFormVisiblea = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <div id="awatch">灏忕墖鍥撅細
+<div id="watch">200*100</div>
+</div>
+</template>
+
+<style scoped>
+
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#message{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 200px;
+   height: 100px;
+   background-color: #337ecc;
+   margin-left: 28%;
+}
+#awatch{
+  display: flex;
+  margin-top: 20px;
+  font-size: 20px;
+  margin-left: 50px;
+}
+#watch{
+  text-align: center;
+  align-items: center;
+  color: black;
+   width: 300px;
+   height: 150px;
+   background-color: #337ecc;
+   margin-left: 2%;
+   margin-top: 10px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/mm/purchaseOrder/Storage.vue b/UI-Project/src/views/mm/purchaseOrder/Storage.vue
new file mode 100644
index 0000000..98a9156
--- /dev/null
+++ b/UI-Project/src/views/mm/purchaseOrder/Storage.vue
@@ -0,0 +1,603 @@
+<template>
+  <el-container>
+    <el-header class="m-header" style="height: auto">
+      <el-row :gutter="10" style="margin-bottom: 5px">
+        <el-col :span="7">
+          <el-date-picker
+              v-model="datevalue"
+              type="daterange"
+              unlink-panels
+              range-separator="鍒�"
+              start-placeholder="寮�濮嬫棩鏈�"
+              end-placeholder="缁撴潫鏃ユ湡"
+              :shortcuts="shortcuts"
+
+              format="YYYY/MM/DD"
+              value-format="YYYY-MM-DD"
+          />
+
+        </el-col>
+        <el-col :span="2">
+          <el-button
+              id="select"
+              type="primary"
+              :icon="Search"
+              @click="BtnSearchPurchaseOrder">鏌ヨ
+          </el-button>
+        </el-col>
+
+      </el-row>
+
+
+    </el-header>
+    <el-main style="padding-top: 5px;height:100%">
+      <vxe-grid
+
+          max-height="600"
+          @filter-change="filterChanged"
+          class="mytable-scrollbar"
+          ref="xGrid"
+          v-bind="gridOptions"
+          v-on="gridEvents"
+
+          @cell-dblclick="cellClickEvent"
+
+      >
+
+        <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+        <template #content="{ row }">
+          <ul class="expand-wrapper">
+            <li v-for="(item,index) in gridOptions.columns" v-show="item.field!==undefined ">
+              <span style="font-weight: bold">{{ item.title + ':  ' }}</span>
+              <span>{{ row[item.field] }}</span>
+            </li>
+          </ul>
+        </template>
+
+        <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
+        <template #button_slot="{ row }">
+          <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
+          <el-button @click="getTableRow(row,'look')" link type="primary" size="small">鏌ョ湅</el-button>
+          <!--          <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
+          <!--          <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
+        </template>
+
+
+        <template #num1_filter="{ column, $panel }">
+          <div>
+            <div v-for="(option, index) in column.filters" :key="index">
+              <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+            </div>
+          </div>
+        </template>
+      </vxe-grid>
+
+      <!--      璇︽儏妗� 閮ㄥ垎1-->
+      <vxe-modal v-model="showDetails" title="鏌ョ湅璇︽儏" width="600" height="80%" :mask="false" :lock-view="false"
+                 resize>
+        <el-container>
+          <el-header height="35px"
+                     style="margin: 0;padding: 0">
+
+            <el-input v-model="showCGDH" placeholder="閲囪喘鍗曞彿" disabled>
+              <template #prepend>閲囪喘鍗曞彿锛�</template>
+            </el-input>
+          </el-header>
+          <el-main>
+            <template #default>
+              <vxe-table
+                  border="inner"
+                  auto-resize
+                  show-overflow
+                  max-height="400"
+                  :row-config="{isHover: true}"
+                  :show-header="false"
+                  :sync-resize="showDetails"
+                  :data="detailData">
+                <vxe-column field="label" width="30%" class-name="v-column-label"></vxe-column>
+                <vxe-column field="value"></vxe-column>
+              </vxe-table>
+            </template>
+          </el-main>
+          <el-footer height="40px">
+            <el-row>
+              <el-col :offset="20" :span="4">
+                <el-button
+                    id="Sure"
+                    type="primary"
+                    @click="SureStorage"
+                >纭鍏ュ簱
+                </el-button>
+              </el-col>
+
+            </el-row>
+          </el-footer>
+        </el-container>
+      </vxe-modal>
+      <!--      璇︽儏妗� 閮ㄥ垎1 缁撴潫-->
+
+
+    </el-main>
+  </el-container>
+
+
+</template>
+
+
+<script setup>
+import {ref} from "vue";
+import {reactive} from "vue";
+import {useRouter} from 'vue-router'
+import {Search} from "@element-plus/icons-vue";
+import dayjs from "dayjs";
+import {VXETable} from "vxe-table";
+import {ElMessage, ElMessageBox} from "element-plus";
+
+let router = useRouter()
+
+
+const getTableRow = (row, type) => {
+  switch (type) {
+    case 'edit' : {
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/purchaseOrder/DetailsPurchaseOrder', query: {id: row.id}});
+
+      break
+    }
+    case 'look': {
+      /*this.detailData = ['name', 'nickname', 'role', 'sex', 'age', 'amount', 'address'].map(field => {
+        return { label: field, value: row[field] }
+      })*/
+      //this.showDetails = true
+      break
+    }
+    case 'delete': {
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅' + row.id)
+      break
+    }
+  }
+}
+
+const xGrid = ref()
+const gridEvents = {
+  toolbarButtonClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+        case 'Sure': {
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', 'warning');
+            //openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
+            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
+            return
+          } else {
+            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭鍏ュ簱锛�');
+            //openAlert({type:'alert', content: '鎴愬姛鍏ュ簱'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
+            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
+            return
+          }
+          break
+        }
+        case 'Log': {
+
+          //openAlert({type: 'alert', content: '鐐瑰嚮浜嗛��璐ц褰�', status: 'success'})
+          MessageConfirmShow("閫�璐ц褰�", "鐐瑰嚮浜嗛��璐ц褰�", "", 'success')
+          break
+        }
+      }
+    }
+  },
+  toolbarToolClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+        case 'myPrint': {
+          $grid.print()
+          break
+        }
+      }
+    }
+  },
+}
+
+const openAlert = (options) => {
+  if (options.type === 'message') {
+    VXETable.modal.message(options)
+  } else {
+    VXETable.modal.alert(options)
+  }
+
+}
+const closeAlert = (id) => {
+  VXETable.modal.close(id)
+}
+
+
+//鏌ヨ璋冪敤浜嬩欢
+const BtnSearchPurchaseOrder = () => {
+  //寮�濮嬫椂闂达紝缁撴潫鏃堕棿鑾峰彇
+  //MessageShow(datevalue._rawValue[0]+"\r\n鏃堕棿2\r\n"+datevalue._rawValue[1]);
+
+  for (let i = 1; i < 6; i++) {
+    const randomInt = Math.floor(Math.random() * 999) + 1000;//4浣嶆暟闅忔満鏁�
+    const randomSumInt = Math.floor(Math.random() * 99) + 10;//2浣嶆暟闅忔満鏁�
+    const randomOrderInt = Math.floor(Math.random() * 99) + 100;//3浣嶆暟闅忔満鏁�
+    const t = i % 2 === 0 ? 5 : 6;
+    const s = i % 2 === 0 ? '鍏ュ簱' : i % 3 === 0 ? '寰呭鏍�' : '宸查噰璐�';
+    const rkdh = i % 2 === 0 ? 'RKID' + randomOrderInt : i % 3 === 0 ? '' : '';
+    const CGNo = 'NGCG231200' + randomOrderInt;//閲囪喘缂栧彿
+    const wlNo = 'NGWL1000' + randomInt;
+    const xh = 'NGXH' + randomSumInt;
+    const wlmc = 'WLMC' + randomInt;
+    const gys = '渚涘簲鍟�' + randomSumInt;
+    const xhdh = 'NG231200' + randomOrderInt;
+    const w = i % 2 === 0 ? '3300' : i % 3 === 0 ? '3660' : i % 4 === 0 ? '2250' : '2580';
+    const h = i % 2 === 0 ? '2440' : i % 3 === 0 ? '2440' : i % 4 === 0 ? '2000' : '2300';
+    const dw = i % 2 === 0 ? '鐗�' : i % 3 === 0 ? '骞崇背' : i % 4 === 0 ? '鍖�' : '鍚�';
+    now.setDate(now.getDate() + 1);
+    gridOptions.data.push({
+      cgdh: CGNo,
+      rkdh: rkdh,
+      h: t,
+      xh: xh,
+      wlbh: wlNo,
+      wlmc: wlmc,
+      gys: gys,
+      w: w,
+      g: h,
+      dw: dw,
+      cgzt: s,
+      rq: dayjs(now).format('YYYY-MM-DD'),
+      yl: randomSumInt,
+      sl: randomOrderInt,
+      xsdh: xhdh,
+      je: randomInt,
+      6: '139xxxxxxxx',
+
+    })
+  }
+
+}
+
+
+//缁勪欢鎺ユ敹鍙傛暟
+const gridOptions = reactive({
+  border: "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe: true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'CustomerList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
+  showOverflow: true,
+  //showDetails: false,//寮圭獥 鏄惁鏄剧ず
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  columns: [
+    {type: 'expand', title: '', fixed: "left", slots: {content: 'content'}, width: 50},//璇︽儏
+    {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},
+    {type: 'checkbox', fixed: "left", title: '', width: 50},
+    {type: 'seq', fixed: "left", title: ' ', width: 50},
+
+
+    {
+      field: 'rkdh',
+      width: '10%',
+      title: '鍏ュ簱鍗曞彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'cgdh',
+      width: '10%',
+      title: '閲囪喘鍗曞彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'cgzt', width: '10%', title: '鐘舵��', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'gys',
+      width: '10%',
+      title: '渚涘簲鍟�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'wlbh',
+      width: '10%',
+      title: '鐗╂枡缂栧彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'wlmc',
+      width: '10%',
+      title: '鐗╂枡鍚嶇О',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'w', width: '8%', title: '瀹藉害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'g', width: '8%', title: '楂樺害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'h', width: '8%', title: '鍘氬害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'xh', width: '8%', title: '鍨嬪彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'dw', width: '8%', title: '鍗曚綅', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: '6',
+      width: '12%',
+      title: '涓嶅惈绋庡崟浠�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'sl', width: '8%', title: '鏁伴噺', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'sl',
+      width: '12%',
+      title: '宸查噰璐暟閲�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'je', width: '8%', title: '閲戦', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'je',
+      width: '12%',
+      title: '涓嶅惈绋庨噾棰�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: '6', width: '8%', title: '绋庣巼', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'sl', width: '8%', title: '搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'yl', width: '10%', title: '鍛ㄧ敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'yl', width: '10%', title: '鏈堢敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'cgzt',
+      width: '10%',
+      title: '鍗曟嵁鐘舵��',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'xsdh',
+      width: '10%',
+      title: '閿�鍞崟鍙�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'rq',
+      width: '10%',
+      title: '鍒跺崟鏃ユ湡',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: '6', width: '10%', title: '鍒跺崟浜�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: '6',
+      width: '10%',
+      title: '閲囪喘閮ㄩ棬',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: '7',
+      width: '10%',
+      title: '閲囪喘缁勭粐',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: '8', width: '10%', title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
+  ],//琛ㄥご鍙傛暟
+  toolbarConfig: {
+    buttons: [{type: 'text'/*,name:'璁㈠崟鍏ュ簱'*/}, {
+      'name': '鍏ュ簱璁板綍',
+
+      'code': 'Log'
+    },
+      {
+        'name': '纭鍏ュ簱',
+        status: 'primary',
+        'code': 'Sure'
+      }],
+    import: false,
+    export: true,
+    print: true,
+    zoom: true,
+    custom: true,
+    style: 'paddling-left:10px'
+  },//琛ㄥご鎸夐挳
+  data: [],//table body瀹為檯鏁版嵁
+  mergeFooterItems: [
+    {row: 0, col: 0, rowspan: 1, colspan: 4}
+  ],//鍚堝苟鑴�
+  footerMethod({columns, data}) {//椤佃剼鍑芥暟
+    return [
+      columns.map((column, columnIndex) => {
+        if (columnIndex === 0) {
+          return '鍚堣:'
+        }
+        /* if (props.tableProp.footList.includes(column.field)) {
+           return sumNum(data, column.field)
+         }*/
+        return ''
+      })
+    ]
+  },
+
+})
+
+
+
+//璇︽儏妗� 閮ㄥ垎2
+const showCGDH = ref();
+const showDetails = ref(false);
+let detailData = [];
+const cellClickEvent = ({row}) => {
+  if(isQueryColumnId===false){
+    queryColumnId();
+  }
+
+  detailData = list.map(field => {
+    return {label: queryColumnsTitle(field), value: row[field]}
+  })
+
+  showDetails.value = true;
+  showCGDH.value = row['cgdh'];
+}
+
+//鑾峰彇琛ㄥ垪
+let list = [];
+let columnIndex = 4;//鍒楁爣澶翠粠绗嚑鍒楀紑濮嬬殑
+let isQueryColumnId = false;
+const queryColumnId = () => {
+  while (columnIndex < gridOptions.columns.length) {
+    list.push(gridOptions.columns[columnIndex].field);
+    columnIndex++;
+  }
+  isQueryColumnId = true;
+  return list;
+}
+
+//鑾峰彇琛ㄥ垪鍚�
+function queryColumnsTitle(cn) {
+  let i = 0;
+  while (i < gridOptions.columns.length + 1) {
+    if (gridOptions.columns[i].field === cn) {
+      return gridOptions.columns[i].title;
+    }
+    i++;
+  }
+}
+//璇︽儏妗� 閮ㄥ垎2 缁撴潫
+
+
+const SureStorage = () => {
+  MessageShow('纭鍏ュ簱鎴愬姛');
+
+}
+
+
+const now = new Date()
+
+//鏃堕棿蹇嵎閫夋嫨
+const datevalue = ref('')
+const shortcuts = [
+  {
+    text: '杩戜竴鍛�',
+    value: () => {
+      const end = new Date()
+      const start = new Date()
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+      return [start, end]
+    },
+  },
+  {
+    text: '杩戜竴涓湀',
+    value: () => {
+      const end = new Date()
+      const start = new Date()
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+      return [start, end]
+    },
+  },
+  {
+    text: '杩戜笁涓湀',
+    value: () => {
+      const end = new Date()
+      const start = new Date()
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+      return [start, end]
+    },
+  },
+]
+
+
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type) {
+  const $grid = xGrid.value
+  switch (type) {
+    case '鍏ュ簱':
+      //鍏ュ簱閫昏緫浠g爜TODO
+      MessageShow('鍏ュ簱鎴愬姛锛�', 'success');
+      break;
+    case '閫�璐�':
+      //閫�璐ч�昏緫浠g爜TODO
+      MessageShow('閫�璐ф垚鍔燂紒', 'success');
+      break;
+    default:
+      MessageShow('鏈煡鎿嶄綔锛�', 'error');
+      break;
+  }
+  return true;
+}
+
+//鎻愮ず淇℃伅
+const MessageShow = (content, type = 'success') => {
+  ElMessage({
+    message: content,
+    type: type,
+    showClose: true,
+  })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title = '鎿嶄綔纭鎻愮ず', type = 'warning') => {
+  ElMessageBox.confirm(
+      content,
+      title,
+      {
+        cancelButtonText: '鍙栨秷',
+        confirmButtonText: '纭畾',
+        type: type,
+        center: true,
+      }
+  )
+      //鐐瑰嚮浜嗙‘瀹�
+      .then(() => {
+        return logicExecute(czType);
+
+      })
+      //鐐瑰嚮浜嗗彇娑�
+      .catch(() => {
+        return false;
+      })
+}
+
+</script>
+
+
+<style scoped>
+:deep(.v-column-label div span) {
+  font-weight: bold;
+}
+
+
+</style>
\ No newline at end of file
diff --git a/UI-Project/vite.config.js b/UI-Project/vite.config.js
new file mode 100644
index 0000000..8fdf859
--- /dev/null
+++ b/UI-Project/vite.config.js
@@ -0,0 +1,61 @@
+import {fileURLToPath, URL} from 'node:url'
+import {defineConfig} from 'vite'
+import vue from '@vitejs/plugin-vue'
+import ReactivityTransform from '@vue-macros/reactivity-transform/vite'
+import AutoImport from 'unplugin-auto-import/vite'
+
+// https://vitejs.dev/config/
+export default defineConfig({
+  plugins: [
+    vue(),
+    ReactivityTransform(),
+    AutoImport({
+      imports: [
+        'vue-i18n',
+      ],
+      dts: './auto-imports.d.ts',
+      eslintrc: {
+        enabled: false, // 閰嶇疆鏇存柊鏃朵复鏃惰涓簍rue,
+      },
+    }),
+  ],
+  resolve: {
+    alias: {
+      'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js',
+      '@': fileURLToPath(new URL('./src', import.meta.url))
+    }
+  }, 
+  server: {
+    port: 801,
+    host: true,
+    open: false,
+    https: false,
+    proxy: {
+      '/api': {
+        target: 'http://127.0.0.1:88/',
+        changeOrigin: true,
+        rewrite: (path) => path.replace(/^\/api/, '/'),
+      },
+      // '/api2': {
+      //   target: 'http://localhost:8085/mesModuleTools',
+      //   changeOrigin: true,
+      //   pathRewrite: {
+      //     '^/api2': '',
+      //   },
+      // },
+    },
+  },
+  configureServer: ({ middlewares }) => {
+    middlewares.use(
+      '/mesModuleTools',
+      createProxyMiddleware({
+        target: 'ws://localhost:8081',
+        ws: true,
+        changeOrigin: true,
+        pathRewrite: {
+          '^/mesModuleTools': '',
+        },
+      })
+    );
+  },
+});
diff --git a/UI-Project/vue.config.js b/UI-Project/vue.config.js
new file mode 100644
index 0000000..3881acf
--- /dev/null
+++ b/UI-Project/vue.config.js
@@ -0,0 +1,17 @@
+module.exports = {
+    assetsDir: 'static',
+    parallel: false,
+    publicPath: './',
+    presets: [
+        // '@vue/cli-plugin-babel/preset', 
+        '@vue/app',
+        [
+            '@babel/preset-env',
+            {
+                useBuiltIns: 'entry'
+            }
+        ]
+    ],
+    sourceType: 'unambiguous',
+
+};
\ No newline at end of file
diff --git a/hangzhoumesParent/JsonFile/PlcCacheGlass.json b/hangzhoumesParent/JsonFile/PlcCacheGlass.json
new file mode 100644
index 0000000..01969b7
--- /dev/null
+++ b/hangzhoumesParent/JsonFile/PlcCacheGlass.json
@@ -0,0 +1,64 @@
+{
+   "plcAddressBegin":"DB11.0",
+   "plcAddressLenght":"80",
+   "dataType":"word",
+   "parameteInfor":[
+      {
+         "codeId": "A06_request_word",
+         "addressIndex":"0",
+         "addressLenght":"2", 
+         "ratio":"1", 
+         "unit":"m/min"    
+      },
+      {
+          "codeId": "A05_scanning_ID",
+          "addressIndex":"2",
+          "addressLenght":"30",
+          "ratio":"1",
+          "unit":""
+       },
+       {
+          "codeId": "Current_slot",
+          "addressIndex":"36",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       },
+        {
+          "codeId": "MES_confirmation_word",
+          "addressIndex":"38",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       },
+       {
+          "codeId": "A08_glass_status",
+          "addressIndex":"68",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       },
+       {
+          "codeId": "A10_glass_status",
+          "addressIndex":"70",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       },
+       {
+          "codeId": "A09_prohibit_film_production",
+          "addressIndex":"72",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       }
+       ,
+       {
+          "codeId": "A10_prohibit_film_production",
+          "addressIndex":"74",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       }
+   ]
+}
diff --git a/hangzhoumesParent/JsonFile/PlcCacheVerticalGlass.json b/hangzhoumesParent/JsonFile/PlcCacheVerticalGlass.json
new file mode 100644
index 0000000..231d119
--- /dev/null
+++ b/hangzhoumesParent/JsonFile/PlcCacheVerticalGlass.json
@@ -0,0 +1,392 @@
+{
+	"plcAddressBegin": "DB14.0",
+	"plcAddressLenght": "938",
+	"dataType": "word",
+	"parameteInfor": [{
+			"codeId": "D01ID",
+			"addressIndex": "32",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D02ID",
+			"addressIndex": "32",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ID1",
+			"addressIndex": "64",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ID2",
+			"addressIndex": "96",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ID3",
+			"addressIndex": "128",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ID4",
+			"addressIndex": "160",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ID5",
+			"addressIndex": "192",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ID6",
+			"addressIndex": "224",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D04ID",
+			"addressIndex": "256",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ID1",
+			"addressIndex": "288",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ID2",
+			"addressIndex": "320",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ID3",
+			"addressIndex": "352",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ID4",
+			"addressIndex": "384",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ID5",
+			"addressIndex": "416",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ID6",
+			"addressIndex": "448",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01ID1",
+			"addressIndex": "480",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01ID2",
+			"addressIndex": "512",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01ID3",
+			"addressIndex": "544",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01ID4",
+			"addressIndex": "576",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01ID5",
+			"addressIndex": "608",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01ID6",
+			"addressIndex": "640",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02ID1",
+			"addressIndex": "672",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02ID2",
+			"addressIndex": "704",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02ID3",
+			"addressIndex": "736",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02ID4",
+			"addressIndex": "768",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02ID5",
+			"addressIndex": "800",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02ID6",
+			"addressIndex": "832",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ToMES",
+			"addressIndex": "874",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ToMES",
+			"addressIndex": "876",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D01ToMES",
+			"addressIndex": "878",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D04ToMES",
+			"addressIndex": "880",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "MESToD03",
+			"addressIndex": "888",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "MESToD05",
+			"addressIndex": "890",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "MESToPLC",
+			"addressIndex": "892",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "StartAddToImport1",
+			"addressIndex": "914",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "StartAddToImport2",
+			"addressIndex": "916",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "StartAddToImport3",
+			"addressIndex": "918",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "StartAddToImport4",
+			"addressIndex": "920",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "StartAddToImport5",
+			"addressIndex": "922",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "StartAddToImport6",
+			"addressIndex": "924",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "TargetAddToImport1",
+			"addressIndex": "926",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "TargetAddToImport2",
+			"addressIndex": "928",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "TargetAddToImport3",
+			"addressIndex": "930",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "TargetAddToImport4",
+			"addressIndex": "932",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "TargetAddToImport5",
+			"addressIndex": "934",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "TargetAddToImport6",
+			"addressIndex": "936",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "deviceState",
+			"addressIndex": "864",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01State",
+			"addressIndex": "866",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02State",
+			"addressIndex": "868",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03State",
+			"addressIndex": "870",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05State",
+			"addressIndex": "872",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "MESToD01",
+			"addressIndex": "894",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "MESToD04",
+			"addressIndex": "896",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03Request",
+			"addressIndex": "898",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05Request",
+			"addressIndex": "900",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		}
+
+	]
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/JsonFile/PlcLoadGlass.json b/hangzhoumesParent/JsonFile/PlcLoadGlass.json
new file mode 100644
index 0000000..9b0432b
--- /dev/null
+++ b/hangzhoumesParent/JsonFile/PlcLoadGlass.json
@@ -0,0 +1,78 @@
+{
+  "plcAddressBegin":"DB1.2000",
+  "plcAddressLenght":"100",
+  "dataType":"word",
+  "parameteInfor":[
+    {
+      "codeId": "loadRequest",
+      "addressIndex":"0",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":"m/min"
+    },
+    {
+      "codeId": "PlcStatus",
+      "addressIndex":"10",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "MesToPlc",
+      "addressIndex":"20",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "InkageStatus",
+      "addressIndex":"22",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "WorkId",
+      "addressIndex":"24",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "GlassWidth",
+      "addressIndex":"26",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "GlassHeight",
+      "addressIndex":"28",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    }
+  ,
+    {
+      "codeId": "MesToPlcStatus",
+      "addressIndex":"40",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "MesToPlcStatusId",
+      "addressIndex":"42",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "MesTaskStatus",
+      "addressIndex":"56",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    }
+  ]
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/JsonFile/PlcTemperingGlass.json b/hangzhoumesParent/JsonFile/PlcTemperingGlass.json
new file mode 100644
index 0000000..3abe9a6
--- /dev/null
+++ b/hangzhoumesParent/JsonFile/PlcTemperingGlass.json
@@ -0,0 +1,132 @@
+{
+    "plcAddressBegin": "DB88.0",
+    "plcAddressLenght": "58",
+    "dataType": "word",
+    "parameteInfor": [
+        {
+            "codeId": "confirmationWord",
+            "addressIndex": "0",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperingLayoutId",
+            "addressIndex": "2",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "filmsid",
+            "addressIndex": "4",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperingType",
+            "addressIndex": "6",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "thickness",
+            "addressIndex": "8",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "loadingRate",
+            "addressIndex": "10",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "areaDifference",
+            "addressIndex": "12",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "state",
+            "addressIndex": "22",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "deviceState",
+            "addressIndex": "24",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "resultState",
+            "addressIndex": "26",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "loadSpeed",
+            "addressIndex": "28",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "downSpeed",
+            "addressIndex": "30",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "load1",
+            "addressIndex": "32",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "heat1",
+            "addressIndex": "34",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "heat2",
+            "addressIndex": "36",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "cool1",
+            "addressIndex": "38",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "cool2",
+            "addressIndex": "40",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "downId",
+            "addressIndex": "42",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "productionTime",
+            "addressIndex": "44",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "heatEnergy",
+            "addressIndex": "46",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "coolEnergy",
+            "addressIndex": "48",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperatureUp1",
+            "addressIndex": "50",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperatureDown1",
+            "addressIndex": "52",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperatureUp2",
+            "addressIndex": "54",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperatureDown2",
+            "addressIndex": "56",
+            "addressLenght": "2"
+        }
+    ]
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/JsonFile/PlcdownGlass.json b/hangzhoumesParent/JsonFile/PlcdownGlass.json
new file mode 100644
index 0000000..a5698c2
--- /dev/null
+++ b/hangzhoumesParent/JsonFile/PlcdownGlass.json
@@ -0,0 +1,149 @@
+{
+	"plcAddressBegin": "DB11.0",
+	"plcAddressLenght": "94",
+	"dataType": "word",
+	"parameteInfor": [
+
+		{
+			"codeId": "requestWord",
+			"addressIndex": "0",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "requestID",
+			"addressIndex": "2",
+			"addressLenght": "30"
+		},
+		{
+			"codeId": "currentCell",
+			"addressIndex": "32",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "glassStatus08",
+			"addressIndex": "36",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "glassStatus06",
+			"addressIndex": "40",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "glassStatus11",
+			"addressIndex": "42",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "glassStatus13",
+			"addressIndex": "44",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G04_error_status",
+			"addressIndex": "48",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G05_error_status",
+			"addressIndex": "50",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G06_error_status",
+			"addressIndex": "52",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "robot_error_status",
+			"addressIndex": "54",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G08_error_status",
+			"addressIndex": "56",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G09_error_status",
+			"addressIndex": "58",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G10_error_status",
+			"addressIndex": "60",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G11_error_status",
+			"addressIndex": "62",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "robot_error_status",
+			"addressIndex": "64",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G13_error_status",
+			"addressIndex": "66",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "confirmationWord",
+			"addressIndex": "72",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G06_prohibit_film_production",
+			"addressIndex": "74",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G11_prohibit_film_production",
+			"addressIndex": "76",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "G13_prohibit_film_production",
+			"addressIndex": "78",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "Glass_width",
+			"addressIndex": "80",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "Glass_height",
+			"addressIndex": "82",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "Glass_thickness",
+			"addressIndex": "84",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "Start_cell",
+			"addressIndex": "86",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "End_cell",
+			"addressIndex": "88",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "task_type",
+			"addressIndex": "90",
+			"addressLenght": "2"
+		},
+		{
+			"codeId": "alarm_signal",
+			"addressIndex": "92",
+			"addressLenght": "2"
+		}
+
+	]
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/pom.xml b/hangzhoumesParent/common/pom.xml
new file mode 100644
index 0000000..c8bb428
--- /dev/null
+++ b/hangzhoumesParent/common/pom.xml
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>hangzhoumesParent</artifactId>
+        <groupId>com.mes</groupId>
+        <version>1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>common</artifactId>
+    <packaging>pom</packaging>
+    <modules>
+        <module>servicebase</module>
+        <module>springsecurity</module>
+    </modules>
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+    <dependencies>
+
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <!--        mybatis-plus-->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.3.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.github.yulichang</groupId>
+            <artifactId>mybatis-plus-join-boot-starter</artifactId>
+            <version>1.4.8</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
+            <version>3.3.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.18.8</version>
+        </dependency>
+
+        <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpcore</artifactId>
+            <version>4.4.12</version>
+        </dependency>
+
+
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.6</version>
+        </dependency>
+
+        <!--    瀵煎叆mysql椹卞姩    -->
+        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <version>8.0.17</version>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>servlet-api</artifactId>
+            <version>2.5</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.validation</groupId>
+            <artifactId>validation-api</artifactId>
+            <version>2.0.1.Final</version>
+        </dependency>
+
+        <!--浠g爜鐢熸垚宸ュ叿-->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-generator</artifactId>
+            <version>3.4.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.velocity</groupId>
+            <artifactId>velocity-engine-core</artifactId>
+            <version>2.0</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.alibaba</groupId>
+                    <artifactId>fastjson</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid</artifactId>
+            <version>1.1.8</version>
+        </dependency>
+
+        <!--  鏁版嵁搴撹璁℃枃妗g敓鎴愬伐鍏�-->
+        <dependency>
+            <groupId>cn.smallbun.screw</groupId>
+            <artifactId>screw-core</artifactId>
+            <version>1.0.5</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.alibaba</groupId>
+                    <artifactId>fastjson</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>knife4j-spring-boot-starter</artifactId>
+            <version>2.0.9</version>
+        </dependency>
+        <!--                2.0~2.2	Knife4j 2.0.0 ~ 2.0.6-->
+        <!--        <dependency>-->
+        <!--            <groupId>io.springfox</groupId>-->
+        <!--            <artifactId>springfox-swagger2</artifactId>-->
+        <!--            <version>2.7.0</version>-->
+        <!--        </dependency>-->
+        <!--        <dependency>-->
+        <!--            <groupId>io.springfox</groupId>-->
+        <!--            <artifactId>springfox-swagger-ui</artifactId>-->
+        <!--            <version>2.7.0</version>-->
+        <!--        </dependency>-->
+
+        <!--hutool java楠岃瘉鏂规硶绫�-->
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.4.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.github.xingshuangs</groupId>
+            <artifactId>iot-communication</artifactId>
+            <version>1.4.2</version>
+        </dependency>
+
+        <!--寮曞叆redis,鎺掗櫎lettuce鐨勫紩鐢�-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>io.lettuce</groupId>
+                    <artifactId>lettuce-core</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <!-- 寮曞叆Jedis瀹㈡埗绔�-->
+        <dependency>
+            <groupId>redis.clients</groupId>
+            <artifactId>jedis</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.33</version>
+        </dependency>
+        <dependency>
+            <groupId>com.github.yulichang</groupId>
+            <artifactId>mybatis-plus-join-boot-starter</artifactId>
+            <version>1.4.12</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-websocket</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-thymeleaf</artifactId>
+        </dependency>
+    </dependencies>
+
+
+</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/pom.xml b/hangzhoumesParent/common/servicebase/pom.xml
new file mode 100644
index 0000000..4bb9465
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/pom.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>common</artifactId>
+        <groupId>com.mes</groupId>
+        <version>1.0-SNAPSHOT</version>
+
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>servicebase</artifactId>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>com.microsoft.sqlserver</groupId>
+            <artifactId>mssql-jdbc</artifactId>
+            <version>6.4.0.jre8</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.liquibase</groupId>
+            <artifactId>liquibase-core</artifactId>
+            <version>3.8.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.milo</groupId>
+            <artifactId>sdk-client</artifactId>
+            <version>0.6.8</version>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.milo</groupId>
+            <artifactId>sdk-server</artifactId>
+            <version>0.6.8</version>
+        </dependency>
+        <dependency>
+            <groupId>com.kangaroohy</groupId>
+            <artifactId>milo-spring-boot-starter</artifactId>
+            <version>3.0.6.12</version>
+        </dependency>
+
+
+    </dependencies>
+
+</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/kangaroohy/milo/configuration/MiloAutoConfiguration.java b/hangzhoumesParent/common/servicebase/src/main/java/com/kangaroohy/milo/configuration/MiloAutoConfiguration.java
new file mode 100644
index 0000000..739b239
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/kangaroohy/milo/configuration/MiloAutoConfiguration.java
@@ -0,0 +1,117 @@
+package com.kangaroohy.milo.configuration;
+
+import com.kangaroohy.milo.pool.MiloConnectFactory;
+import com.kangaroohy.milo.pool.MiloConnectPool;
+import com.kangaroohy.milo.service.MiloService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.pool2.impl.GenericKeyedObjectPoolConfig;
+import org.eclipse.milo.opcua.sdk.client.OpcUaClient;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.DependsOn;
+
+import javax.annotation.PreDestroy;
+
+/**
+ * @author mes
+ * @date 2020/4/25
+ * @desc milo-spring-boot-starter
+ * @since 0.0.1
+ */
+@Configuration
+@EnableConfigurationProperties(MiloProperties.class)
+@ConditionalOnClass({MiloService.class, MiloConnectPool.class})
+@ConditionalOnProperty(prefix = MiloProperties.PREFIX, value = "enabled", havingValue = "true", matchIfMissing = true)
+@Slf4j
+public class MiloAutoConfiguration {
+    private final MiloProperties properties;
+
+    private MiloConnectPool connectPool;
+
+    public MiloAutoConfiguration(MiloProperties properties) {
+        this.properties = properties;
+    }
+
+    @Bean(name = "miloConnectPool")
+    @ConditionalOnMissingBean({MiloConnectPool.class})
+    protected MiloConnectPool miloConnectPool() {
+        MiloConnectFactory objectFactory = new MiloConnectFactory(this.properties);
+        //璁剧疆瀵硅薄姹犵殑鐩稿叧鍙傛暟
+        GenericKeyedObjectPoolConfig<OpcUaClient> poolConfig = new GenericKeyedObjectPoolConfig<>();
+
+        MiloProperties.Pool pool = properties.getPool();
+        // 鏈�澶х┖闂叉暟
+        poolConfig.setMaxIdlePerKey(pool.getMaxIdle());
+        //鏈�灏忕┖闂�,璁剧疆涓�2琛ㄧず姹犲唴鑷冲皯瀛樻斁2涓┖闂插璞�(褰撴睜鍐呮湁2涓┖闂插璞℃椂璋冪敤borrowObject鍘诲璞℃椂浼氱珛鍗宠皟鐢ㄥ垱寤哄璞$殑鏂规硶淇濊瘉姹犲唴鏈�2涓┖闂插璞�)
+        poolConfig.setMinIdlePerKey(pool.getMinIdle());
+        //鏈�澶ф�绘暟 10
+        poolConfig.setMaxTotal(pool.getMaxTotal());
+        // 澶氫箙鎵ц涓�娆″璞℃壂鎻忥紝灏嗘棤鐢ㄧ殑瀵硅薄閿�姣侊紝榛樿-1涓嶆壂鎻�
+        // poolConfig.setTimeBetweenEvictionRuns(Duration.ofMinutes(1));
+        // 鍦ㄨ幏鍙栧璞$殑鏃跺�欐鏌ユ湁鏁堟��, 榛樿false
+        poolConfig.setTestOnBorrow(true);
+        // 鍦ㄥ綊杩樺璞$殑鏃跺�欐鏌ユ湁鏁堟��, 榛樿false
+        poolConfig.setTestOnReturn(false);
+        // 鍦ㄧ┖闂叉椂妫�鏌ユ湁鏁堟��, 榛樿false
+        poolConfig.setTestWhileIdle(false);
+        // 鏈�澶х瓑寰呮椂闂达紝 榛樿鐨勫�间负-1锛岃〃绀烘棤闄愮瓑寰呫��
+//        poolConfig.setMaxWait(Duration.ofSeconds(1));
+        // 鏄惁鍚敤鍚庤繘鍏堝嚭, 榛樿true
+        poolConfig.setLifo(true);
+        // 杩炴帴鑰楀敖鏃舵槸鍚﹂樆濉�, false绔嬪嵆鎶涘紓甯�,true闃诲鐩村埌瓒呮椂, 榛樿true
+        poolConfig.setBlockWhenExhausted(true);
+        // 姣忔閫愬嚭妫�鏌ユ椂 閫愬嚭鐨勬渶澶ф暟鐩� 榛樿3
+        poolConfig.setNumTestsPerEvictionRun(3);
+
+        //涓�瀹氳鍏抽棴jmx锛屼笉鐒秙pringboot鍚姩浼氭姤宸茬粡娉ㄥ唽浜嗘煇涓猨mx鐨勯敊璇�
+        poolConfig.setJmxEnabled(false);
+
+        //鏂板缓涓�涓璞℃睜,浼犲叆瀵硅薄宸ュ巶鍜岄厤缃�
+        connectPool = new MiloConnectPool(objectFactory, poolConfig);
+
+        initPool(pool.getInitialSize(), pool.getMaxIdle());
+        return connectPool;
+    }
+
+    @Bean
+    @ConditionalOnMissingBean(MiloService.class)
+    @DependsOn("miloConnectPool")
+    public MiloService miloService(MiloConnectPool miloConnectPool) {
+        return new MiloService(miloConnectPool, properties);
+    }
+
+    /**
+     * 棰勫厛鍔犺浇testObject瀵硅薄鍒板璞℃睜涓�
+     *
+     * @param initialSize 鍒濆鍖栬繛鎺ユ暟
+     * @param maxIdle     鏈�澶х┖闂茶繛鎺ユ暟
+     */
+    private void initPool(int initialSize, int maxIdle) {
+        if (initialSize <= 0) {
+            return;
+        }
+
+        properties.getConfig().forEach((key, config) -> {
+            for (int i = 0; i < Math.min(initialSize, maxIdle); i++) {
+                try {
+                    connectPool.addObject(config);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+            }
+        });
+
+    }
+
+    @PreDestroy
+    public void destroy() {
+        if (connectPool != null) {
+            connectPool.close();
+            log.info("all opcUaClients are closed");
+        }
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/kangaroohy/milo/pool/MiloConnectFactory.java b/hangzhoumesParent/common/servicebase/src/main/java/com/kangaroohy/milo/pool/MiloConnectFactory.java
new file mode 100644
index 0000000..187eda4
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/kangaroohy/milo/pool/MiloConnectFactory.java
@@ -0,0 +1,155 @@
+package com.kangaroohy.milo.pool;
+
+import com.kangaroohy.milo.configuration.MiloProperties;
+import com.kangaroohy.milo.exception.EndPointNotFoundException;
+import com.kangaroohy.milo.exception.IdentityNotFoundException;
+import com.kangaroohy.milo.utils.CustomUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.pool2.KeyedPooledObjectFactory;
+import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool2.impl.DefaultPooledObject;
+import org.eclipse.milo.opcua.sdk.client.OpcUaClient;
+import org.eclipse.milo.opcua.sdk.client.api.identity.AnonymousProvider;
+import org.eclipse.milo.opcua.sdk.client.api.identity.IdentityProvider;
+import org.eclipse.milo.opcua.sdk.client.api.identity.UsernameProvider;
+import org.eclipse.milo.opcua.stack.core.security.SecurityPolicy;
+import org.eclipse.milo.opcua.stack.core.types.builtin.LocalizedText;
+import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger;
+import org.eclipse.milo.opcua.stack.core.types.structured.EndpointDescription;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Optional;
+
+/**
+ * 绫� MiloConnectFactory 鍔熻兘鎻忚堪锛�<br/>
+ *
+ * @author mes
+ * @version 0.0.1
+ * @date 2023/5/4 18:56
+ */
+@Slf4j
+public class MiloConnectFactory implements KeyedPooledObjectFactory<MiloProperties.Config, OpcUaClient> {
+
+    public MiloConnectFactory(MiloProperties properties) {
+        CustomUtil.verifyProperties(properties);
+    }
+
+    /**
+     * 鍒涘缓瀵硅薄
+     *
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public PooledObject<OpcUaClient> makeObject(MiloProperties.Config key) throws Exception {
+        OpcUaClient client = null;
+        try {
+            client = createClient(key);
+            client.connect().get();
+            return new DefaultPooledObject<>(client);
+        } catch (Exception e) {
+            if (client != null) {
+                client.disconnect().get();
+            }
+            throw new InterruptedException(e.getMessage());
+        }
+    }
+
+    /**
+     * 瀵硅薄瑕佽閿�姣佹椂(validateObject鏂规硶杩斿洖false鎴栬�呰秴鏃�)鍚庤璋冪敤
+     *
+     * @param pooledObject
+     * @throws Exception
+     */
+    @Override
+    public void destroyObject(MiloProperties.Config key, PooledObject<OpcUaClient> pooledObject) throws Exception {
+        OpcUaClient opcUaClient = pooledObject.getObject();
+        log.info("disconnect opcUaClient {}", opcUaClient.getConfig().getApplicationName().getText());
+        opcUaClient.disconnect().get();
+    }
+
+    /**
+     * 姣忔鑾峰彇瀵硅薄鍜岃繕鍥炲璞℃椂浼氳璋冪敤锛屽鏋滆繑鍥瀎alse浼氶攢姣佸璞�
+     */
+    @Override
+    public boolean validateObject(MiloProperties.Config key, PooledObject<OpcUaClient> pooledObject) {
+        return true;
+    }
+
+    /**
+     * 璋冪敤鑾峰彇瀵硅薄鏂规硶鍓嶈璋冪敤
+     * 姝ゆ柟娉曚竴鑸繘琛屼竴浜涘墠缃搷浣�
+     */
+    @Override
+    public void activateObject(MiloProperties.Config key, PooledObject<OpcUaClient> pooledObject) throws Exception {
+
+    }
+
+    /**
+     * 褰撹繕鍥炲璞″苟涓攙alidateObject鏂规硶杩斿洖true鍚庤璋冪敤
+     * 涓�鑸湪姝ゆ柟娉曚腑瀵瑰垰鍒氫娇鐢ㄥ畬鎴愮殑瀵硅薄杩涜閲嶇疆
+     */
+    @Override
+    public void passivateObject(MiloProperties.Config key, PooledObject<OpcUaClient> pooledObject) throws Exception {
+
+    }
+
+    private OpcUaClient createClient(MiloProperties.Config key) throws Exception {
+        Path securityTempDir = Paths.get(System.getProperty("java.io.tmpdir"), "security");
+        Files.createDirectories(securityTempDir);
+        if (!Files.exists(securityTempDir)) {
+            throw new Exception("unable to create security dir: " + securityTempDir);
+        }
+        return OpcUaClient.create(key.getEndpoint(),
+                endpoints -> {
+                    final Optional<EndpointDescription> endpoint = endpoints
+                            .stream()
+//                            .filter(e -> e.getSecurityPolicyUri().equals(SecurityPolicy.None.getUri()))
+                            .findFirst();
+                    EndpointDescription newEndpoint = new EndpointDescription(key.getEndpoint(), endpoint.get().getServer(), endpoint.get().getServerCertificate(),
+                            endpoint.get().getSecurityMode(), endpoint.get().getSecurityPolicyUri(), endpoint.get().getUserIdentityTokens(),
+                            endpoint.get().getTransportProfileUri(), endpoint.get().getSecurityLevel());
+                    return Optional.of(newEndpoint);
+                },
+                configBuilder ->
+                        configBuilder
+                                .setApplicationName(LocalizedText.english("eclipse milo opc-ua client"))
+                                .setApplicationUri("urn:eclipse:milo:examples:client")
+                                //璁块棶鏂瑰紡
+                                .setIdentityProvider(new UsernameProvider(key.getUsername(), key.getPassword()))
+                                .setRequestTimeout(UInteger.valueOf(5000))
+                                .build()
+        );
+    }
+
+    private URI getUri(MiloProperties.Config key) {
+        try {
+            return new URI(endpointUrl(key));
+        } catch (URISyntaxException e) {
+            throw new EndPointNotFoundException("endpoint 閰嶇疆寮傚父");
+        }
+    }
+
+    private String endpointUrl(MiloProperties.Config key) {
+        return key.getEndpoint();
+    }
+
+    private SecurityPolicy securityPolicy(MiloProperties.Config key) {
+        return key.getSecurityPolicy();
+    }
+
+    private IdentityProvider identityProvider(MiloProperties.Config key) {
+        if (securityPolicy(key).equals(SecurityPolicy.None)) {
+            return new AnonymousProvider();
+        }
+        if (key.getUsername() == null || key.getPassword() == null) {
+            throw new IdentityNotFoundException("杩炴帴淇℃伅鏈畬鍠�");
+        } else {
+            return new UsernameProvider(key.getUsername(), key.getPassword());
+        }
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/BigStorageCageBaseInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/BigStorageCageBaseInfo.java
new file mode 100644
index 0000000..0d3d370
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/BigStorageCageBaseInfo.java
@@ -0,0 +1,63 @@
+package com.mes.base.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/6/21 9:40
+ * @Description:
+ */
+@Data
+public class BigStorageCageBaseInfo {
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    @ApiModelProperty(value = "宸ョ▼鍙�", position = 16)
+    private String engineerId;
+    /**
+     * 鐜荤拑id
+     */
+    @ApiModelProperty(value = "鐜荤拑id")
+    private String glassId;
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    @ApiModelProperty(value = "閽㈠寲鐗堝浘id", position = 12)
+    private Integer temperingLayoutId;
+
+    /**
+     * 閽㈠寲鐗堝浘鐗囧簭
+     */
+    @ApiModelProperty(value = "閽㈠寲鐗堝浘鐗囧簭", position = 13)
+    private Integer temperingFeedSequence;
+
+    /**
+     * 瀹�
+     */
+    @ApiModelProperty(value = "瀹�")
+    private double width;
+    /**
+     * 瀹�
+     */
+    @ApiModelProperty(value = "楂�")
+    private double height;
+
+    /**
+     * 鍘氬害
+     */
+    @ApiModelProperty(value = "鍘氬害")
+    private double thickness;
+    /**
+     * 鑶滅郴
+     */
+    @ApiModelProperty(value = "鑶滅郴")
+    private String filmsId;
+
+    /**
+     * 鏍煎瓙鍙�
+     */
+    @ApiModelProperty(value = "鏍煎瓙鍙�")
+    private Integer slot;
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/HollowBigStorageCageBaseInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/HollowBigStorageCageBaseInfo.java
new file mode 100644
index 0000000..9851fb8
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/HollowBigStorageCageBaseInfo.java
@@ -0,0 +1,74 @@
+package com.mes.base.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/6/21 9:40
+ * @Description:
+ */
+@Data
+public class HollowBigStorageCageBaseInfo {
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    @ApiModelProperty(value = "宸ョ▼鍙�", position = 16)
+    private String engineerId;
+    /**
+     * 鐜荤拑id
+     */
+    @ApiModelProperty(value = "鐜荤拑id")
+    private String glassId;
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    @ApiModelProperty(value = "閽㈠寲鐗堝浘id", position = 12)
+    private Integer temperingLayoutId;
+
+    /**
+     * 閽㈠寲鐗堝浘鐗囧簭
+     */
+    @ApiModelProperty(value = "閽㈠寲鐗堝浘鐗囧簭", position = 13)
+    private Integer temperingFeedSequence;
+
+    /**
+     * 瀹�
+     */
+    @ApiModelProperty(value = "瀹�")
+    private double width;
+    /**
+     * 瀹�
+     */
+    @ApiModelProperty(value = "楂�")
+    private double height;
+
+    /**
+     * 鍘氬害
+     */
+    @ApiModelProperty(value = "鍘氬害")
+    private Double thickness;
+
+    /**
+     * 鏍煎瓙鍙�
+     */
+    @ApiModelProperty(value = "鐜荤拑id")
+    private Integer slot;
+
+    /**
+     * /*灞傚彿
+     */
+    private Integer layer;
+
+    /**
+     * 鏍煎瓙鍙�
+     */
+    @ApiModelProperty(value = "鏄惁閰嶅")
+    private Integer isPair;
+    /**
+     * /*涓┖椤哄簭
+     */
+    @ApiModelProperty(value = "涓┖椤哄簭")
+    private Integer hollowSequence;
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/PageRequest.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/PageRequest.java
new file mode 100644
index 0000000..2696011
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/PageRequest.java
@@ -0,0 +1,19 @@
+package com.mes.base.entity;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/3/11 14:37
+ * @Description:
+ */
+@Data
+public class PageRequest {
+
+    @NotNull
+    private Integer pageNo;
+    @NotNull
+    private Integer pageSize;
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/vo/BigStorageVO.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/vo/BigStorageVO.java
new file mode 100644
index 0000000..932a730
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/vo/BigStorageVO.java
@@ -0,0 +1,20 @@
+package com.mes.base.entity.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/12/24 10:14
+ * @Description:
+ */
+@Data
+public class BigStorageVO {
+
+    @ApiModelProperty(value = "绗煎瓙鍙�")
+    private int deviceId;
+    @ApiModelProperty(value = "鏍煎瓙鍙�")
+    private int slot;
+    @ApiModelProperty(value = "鏁伴噺")
+    private int count;
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageCageTask.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageCageTask.java
new file mode 100644
index 0000000..467e1f9
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageCageTask.java
@@ -0,0 +1,35 @@
+package com.mes.bigstoragecagetask.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * (BigStorageCageInOneTask)琛ㄥ疄浣撶被
+ *
+ * @author makejava
+ * @since 2024-11-08 21:40:17
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class BigStorageCageTask {
+    /**
+     * 鐜荤拑id
+     */
+    private String glassId;
+    /**
+     * 璧峰鏍煎瓙
+     */
+    private Integer startSlot;
+    /**
+     * 鐩爣鏍煎瓙
+     */
+    private Integer targetSlot;
+    /**
+     * 浠诲姟鐘舵��
+     */
+    private Integer taskState;
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageTaskVO.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageTaskVO.java
new file mode 100644
index 0000000..2f8c5a4
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageTaskVO.java
@@ -0,0 +1,17 @@
+package com.mes.bigstoragecagetask.entity;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/3/3 15:05
+ * @Description:
+ */
+@Data
+public class BigStorageTaskVO extends BigStorageCageTask{
+
+    /**
+     * 鏄惁鐩稿悓
+     */
+    private int isSame;
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/mapper/BigStorageCageTaskMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/mapper/BigStorageCageTaskMapper.java
new file mode 100644
index 0000000..5793a69
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/mapper/BigStorageCageTaskMapper.java
@@ -0,0 +1,26 @@
+package com.mes.bigstoragecagetask.mapper;
+
+import com.mes.bigstoragecagetask.entity.BigStorageCageTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * (BigStorageCageInOneTask)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author makejava
+ * @since 2024-11-08 21:40:15
+ */
+public interface BigStorageCageTaskMapper {
+
+    List<BigStorageCageTask> queryTaskMessage(String tableName);
+
+    boolean updateTaskMessage(@Param("tableName") String tableName, @Param("task") BigStorageCageTask bigStorageCageInTask);
+
+    boolean updateOutTaskMessage(@Param("tableName") String tableName);
+
+    int saveTaskMessage(@Param("tableName") String tableName, @Param("list") List<BigStorageCageTask> taskList);
+
+    int removeAll(String tableName);
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/service/BigStorageCageTaskService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/service/BigStorageCageTaskService.java
new file mode 100644
index 0000000..a9efe94
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/service/BigStorageCageTaskService.java
@@ -0,0 +1,26 @@
+package com.mes.bigstoragecagetask.service;
+
+import com.mes.bigstoragecagetask.entity.BigStorageCageTask;
+
+import java.util.List;
+
+/**
+ * (BigStorageCageInOneTask)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author makejava
+ * @since 2024-11-08 21:40:20
+ */
+public interface BigStorageCageTaskService {
+
+
+    List<BigStorageCageTask> queryTaskMessage(String tableName);
+
+    boolean updateTaskMessage(String tableName, BigStorageCageTask bigStorageCageInTask);
+
+    boolean updateOutTaskMessage(String tableName);
+
+    int saveTaskMessage(String tableName, List<BigStorageCageTask> taskList);
+
+    int removeAll(String tableName);
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/service/impl/BigStorageCageTaskServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/service/impl/BigStorageCageTaskServiceImpl.java
new file mode 100644
index 0000000..e5d984c
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/service/impl/BigStorageCageTaskServiceImpl.java
@@ -0,0 +1,48 @@
+package com.mes.bigstoragecagetask.service.impl;
+
+import com.mes.bigstoragecagetask.entity.BigStorageCageTask;
+import com.mes.bigstoragecagetask.mapper.BigStorageCageTaskMapper;
+import com.mes.bigstoragecagetask.service.BigStorageCageTaskService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * (BigStorageCageInOneTask)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author makejava
+ * @since 2024-11-08 21:40:23
+ */
+@Service
+public class BigStorageCageTaskServiceImpl implements BigStorageCageTaskService {
+
+    @Resource
+    BigStorageCageTaskMapper bigStorageCageInTaskMapper;
+
+    @Override
+    public List<BigStorageCageTask> queryTaskMessage(String tableName) {
+        return bigStorageCageInTaskMapper.queryTaskMessage(tableName);
+    }
+
+    @Override
+    public boolean updateTaskMessage(String tableName, BigStorageCageTask bigStorageCageTask) {
+        return bigStorageCageInTaskMapper.updateTaskMessage(tableName, bigStorageCageTask);
+    }
+
+    @Override
+    public boolean updateOutTaskMessage(String tableName) {
+        return bigStorageCageInTaskMapper.updateOutTaskMessage(tableName);
+    }
+
+    @Override
+    public int saveTaskMessage(String tableName, List<BigStorageCageTask> taskList) {
+        return bigStorageCageInTaskMapper.saveTaskMessage(tableName, taskList);
+    }
+
+    @Override
+    public int removeAll(String tableName) {
+        return bigStorageCageInTaskMapper.removeAll(tableName);
+    }
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
new file mode 100644
index 0000000..419a29e
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
@@ -0,0 +1,325 @@
+package com.mes.common.config;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/24 10:33
+ * @Description:
+ */
+public class Const {
+    //榛樿瀵嗙爜
+    public static final String DEFULT_PASSWORD = "123456";
+    //榛樿瑙掕壊
+    public static final Long DEFULT_ROLE = 1L;
+
+    /**
+     * 纾ㄨ竟娓呮礂鍓�
+     */
+    /**
+     * A09鍑虹墖鐩爣浣嶇疆  d02鍗ц浆绔�    2001
+     * A10鍑虹墖鐩爣浣嶇疆  d05鍗ц浆绔�    2002
+     */
+    public static final Integer OUT_TARGET_POSITION_ZERO = 0;
+    public static final Integer A09_OUT_TARGET_POSITION = 2001;
+    public static final Integer A10_OUT_TARGET_POSITION = 2002;
+
+    /**
+     * 鍗у紡鐞嗙墖鍑虹墖鐩爣鏂瑰悜
+     */
+    public static final Integer ONE_OUT_TARGET_POSITION = 1;
+    public static final Integer TWO_OUT_TARGET_POSITION = 2;
+    /**
+     * 鍗у紡鐞嗙墖 纾ㄨ竟鍓嶇墖鍙扮姸鎬�
+     * 绌洪棽 0
+     * 蹇欑 1
+     * 绂佺敤 2
+     */
+    public static final String OUT_FREE = "0";
+    public static final String OUT_BUSY = "1";
+    public static final String OUT_DISABLE = "2";
+    public static final List<String> OUT_DISABLE_ALL = Arrays.asList("1", "2");
+
+
+    /**
+     * A09鍑虹墖鐩爣浣嶇疆  d02鍗ц浆绔� 閽㈠寲鍑虹墖    3001
+     * A10鍑虹墖鐩爣浣嶇疆  d05鍗ц浆绔� 浜哄伐鍑虹墖    3002
+     */
+//    public static final Integer TEMPERING_OUT_TARGET_POSITION = 3001;
+//    public static final Integer ARTIFICIAL_OUT_TARGET_POSITION = 3002;
+//    public static final List<Integer> OUT_TARGET_POSITION_ALL = Arrays.asList(3001, 3002);
+
+    /**
+     * 涔変箤纾ㄨ竟绾�
+     * A09鍑虹墖鐩爣浣嶇疆  d02鍗ц浆绔� 閽㈠寲鍑虹墖    930
+     * A10鍑虹墖鐩爣浣嶇疆  d05鍗ц浆绔� 浜哄伐鍑虹墖    931
+     */
+    public static final Integer TEMPERING_OUT_TARGET_POSITION = 930;
+    public static final Integer ARTIFICIAL_OUT_TARGET_POSITION = 931;
+    public static final List<Integer> OUT_TARGET_POSITION_ALL = Arrays.asList(930, 931);
+
+    /**
+     * 鍗у紡鐞嗙墖绗艰鎯呰〃鐜荤拑鐘舵��
+     * 璇嗗埆鍚庢垚鍔熺姸鎬�0
+     * 璇嗗埆鍚庢垚鍔熻繘绗肩殑鐘舵��100
+     * 鍑虹墖浠诲姟101
+     * 浜哄伐涓嬬墖102
+     * 鍑虹墖涓�103
+     * 璋冨害涓�104
+     * 鐮存崯8
+     * 鎷胯蛋9
+     */
+    public static final Integer GLASS_STATE_NEW = 0;
+    public static final Integer GLASS_STATE_IN = 100;
+    public static final Integer GLASS_STATE_OUT = 101;
+    public static final Integer GLASS_STATE_ARTIFICIAL = 102;
+    public static final Integer GLASS_STATE_OUT_ING = 103;
+    public static final Integer GLASS_STATE_SCHEDULE_ING = 104;
+    public static final Integer GLASS_STATE_DAMAGE = 8;
+    public static final Integer GLASS_STATE_TAKE = 9;
+    public static final List<Integer> GLASS_STATE_DAMAGE_TAKE = Arrays.asList(8, 9);
+    public static final List<Integer> GLASS_STATE_IN_ALL = Arrays.asList(100, 102, 103, 104);
+    public static final List<Integer> GLASS_STATE_IN_ALL_ZERO = Arrays.asList(0, 100, 102, 103, 104);
+
+    /**
+     * 鍗х浠诲姟绫诲瀷
+     * 绌轰换鍔� 0
+     * 杩涚墖浠诲姟 1
+     * 鍑虹墖浠诲姟 2
+     * 鐩撮�氫换鍔� 3
+     * 杩涜涓� 4
+     * 缁撴潫 5
+     * 鍏朵粬 6
+     */
+    public static final Integer GLASS_CACHE_TYPE_EMPTY = 0;
+    public static final Integer GLASS_CACHE_TYPE_IN = 1;
+    public static final Integer GLASS_CACHE_TYPE_OUT = 2;
+    public static final Integer GLASS_CACHE_TYPE_THROUGH = 3;
+    public static final Integer GLASS_CACHE_TYPE_RUNNING = 4;
+    public static final Integer GLASS_CACHE_TYPE_FINISH = 5;
+    public static final Integer GLASS_CACHE_TYPE_OTHER = 6;
+    public static final List<Integer> GLASS_CACHE_TYPE_OUT_ALL = Arrays.asList(2, 3);
+    public static final List<Integer> GLASS_CACHE_TYPE_IN_ALL = Arrays.asList(1, 3);
+
+    /**
+     * 纾ㄨ竟浠诲姟鐜荤拑鐘舵��
+     * 杩涚墖浠诲姟1
+     * 鍑虹墖浠诲姟2
+     */
+    public static final Integer EDG_GLASS_BEFORE = 0;
+    public static final Integer EDG_GLASS_START = 1;
+    public static final Integer EDG_GLASS_SUCCESS = 2;
+
+    /**
+     * 澶х悊鐗囩鐘舵��
+     * 1鍗曟満鑷姩鐘舵��
+     * 2鑱旀満鑷姩鐘舵��
+     * 3鎵嬪姩鐘舵��
+     */
+    public static final Integer BIG_STORAGE_STAND_ALONE = 1;
+    public static final Integer BIG_STORAGE_ONLINE = 2;
+    public static final Integer BIG_STORAGE_MT = 3;
+
+    /**
+     * 澶х悊鐗囩浠诲姟绫诲瀷
+     * 1銆侀挗鍖栧墠杩涚墖
+     * 2銆侀挗鍖栧墠鍑虹墖
+     * 3銆佽皟搴︿换鍔�
+     * 4銆侀挗鍖栧悗杩涚墖
+     * 5銆侀挗鍖栧悗鍑虹墖
+     * 6銆佽皟搴︿换鍔�
+     */
+    public static final Integer BIG_STORAGE_BEFORE_IN = 1;
+    public static final Integer BIG_STORAGE_BEFORE_OUT = 2;
+    public static final Integer BIG_STORAGE_BEFORE_DISPATCH = 3;
+    public static final Integer BIG_STORAGE_AFTER_IN = 4;
+    public static final Integer BIG_STORAGE_AFTER_OUT = 5;
+    public static final Integer BIG_STORAGE_AFTER_DISPATCH = 6;
+
+    /**
+     * 澶х悊鐗囩璇锋眰
+     * 0 澶х悊鐗囩鏃犺姹�
+     * 1 澶х悊鐗囩杩涚墖璇锋眰
+     */
+    public static final String BIG_STORAGE_REQUEST = "0";
+    public static final String BIG_STORAGE_REQUEST_IN = "1";
+
+    /**
+     * 鍗ц浆绔嬭繘鐗囪姹�
+     * 1 浠诲姟鐢熸垚
+     * 2 鍗ц浆绔嬭繘鐗囧畬鎴�
+     * 3 澶ц溅杩涚墖瀹屾垚
+     * 4 澶х悊鐗囩杩涚墖瀹屾垚
+     * 8 澶х悊鐗囩杩涚墖鐮存崯
+     * 9 澶х悊鐗囩杩涚墖鎷胯蛋
+     */
+    public static final Integer BIG_STORAGE_IN_NEW = 1;
+    public static final Integer BIG_STORAGE_IN_UP = 2;
+    public static final Integer BIG_STORAGE_IN_CAR = 3;
+    public static final Integer BIG_STORAGE_IN_SLOT = 4;
+    //    public static final Integer BIG_STORAGE_IN_DAMAGE = 8;
+//    public static final Integer BIG_STORAGE_IN_ERROR = 9;
+    public static final List<Integer> BIG_STORAGE_IN_UP_ALL = Arrays.asList(1, 2);
+    /**
+     * 鍗ц浆绔嬪嚭鐗囪姹�
+     * 1 浠诲姟鐢熸垚
+     * 2 鐜荤拑杩涘ぇ杞﹀畬鎴�
+     * 3 澶ц溅鍑虹墖瀹屾垚
+     * 8 澶х悊鐗囩杩涚墖鐮存崯
+     * 9 澶х悊鐗囩杩涚墖鎷胯蛋
+     */
+    public static final Integer BIG_STORAGE_OUT_NEW = 1;
+    public static final Integer BIG_STORAGE_OUT_CAR = 2;
+    public static final Integer BIG_STORAGE_OUT_SUCCESS = 3;
+    //    public static final Integer BIG_STORAGE_OUT_DAMAGE = 8;
+//    public static final Integer BIG_STORAGE_OUT_ERROR = 9;
+    public static final List<Integer> BIG_STORAGE_OUT_ALL = Arrays.asList(2, 3);
+
+    /**
+     * 鍗ц浆绔嬪嚭鐗囪姹�
+     * 1 涓婅溅绛夊緟
+     * 2 涓婅溅鍚姩
+     */
+    public static final Integer BIG_STORAGE_IN_WAIT = 1;
+    public static final Integer BIG_STORAGE_IN_RUN = 2;
+
+    /**
+     * 閽㈠寲灏忕墖琛�
+     * -1 鐢熸垚浠诲姟
+     * 0  鍑虹墖瀹屾垚
+     * 1  鎽嗙墖瀹屾垚
+     * 2  杩涚倝瀹屾垚
+     * 3  閽㈠寲瀹屾垚
+     * 4  鍑虹墖瀹屾垚
+     * 8  鐮存崯
+     * 9  鎷胯蛋
+     */
+
+    public static final Integer TEMPERING_NEW = -1;
+    public static final Integer TEMPERING_OUT = 0;
+    public static final Integer TEMPERING_DROP = 1;
+    public static final Integer TEMPERING_START = 2;
+    public static final Integer TEMPERING_SUCCESS = 3;
+    public static final Integer TEMPERING_END = 4;
+    public static final Integer TEMPERING_PAUSE = 5;
+    public static final Integer TEMPERING_DAMAGE = 8;
+    public static final Integer TEMPERING_TAKE = 9;
+
+    /**
+     * 涓嬬墖
+     */
+    /**
+     * 鎵ц绾胯矾鏍煎瓙淇℃伅
+     */
+    public static final List<Integer> G06_WORK_STATION = Arrays.asList(1, 2, 3);
+    public static final List<Integer> G11_WORK_STATION = Arrays.asList(4, 5, 6);
+    public static final int G13_WORK_STATION = 7;
+    public static final List<Integer> WORK_STATION_ALL = Arrays.asList(1, 2, 3, 4, 5, 6, 7);
+
+    /**
+     * 鍚敤 1
+     * 绂佺敤 0
+     */
+    public static final Integer SLOT_ON = 1;
+    public static final Integer SLOT_OFF = 0;
+
+    /**
+     * 涓嬬墖浠诲姟鐜荤拑鐘舵��
+     * 鐢熸垚浠诲姟0
+     * 鍑虹墖浠诲姟2
+     */
+    public static final Integer UNLOAD_GLASS_CREATE = 0;
+    public static final Integer UNLOAD_GLASS_OUT = 1;
+    public static final Integer UNLOAD_GLASS_DOWN = 2;
+
+
+    /**
+     * 鍘熺墖浠撳偍浠诲姟绫诲瀷
+     * 杩涚墖浠诲姟1
+     * 鍑虹墖浠诲姟2
+     * 璋冨害浠诲姟3
+     * 杩涚墖璇锋眰4
+     * 鍑虹墖璇锋眰5
+     */
+    public static final Integer RAW_GLASS_TASK_TYPE_IN = 1;
+    public static final Integer RAW_GLASS_TASK_TYPE_OUT = 2;
+    public static final Integer RAW_GLASS_TASK_TYPE_DISPATCH = 3;
+    public static final Integer RAW_GLASS_TASK_TYPE_IN_REQUEST = 4;
+    public static final Integer RAW_GLASS_TASK_TYPE_OUT_REQUEST = 5;
+
+    /**
+     * 鍘熺墖浠撳偍浠诲姟鐘舵��
+     * 鏂板缓 0
+     * 杩愯涓� 1
+     * 宸插畬鎴�2
+     */
+    public static final Integer ENGINEERING_NEW = 0;
+    public static final Integer ENGINEERING_RUNNING = 1;
+    public static final Integer ENGINEERING_SUCCESS = 2;
+
+    /**
+     * 鍘熺墖浠撳偍浠诲姟绫诲瀷
+     * 鍦ㄧ鍐�100
+     * 鍑虹101
+     * 鍑嗗鍑虹102
+     * 鎵ц涓�103
+     * 鍦ㄨ溅涓�104
+     * 鍑嗗澶嶄綅105
+     */
+    public static final Integer RAW_GLASS_STATE_IN = 100;
+    public static final Integer RAW_GLASS_STATE_OUT = 101;
+    public static final Integer RAW_GLASS_STATE_WAIT_OUT = 102;
+    public static final Integer RAW_GLASS_STATE_RUNNING = 103;
+    public static final Integer RAW_GLASS_STATE_CAR = 104;
+    public static final Integer RAW_GLASS_STATE_RESET = 105;
+    public static final List<Integer> RAW_GLASS_STATE_IN_ALL = Arrays.asList(100, 102, 103);
+
+    public static final Integer RAW_GLASS_TASK_NEW = 0;
+    public static final Integer RAW_GLASS_TASK_SUCCESS = 1;
+    public static final Integer RAW_GLASS_TASK_FAILURE = 2;
+
+    /**
+     * 璁惧鍙�
+     */
+    public static final List<Integer> RAW_GLASS_DEVICE = Arrays.asList(1, 2, 3);
+
+    /**
+     * 鍘熺墖涓婄墖鐘舵��
+     * 0 鏂板
+     * 100 宸插畬鎴�
+     */
+    public static final Integer LOAD_RAW_GLASS_NEW = 0;
+    public static final Integer LOAD_RAW_GLASS_SUCCESS = 100;
+
+    /**
+     * 澶х悊鐗囩浠诲姟鍚姩淇″彿
+     * 0 绌轰换鍔�
+     * 1 鍚姩
+     */
+    public static final Integer BIG_STORAGE_TASK_EMPTY = 0;
+    public static final Integer BIG_STORAGE_TASK_RUNNING = 1;
+
+    /**
+     * 涓┖澶х悊鐗囩鍑虹墖鐘舵�両
+     * 0 绌轰换鍔�
+     * 1 鍚姩
+     * 2 鏆傚仠
+     * 3 瀹屾垚
+     */
+    public static final Integer HOLLOW_FLOW_CARD_NEW = 0;
+    public static final Integer HOLLOW_FLOW_CARD_START = 1;
+    public static final Integer HOLLOW_FLOW_CARD_PAUSE = 2;
+    public static final Integer HOLLOW_FLOW_CARD_SUCCESS = 3;
+
+    /**
+     * 涓┖澶х悊鐗囩鍑虹墖鐘舵�両
+     * 0 鏈繘绗�
+     * 1 鍗犵敤
+     * 2 杩涚瀹屾垚
+     */
+    public static final Integer HOLLOW_RELATION_NEW = 0;
+    public static final Integer HOLLOW_RELATION_OCCUPY = 1;
+    public static final Integer HOLLOW_RELATION_SUCCESS = 2;
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/ConstSysConfig.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/ConstSysConfig.java
new file mode 100644
index 0000000..44f9f29
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/ConstSysConfig.java
@@ -0,0 +1,87 @@
+package com.mes.common.config;
+
+
+/**
+ * @Author : zt
+ * @Date: 2025/4/08 10:33
+ * @Description:
+ */
+public class ConstSysConfig {
+
+    // 閽㈠寲鐐夋暟闃堝��
+    public static final Integer CACHE_THRESHOLD = 1;
+    // 纾ㄨ竟鍙傛暟鎹㈢畻鐜�
+    public static final Integer CACHE_RATIO = 2;
+    // 鍗х悊绗兼渶澶ч暱杈�
+    public static final Integer CACHE_CACHE_WIDTH = 3;
+    // 鍗х悊绗兼渶澶х煭杈�
+    public static final Integer CACHE_CACHE_HEIGHT = 4;
+    // 纾ㄨ竟浜岀嚎鏈�澶ч暱杈�
+    public static final Integer CACHE_MAX_FIRST_LENGTH = 5;
+    // 纾ㄨ竟浜岀嚎鏈�澶х煭杈�
+    public static final Integer CACHE_MAX_SECOND_LENGTH = 6;
+    // 纾ㄨ竟涓�绾挎渶灏忛暱杈�
+    public static final Integer CACHE_MIN_ONE_FIRST_LENGTH = 7;
+    // 纾ㄨ竟涓�绾挎渶灏忕煭杈�
+    public static final Integer CACHE_MIN_ONE_SECOND_LENGTH = 8;
+    // 纾ㄨ竟浜岀嚎鏈�灏忛暱杈�
+    public static final Integer CACHE_MIN_TWO_FIRST_LENGTH = 9;
+    // 纾ㄨ竟浜岀嚎鏈�灏忕煭杈�
+    public static final Integer CACHE_MIN_TWO_SECOND_LENGTH = 10;
+    // 鍗х悊鐜荤拑闂撮殭
+    public static final Integer CACHE_GLASS_GAP = 11;
+    // 鍗х悊鏍煎瓙瀹藉害
+    public static final Integer CACHE_CELL_LENGTH = 12;
+    // 浜屽彿绾挎渶澶у帤搴�(涓嶅寘鎷�)
+    public static final Integer CACHE_MAX_THICKNESS = 13;
+
+    // 閽㈠寲鍑虹墖鎺掑簭鏂瑰紡
+    public static final Integer CACHE_SEQUENCE_ORDER_TRUE = 14;
+
+    // 涓�鐐夌幓鐠冨崰鐢ㄦ牸瀛愭暟锛堣皟搴︼級
+    public static final Integer VERTICAL_MIN_COUNT = 15;
+    // 澶ц溅瀹藉害
+    public static final Integer VERTICAL_CAR_WIDTH = 16;
+    // 鏍煎瓙瀹藉害
+    public static final Integer VERTICAL_SLOT_WIDTH = 17;
+    // 杩涚墖杞︽渶澶х幓鐠冩暟-1
+    public static final Integer VERTICAL_IN_CAR_SIZE = 18;
+    // 鍑虹墖杞︽渶澶х幓鐠冩暟
+    public static final Integer VERTICAL_OUT_CAR_SIZE = 19;
+    // 鐜荤拑闂撮殭
+    public static final Integer VERTICAL_GLASS_GAP = 20;
+    // 閽㈠寲鐐夐暱搴�
+    public static final Integer VERTICAL_X_MAX_SIZE = 21;
+    // 鏍煎瓙鏈�澶ч珮搴�
+    public static final Integer VERTICAL_SLOT_MAX_HEIGHT = 22;
+    // 鏍煎瓙鏈�澶у帤搴�
+    public static final Integer VERTICAL_SLOT_MAX_THICKNESS = 23;
+    // 閽㈠嚭鐩爣浣嶇疆
+    public static final Integer VERTICAL_TEMPERING_OUT_TARGET_POSITION = 24;
+    // 浜哄伐涓嬬墖鐩爣浣嶇疆
+    public static final Integer VERTICAL_ARTIFICIAL_OUT_TARGET_POSITION = 25;
+
+
+    // 澶ц溅瀹藉害
+    public static final Integer HOLLOW_CAR_WIDTH = 26;
+    // 鏍煎瓙瀹藉害
+    public static final Integer HOLLOW_SLOT_WIDTH = 27;
+    // 杩涚墖杞︽渶澶х幓鐠冩暟-1
+    public static final Integer HOLLOW_IN_CAR_SIZE = 28;
+    // 鍑虹墖杞︽渶澶х幓鐠冩暟
+    public static final Integer HOLLOW_OUT_CAR_SIZE = 29;
+    // 鐜荤拑闂撮殭
+    public static final Integer HOLLOW_GLASS_GAP = 30;
+    // 鏍煎瓙鏈�澶ч珮搴�
+    public static final Integer HOLLOW_SLOT_MAX_HEIGHT = 31;
+    // 鏍煎瓙鏈�澶у帤搴�
+    public static final Integer HOLLOW_SLOT_MAX_THICKNESS = 32;
+
+    // 閽㈠寲鐐夐暱搴�
+    public static final Integer TEMPERING_WIDTH = 33;
+    // 閽㈠寲鐐夊搴�
+    public static final Integer TEMPERING_HEIGHT = 34;
+
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/MybatisPlusConfig.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/MybatisPlusConfig.java
new file mode 100644
index 0000000..94e02f0
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/MybatisPlusConfig.java
@@ -0,0 +1,30 @@
+package com.mes.common.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+
+/**
+ * @author zhoush
+ * @Date 2024/1/26 13:44
+ */
+
+@MapperScan(basePackages = "com.mes.*.mapper")
+@Configuration
+public class MybatisPlusConfig {
+
+    /**
+     * 娣诲姞鍒嗛〉鎻掍欢
+     */
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
+        return interceptor;
+    }
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Swagger2Config.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Swagger2Config.java
new file mode 100644
index 0000000..c0b8e1f
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Swagger2Config.java
@@ -0,0 +1,99 @@
+package com.mes.common.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Contact;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+
+/**
+ * @author zhan_py
+ * @Date 2024/1/26 16:11
+ * Swagger2閰嶇疆淇℃伅
+ */
+@Configuration
+public class Swagger2Config {
+
+
+    @Bean
+    public Docket moduleDocket() {
+        return docket("mes鎺ュ彛鏂囨。", "com.mes");
+    }
+
+
+    private Docket docket(String groupName, String basePackages) {
+        return new Docket(DocumentationType.SWAGGER_2)
+                .groupName(groupName)
+                .apiInfo(apiInfo())
+                .select()
+                .apis(RequestHandlerSelectors.basePackage(basePackages))
+                .paths(PathSelectors.any())
+                .build();
+    }
+
+    private ApiInfo apiInfo() {
+        return new ApiInfoBuilder()
+                .title("mes鎺ュ彛鏂囨。绯荤粺")
+                .description("mesApi鎺ュ彛鏂囨。绯荤粺")
+                .license("Powered By mes")
+                .licenseUrl("http://127.0.0.1")
+                .termsOfServiceUrl("http://127.0.0.1")
+                .contact(new Contact("mes", "http://127.0.0.1", "beibo@mes.com"))
+                .version("V1.0.0")
+                .build();
+    }
+
+
+//    @Bean
+//    public Docket webApiConfig() {
+//        List<Parameter> pars = new ArrayList<>();
+//        ParameterBuilder tokenPar = new ParameterBuilder();
+//        tokenPar.name("userId")
+//                .description("鐢ㄦ埛token")
+//                .defaultValue("1")
+//                .modelRef(new ModelRef("string"))
+//                .parameterType("header")
+//                .required(false)
+//                .build();
+//        pars.add(tokenPar.build());
+//
+//        return new Docket(DocumentationType.SWAGGER_2)
+//                .apiInfo(webApiInfo())
+//                .select()
+//                //鍙樉绀篴pi璺緞涓嬬殑椤甸潰
+//                .apis(RequestHandlerSelectors.basePackage("com.mes"))
+//                .paths(PathSelectors.any())
+//                .build()
+//                .globalOperationParameters(pars)
+//                .securitySchemes(Collections.EMPTY_LIST)
+//                .securityContexts(Arrays.asList(securityContext()));
+//    }
+//
+//    private SecurityContext securityContext() {
+//        return SecurityContext.builder()
+//                .securityReferences(defaultAuth())
+//                .forPaths(PathSelectors.any())
+//                .build();
+//    }
+//
+//    private List<SecurityReference> defaultAuth() {
+//        AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
+//        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
+//        authorizationScopes[0] = authorizationScope;
+//        return Arrays.asList(new SecurityReference("Authorization", authorizationScopes));
+//    }
+//
+//
+//    private ApiInfo webApiInfo() {
+//        return new ApiInfoBuilder()
+//                .title("缃戠珯-API鏂囨。")
+//                .description("鏈枃妗f弿杩颁簡mes缃戠珯寰湇鍔℃帴鍙e畾涔�")
+//                .version("1.0")
+//                .contact(new Contact("zhan_py", "", ""))
+//                .build();
+//    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/WebSocketConfig.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/WebSocketConfig.java
new file mode 100644
index 0000000..f5d16bf
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/WebSocketConfig.java
@@ -0,0 +1,21 @@
+package com.mes.common.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.socket.server.standard.ServerEndpointExporter;
+
+/**
+ * @author SNG-010
+ */
+@Configuration
+public class WebSocketConfig {
+    /**
+     * bean娉ㄥ唽锛氫細鑷姩鎵弿甯︽湁@ServerEndpoint娉ㄨВ澹版槑鐨刉ebsocket Endpoint(绔偣)锛屾敞鍐屾垚涓篧ebsocket bean銆�
+     * 瑕佹敞鎰忥紝濡傛灉椤圭洰浣跨敤澶栫疆鐨剆ervlet瀹瑰櫒锛岃�屼笉鏄洿鎺ヤ娇鐢╯pringboot鍐呯疆瀹瑰櫒鐨勮瘽锛屽氨涓嶈娉ㄥ叆ServerEndpointExporter锛屽洜涓哄畠灏嗙敱瀹瑰櫒鑷繁鎻愪緵鍜岀鐞嗐��
+     */
+    @Bean
+    public ServerEndpointExporter serverEndpointExporter() {
+        return new ServerEndpointExporter();
+    }
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/exception/GlobalExceptionHandler.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/exception/GlobalExceptionHandler.java
new file mode 100644
index 0000000..2d10ece
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/exception/GlobalExceptionHandler.java
@@ -0,0 +1,32 @@
+package com.mes.common.exception;
+
+import com.mes.utils.Result;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.ControllerAdvice;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+/**
+ * @author zhoush
+ * @Date 2024/1/26 15:31
+ */
+@ControllerAdvice
+@Slf4j
+public class GlobalExceptionHandler {
+    /**
+     * 濡傛灉鏄痵erviceExcaption锛屽垯璋冪敤璇ユ柟娉�
+     */
+    @ExceptionHandler(ServiceException.class)
+    @ResponseBody
+    public Result handle(ServiceException se) {
+        return Result.error(se.getCode(), se.getMessage());
+    }
+
+    @ExceptionHandler(Exception.class)
+    @ResponseBody
+    public Result<Object> error(Exception e) {
+        e.printStackTrace();
+        return Result.error();
+    }
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/exception/ServiceException.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/exception/ServiceException.java
new file mode 100644
index 0000000..0c9ddbc
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/exception/ServiceException.java
@@ -0,0 +1,14 @@
+package com.mes.common.exception;
+
+import com.mes.utils.ResultCodeEnum;
+import lombok.Getter;
+
+@Getter
+public class ServiceException extends RuntimeException {
+    private Integer code;
+
+    public ServiceException(ResultCodeEnum resultCodeEnum, String msg) {
+        super(msg);
+        this.code = resultCodeEnum.getCode();
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/handler/MyMetaObjectHandler.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/handler/MyMetaObjectHandler.java
new file mode 100644
index 0000000..fb96335
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/handler/MyMetaObjectHandler.java
@@ -0,0 +1,22 @@
+package com.mes.common.handler;
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Component
+public class MyMetaObjectHandler implements MetaObjectHandler {
+    @Override
+    public void insertFill(MetaObject metaObject) {
+        //灞炴�у悕绉帮紝涓嶆槸瀛楁鍚嶇О
+        this.setFieldValByName("gmtCreate", new Date(), metaObject);
+        this.setFieldValByName("gmtModified", new Date(), metaObject);
+    }
+
+    @Override
+    public void updateFill(MetaObject metaObject) {
+        this.setFieldValByName("gmtModified", new Date(), metaObject);
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
new file mode 100644
index 0000000..bf3275c
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
@@ -0,0 +1,90 @@
+package com.mes.damage.controller;
+
+
+import com.mes.damage.entity.Damage;
+import com.mes.damage.entity.DamagePrint;
+import com.mes.damage.service.DamageService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-25
+ */
+@Api(tags = "鎶ュ伐淇℃伅")
+@RestController
+@RequestMapping("/damage")
+@ResponseBody
+public class DamageController {
+
+    @Autowired(required=true)
+    private DamageService damageService;
+
+    @ApiOperation("鎶ュ伐鏁版嵁鏌ヨ")
+    @PostMapping("/selectDamage")
+    public Result selectDamage(@RequestBody Map map) {
+        String startTime=map.get("startTime").toString();
+        String endTime=map.get("endTime").toString();
+        int type =Integer.parseInt(map.get("type").toString());
+        int status =Integer.parseInt(map.get("status").toString());
+        String workingProcedure =map.get("workingProcedure").toString();
+        return Result.build(200,"鏌ヨ鎴愬姛",damageService.selectDamage(startTime,endTime,type,status, workingProcedure));
+    }
+
+    @ApiOperation("鎶ュ伐")
+    @PostMapping("/submitDamage")
+    public Result submitDamage(@RequestBody List<Damage> damageList) {
+        damageService.submitDamage(damageList);
+        if(damageList.get(0).getStatus()==1){
+            damageList.forEach(damage -> damage.setStatus(3));
+        }else{
+            damageList.forEach(damage -> damage.setStatus(8));
+        }
+        damageService.updateBatchById(damageList);
+        return Result.build(200,"鎶ュ伐鎴愬姛",1);
+    }
+
+    @ApiOperation("鎶ュ伐鏁版嵁淇敼")
+    @PostMapping("/updateDamage")
+    public Result updateDamage(@RequestBody List<Damage> damageList) {
+        damageService.updateBatchById(damageList);
+        return Result.build(200,"淇敼鎴愬姛",1);
+    }
+
+    @ApiOperation("鎶ュ伐鏁版嵁鏂板")
+    @PostMapping("/insertDamage")
+    public Result insertDamage(@RequestBody Damage damage) {
+        damageService.insertDamage(damage);
+        return Result.build(200,"鏂板鎴愬姛",1);
+    }
+    @ApiOperation("鎷胯蛋鏁版嵁鏌ヨ")
+    @PostMapping("/selectDamagePrint")
+    public Result selectDamagePrint(@RequestBody Damage damage) {
+        List<DamagePrint> damage2=damageService.selectDamagePrint(damage);
+        return Result.build(200,"鏌ヨ鎴愬姛",damage2);
+    }
+    @ApiOperation("鎷胯蛋鎵撳嵃鏌ヨ")
+    @PostMapping("/selectDamagePrintDetails")
+    public Result selectDamagePrintDetails(@RequestBody Damage damage) {
+        List<DamagePrint> damage2=damageService.selectDamagePrintDetails(damage);
+        return Result.build(200,"鏌ヨ鎴愬姛",damage2);
+    }
+    @ApiOperation("鑷姩鎶ュ伐")
+    @PostMapping("/autoSubmitReport")
+    public Result autoSubmitReport(String glassId, int deviceId, String workingProcedure, String remark, int type) {
+        damageService.autoSubmitReport(glassId,deviceId,workingProcedure,remark,type);
+        return Result.build(200,"鏌ヨ鎴愬姛","");
+    }
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/Damage.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/Damage.java
new file mode 100644
index 0000000..52b355e
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/Damage.java
@@ -0,0 +1,129 @@
+package com.mes.damage.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import java.sql.Timestamp;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class Damage implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 绾胯矾
+     */
+    private Integer line;
+
+    /**
+     * 宸ュ簭
+     */
+    private String workingProcedure;
+
+    /**
+     * 鐜荤拑id
+     */
+    private String glassId;
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    private String engineerId;
+
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+
+    /**
+     * 鐢熶骇鏃堕棿
+     */
+    private Timestamp damageTime;
+
+    /**
+     * 澶囨敞
+     */
+    private String remark;
+
+    /**
+     * 绫诲瀷锛�0锛氭姤宸� 1锛氱牬鎹� 2锛氭嬁璧�
+     */
+    private Integer type;
+
+    /**
+     * 鐘舵�侊細0锛氭湭鎶ュ伐 1锛氬凡鎶ュ伐
+     */
+    private Integer status;
+
+    /**
+     * 娴佺▼鍗�
+     */
+    private String processId;
+
+    /**
+     * 搴忓彿
+     */
+    private Integer orderNumber;
+
+    /**
+     * 宸ヨ壓纭搴忓彿
+     */
+    private Integer technologyNumber;
+
+    /**
+     * 鐮存崯绫诲瀷
+     */
+    private String breakageType;
+
+    /**
+     * 鐮存崯鍘熷洜
+     */
+    private String breakageReason;
+
+    /**
+     * 璐d换宸ュ簭
+     */
+    private String responsibleProcess;
+
+    /**
+     * 璐d换浜哄憳
+     */
+    private String responsiblePersonnel;
+
+    /**
+     * 璐d换鐝粍
+     */
+    private String responsibleTeam;
+
+    /**
+     * 璐d换璁惧
+     */
+    private String responsibleEquipment;
+
+    /**
+     * 鎶ュ伐鐝粍鍚嶇О
+     */
+    private String teamsGroupsName;
+
+    /**
+     * 鎶ュ伐璁惧鍚嶇О
+     */
+    private String deviceName;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/DamagePrint.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/DamagePrint.java
new file mode 100644
index 0000000..001bb85
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/DamagePrint.java
@@ -0,0 +1,69 @@
+package com.mes.damage.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.sql.Timestamp;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DamagePrint implements Serializable {
+
+    /**
+     * 娴佺▼鍗�
+     */
+    private String flowCardId;
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    private String engineerId;
+    /**
+     * 灞傚彿
+     */
+    private String layer;
+
+    /**
+     * 鐗堝浘id
+     */
+    private String temperingLayoutId;
+
+    /**
+     * 鐗囧簭
+     */
+    private String temperingFeedSequence;
+
+    /**
+     * 鐜荤拑id
+     */
+    private String glassId;
+
+    /**
+     * 瀹藉害
+     */
+    private double width;
+
+    /**
+     * 楂樺害
+     */
+    private double height;
+
+    /**
+     * 鍘氬害
+     */
+    private Integer thickness;
+
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/request/DamageRequest.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/request/DamageRequest.java
new file mode 100644
index 0000000..0cb0000
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/request/DamageRequest.java
@@ -0,0 +1,35 @@
+package com.mes.damage.entity.request;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/8/10 13:34
+ * @Description:
+ */
+@Data
+public class DamageRequest {
+
+    @ApiModelProperty("鐜荤拑ID")
+    @NotBlank(message = "鐜荤拑ID涓嶈兘涓虹┖")
+    private String glassId;
+
+    @ApiModelProperty("鐘舵�� 8 鐮存崯 9 鎷胯蛋")
+    @NotNull(message = "鐘舵�佷笉鑳戒负绌�")
+    private int state;
+
+    @ApiModelProperty("绾胯矾")
+    @NotNull(message = "绾胯矾涓嶈兘涓虹┖")
+    private int line;
+
+    @NotBlank(message = "宸ュ簭涓嶈兘涓虹┖")
+    private String workingProcedure;
+
+    @ApiModelProperty("澶囨敞")
+    private String remark;
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java
new file mode 100644
index 0000000..56ac4c2
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java
@@ -0,0 +1,18 @@
+package com.mes.damage.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.damage.entity.Damage;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-13
+ */
+@DS("northGlassMes")
+public interface DamageMapper extends MPJBaseMapper<Damage> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
new file mode 100644
index 0000000..6522037
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
@@ -0,0 +1,60 @@
+package com.mes.damage.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.entity.DamagePrint;
+import com.mes.pp.entity.ReportingWork;
+import com.mes.pp.entity.ReportingWorkDetail;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-13
+ */
+public interface DamageService extends MPJBaseService<Damage> {
+
+    List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure);
+
+//    List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure);
+
+    void submitDamage(List<Damage> damageList);
+
+    Boolean submitReport(Damage damage);
+
+    /**
+     * 鎸夌収鐜荤拑id淇℃伅鑷姩鎶ュ伐
+     *
+     * @param glassId
+     * @param deviceId
+     * @param workingProcedure
+     * @param remark
+     */
+    void autoSubmitReport(String glassId, int deviceId, String workingProcedure, String remark, int type);
+
+    /**
+     * 鍗曚釜鐮存崯
+     *
+     * @param damage
+     */
+    void insertDamage(Damage damage);
+
+    /**
+     * 鎵归噺鐮存崯
+     *
+     * @param damageList
+     */
+    void batchInsertDamage(List<Damage> damageList);
+
+    List<DamagePrint> selectDamagePrint(Damage damage);
+
+    List<DamagePrint> selectDamagePrintDetails(Damage damage);
+
+    void deleteByGlassId(String glassId);
+
+    Boolean sendToERP(ReportingWork reportingWork, List<ReportingWorkDetail> reportingWorkDetails, Boolean type);
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
new file mode 100644
index 0000000..8cf818c
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -0,0 +1,418 @@
+package com.mes.damage.service.impl;
+
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.query.MPJQueryWrapper;
+import com.mes.common.config.Const;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.entity.DamagePrint;
+import com.mes.damage.mapper.DamageMapper;
+import com.mes.damage.service.DamageService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.mapper.GlassInfoMapper;
+import com.mes.pp.entity.DamageDetails;
+import com.mes.pp.entity.ReportingWork;
+import com.mes.pp.entity.ReportingWorkDetail;
+import com.mes.work_assignment.entity.WorkAssignment;
+import com.mes.work_assignment.mapper.WorkAssignmentMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.sql.Timestamp;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-13
+ */
+@Slf4j
+@Service
+public class DamageServiceImpl extends MPJBaseServiceImpl<DamageMapper, Damage> implements DamageService {
+
+    @Resource
+    GlassInfoMapper glassInfoMapper;
+    @Resource
+    WorkAssignmentMapper workAssignmentMapper;
+
+
+    private final static String ERP_URL = "http://192.168.2.100:8086";
+
+
+    /**
+     * 鏌ヨ鎶ュ伐淇℃伅
+     */
+    @Override
+    public List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure) {
+        LambdaQueryWrapper<Damage> damageSelectWrapper = new LambdaQueryWrapper<>();
+        damageSelectWrapper.between(Damage::getDamageTime, startTime, endTime);
+        if (type != 0) {
+            damageSelectWrapper.eq(Damage::getType, type);
+        }
+        if (status != 0) {
+            damageSelectWrapper.eq(Damage::getStatus, status);
+        }
+        if (!"0".equals(workingProcedure)) {
+            damageSelectWrapper.eq(Damage::getWorkingProcedure, workingProcedure);
+        }
+        List<Damage> damageList = baseMapper.selectList(damageSelectWrapper);
+
+//        for (Damage damage : damageList) {
+//            damage.setStatus(2);
+//        }
+        return damageList;
+    }
+
+    /**
+     * 鎻愪氦鎶ュ伐
+     */
+    @Override
+    public void submitDamage(List<Damage> damageList) {
+        Map<String, List<Damage>> firstMap = damageList.stream().collect(Collectors.groupingBy(e -> e.getProcessId() + ":"
+                + e.getWorkingProcedure() + ":" + e.getDeviceName() + ":" + e.getTeamsGroupsName() + ":" + e.getOrderNumber() + ":" + e.getTechnologyNumber()));
+        for (Map.Entry<String, List<Damage>> entry : firstMap.entrySet()) {
+            ReportingWork reportingWork = new ReportingWork();
+            List<ReportingWorkDetail> reportingWorkDetails = new ArrayList<>();
+            String key = entry.getKey();
+            List<Damage> damages = entry.getValue();
+            reportingWork.setOrderId(damages.get(0).getProcessId().substring(0, 10));
+            reportingWork.setProductionId(damages.get(0).getProcessId().substring(0, 11));
+            reportingWork.setProcessId(damages.get(0).getProcessId() + "/" + damages.get(0).getTechnologyNumber());
+//            reportingWork.setDeviceName(damages.get(0).getDeviceName());
+            if (StringUtils.isBlank(damages.get(0).getDeviceName())) {
+                reportingWork.setDeviceName("auto");
+            } else {
+                reportingWork.setDeviceName(damages.get(0).getDeviceName());
+            }
+            reportingWork.setThisProcess(damages.get(0).getWorkingProcedure());
+            reportingWork.setThisCompletedQuantity(0);
+            reportingWork.setThisWornQuantity(0);
+            reportingWork.setClasses("鏃╃彮");
+            reportingWork.setReportingWorkTime(LocalDateTime.now());
+            reportingWork.setTeamsGroupsName(damages.get(0).getTeamsGroupsName());
+            reportingWork.setCreator("auto");
+
+            ReportingWorkDetail reportingWorkDetail = new ReportingWorkDetail();
+            reportingWorkDetail.setTechnologyNumber(damages.get(0).getTechnologyNumber());
+            reportingWorkDetail.setOrderNumber(damages.get(0).getOrderNumber());
+            reportingWorkDetail.setCompletedQuantity(0);
+            reportingWorkDetail.setBreakageQuantity(0);
+
+
+            Map<String, List<Damage>> secondMap = damages.stream().collect(Collectors.groupingBy(e -> e.getProcessId() + ":"
+                    + e.getWorkingProcedure() + ":" + e.getDeviceName() + ":" + e.getTeamsGroupsName()));
+
+            List<DamageDetails> damageDetailses = new ArrayList<>();
+            for (Map.Entry<String, List<Damage>> entrys : secondMap.entrySet()) {
+                List<Damage> damagesdetails = entrys.getValue();
+
+                if (damagesdetails.get(0).getType() != 8 && damagesdetails.get(0).getType() != 9) {
+                    reportingWorkDetail.setCompletedQuantity(damagesdetails.size());
+                    reportingWork.setThisCompletedQuantity(damagesdetails.size() + reportingWork.getThisCompletedQuantity());
+                } else {
+                    reportingWork.setThisWornQuantity(damagesdetails.size() + reportingWork.getThisWornQuantity());
+                    reportingWorkDetail.setBreakageQuantity(damagesdetails.size());
+                    DamageDetails damageDetails = new DamageDetails();
+                    damageDetails.setBreakageQuantity(damagesdetails.size());
+                    damageDetails.setBreakageType(damagesdetails.get(0).getBreakageType());
+                    damageDetails.setBreakageReason(damagesdetails.get(0).getBreakageReason());
+                    damageDetails.setResponsibleProcess(damagesdetails.get(0).getResponsibleProcess());
+                    damageDetails.setResponsibleEquipment(damagesdetails.get(0).getResponsibleEquipment());
+                    damageDetails.setResponsibleTeam(damagesdetails.get(0).getResponsibleTeam());
+                    damageDetails.setResponsiblePersonnel(null);
+                    if (damagesdetails.get(0).getStatus() == 7) {
+                        damageDetails.setQualityInspector("auto");
+                        damageDetails.setPatchStatus(1);
+                        damageDetails.setQualityInsStatus(2);
+                    } else {
+                        damageDetails.setQualityInspector("");
+                        damageDetails.setPatchStatus(0);
+                        damageDetails.setQualityInsStatus(0);
+                    }
+                    damageDetailses.add(damageDetails);
+                }
+            }
+            reportingWorkDetails.add(reportingWorkDetail);
+            reportingWorkDetail.setDamageDetails(damageDetailses);
+            sendToERP(reportingWork, reportingWorkDetails, Boolean.FALSE);
+        }
+    }
+
+    @Override
+    public Boolean submitReport(Damage damage) {
+        ReportingWork reportingWork = new ReportingWork();
+        reportingWork.setOrderId(damage.getProcessId().substring(0, 10));
+        reportingWork.setProductionId(damage.getProcessId().substring(0, 11));
+        reportingWork.setProcessId(damage.getProcessId() + "/" + damage.getTechnologyNumber());
+        if (StringUtils.isBlank(damage.getDeviceName())) {
+            reportingWork.setDeviceName("auto");
+        } else {
+            reportingWork.setDeviceName(damage.getDeviceName());
+        }
+        reportingWork.setThisProcess(damage.getWorkingProcedure());
+        reportingWork.setThisCompletedQuantity(1);
+        reportingWork.setThisWornQuantity(0);
+        reportingWork.setClasses("鏃╃彮");
+        reportingWork.setReportingWorkTime(LocalDateTime.now());
+        reportingWork.setTeamsGroupsName(damage.getTeamsGroupsName());
+        reportingWork.setCreator("auto");
+
+        List<ReportingWorkDetail> reportingWorkDetails = new ArrayList<>();
+        ReportingWorkDetail reportingWorkDetail = new ReportingWorkDetail();
+        reportingWorkDetail.setTechnologyNumber(damage.getTechnologyNumber());
+        reportingWorkDetail.setOrderNumber(damage.getOrderNumber());
+        reportingWorkDetail.setCompletedQuantity(1);
+        reportingWorkDetail.setBreakageQuantity(0);
+        reportingWorkDetails.add(reportingWorkDetail);
+        return sendToERP(reportingWork, reportingWorkDetails, Boolean.TRUE);
+    }
+
+    @Override
+    public void autoSubmitReport(String glassId, int deviceId, String workingProcedure, String remark, int type) {
+        Damage damage = new Damage();
+        damage.setGlassId(glassId);
+        damage.setWorkingProcedure(workingProcedure);
+        damage.setLine(deviceId);
+        damage.setType(type);
+        damage.setRemark(remark);
+        this.insertDamage(damage);
+    }
+
+    /**
+     * 娣诲姞鎶ュ伐淇℃伅
+     */
+    @Override
+    public void insertDamage(Damage damage) {
+        List<Damage> damage1 = null;
+        if (Const.GLASS_STATE_DAMAGE.equals(damage.getType()) || Const.GLASS_STATE_TAKE.equals(damage.getType())) {
+            damage1 = baseMapper.selectList(
+                    new LambdaQueryWrapper<Damage>()
+                            .in(Damage::getType, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
+                            .notIn(Damage::getStatus, 7, 8)
+                            .lt(Damage::getStatus, 7)
+                            .eq(Damage::getGlassId, damage.getGlassId())
+            );
+        } else {
+            damage1 = baseMapper.selectList(
+                    new LambdaQueryWrapper<Damage>()
+                            .notIn(Damage::getType, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
+                            .eq(Damage::getLine, damage.getLine())
+                            .eq(Damage::getWorkingProcedure, damage.getWorkingProcedure())
+                            .eq(Damage::getGlassId, damage.getGlassId())
+            );
+        }
+        if (damage1 == null || damage1.size() == 0) {
+            LambdaQueryWrapper<GlassInfo> glassInfoSelectWrapper = new LambdaQueryWrapper<>();
+            glassInfoSelectWrapper.eq(GlassInfo::getGlassId, damage.getGlassId());
+            GlassInfo glassInfo = glassInfoMapper.selectOne(glassInfoSelectWrapper);
+            BeanUtils.copyProperties(glassInfo, damage);
+
+            LambdaQueryWrapper<WorkAssignment> workAssignmentSelectWrapper = new LambdaQueryWrapper<>();
+            workAssignmentSelectWrapper
+                    .eq(WorkAssignment::getLine, damage.getLine())
+                    .eq(WorkAssignment::getWorkProcesses, damage.getWorkingProcedure());
+            WorkAssignment workAssignment = workAssignmentMapper.selectOne(workAssignmentSelectWrapper);
+            if (workAssignment != null) {
+                damage.setTeamsGroupsName(workAssignment.getTeamsGroupsName());
+                damage.setDeviceName(workAssignment.getDeviceName());
+            }
+            damage.setProcessId(glassInfo.getFlowCardId());
+            damage.setOrderNumber(glassInfo.getGlassType());
+            damage.setTechnologyNumber(glassInfo.getLayer());
+            damage.setDamageTime(Timestamp.valueOf(LocalDateTime.now()));
+            if (damage.getType() == null) {
+                damage.setType(1);
+            }
+            if (damage.getType() == 1 && submitReport(damage)) {
+                damage.setStatus(3);
+            } else {
+                damage.setStatus(1);
+            }
+            baseMapper.insert(damage);
+        }
+    }
+
+    /**
+     * 娣诲姞鎶ュ伐淇℃伅
+     */
+    @Override
+    public void batchInsertDamage(List<Damage> damageList) {
+        WorkAssignment workAssignment = workAssignmentMapper.selectOne(new LambdaQueryWrapper<WorkAssignment>()
+                .eq(WorkAssignment::getLine, damageList.get(0).getLine())
+                .eq(WorkAssignment::getWorkProcesses, damageList.get(0).getWorkingProcedure()));
+
+        List<String> glassList = damageList.stream().map(Damage::getGlassId).collect(Collectors.toList());
+        List<GlassInfo> glassInfoList = glassInfoMapper.selectList(new LambdaQueryWrapper<GlassInfo>().in(GlassInfo::getGlassId, glassList));
+        Map<String, List<GlassInfo>> listMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getGlassId));
+        for (Damage damage : damageList) {
+            GlassInfo glassInfo = listMap.get(damage.getGlassId()).get(0);
+            BeanUtils.copyProperties(glassInfo, damage);
+            if (workAssignment != null) {
+                damage.setTeamsGroupsName(workAssignment.getTeamsGroupsName());
+                damage.setDeviceName(workAssignment.getDeviceName());
+            }
+            damage.setProcessId(glassInfo.getFlowCardId());
+            damage.setOrderNumber(glassInfo.getGlassType());
+            damage.setTechnologyNumber(glassInfo.getLayer());
+            damage.setDamageTime(Timestamp.valueOf(LocalDateTime.now()));
+        }
+        this.saveBatch(damageList);
+    }
+
+    /**
+     * 鎷胯蛋鎵撳嵃鏁版嵁鏌ヨ
+     */
+    @Override
+    public List<DamagePrint> selectDamagePrint(Damage damage) {
+        MPJQueryWrapper<Damage> listDamage = new MPJQueryWrapper<Damage>()
+                .select("t.engineer_id,t.glass_id,b.tempering_layout_id,b.tempering_feed_sequence,b.width,b.height,b.thickness")
+                .leftJoin("glass_info as b  on t.glass_id=b.glass_id")
+                .eq("t.working_procedure", damage.getWorkingProcedure())
+                .eq("t.type", damage.getType());
+        // 鍔ㄦ�佹坊鍔犳潯浠讹紝褰� id 鏈夊�兼椂
+        if (damage.getEngineerId() != null) {
+            listDamage.eq("t.engineer_id", damage.getEngineerId());
+        }
+        return baseMapper.selectJoinList(DamagePrint.class, listDamage);
+    }
+
+    /**
+     * 鎷胯蛋鎵撳嵃鎵撳嵃璇︽儏鏌ヨ
+     */
+    @Override
+    public List<DamagePrint> selectDamagePrintDetails(Damage damage) {
+        List<DamagePrint> listDamage = baseMapper.selectJoinList(DamagePrint.class, new MPJQueryWrapper<Damage>()
+                .select("b.flow_card_id,b.layer,t.engineer_id,b.tempering_layout_id,b.tempering_feed_sequence,t.glass_id,b.width,b.height,b.thickness")
+                .leftJoin("glass_info as b  on t.glass_id=b.glass_id")
+                .eq("t.working_procedure", damage.getWorkingProcedure())
+                .eq("t.type", damage.getType())
+                .eq("t.engineer_id", damage.getEngineerId())
+        );
+        return listDamage;
+    }
+
+    @Override
+    public void deleteByGlassId(String glassId) {
+        baseMapper.delete(
+                new LambdaQueryWrapper<Damage>()
+                        .eq(Damage::getGlassId, glassId)
+                        .in(Damage::getType, Const.GLASS_STATE_DAMAGE_TAKE)
+                        .lt(Damage::getStatus, 7)
+        );
+    }
+
+    @Override
+    public Boolean sendToERP(ReportingWork reportingWork, List<ReportingWorkDetail> reportingWorkDetails, Boolean type) {
+        log.info("鎶ュ伐鏁版嵁reportingWork锛歿}锛宺eportingWorkDetails锛歿}", reportingWork, reportingWorkDetails);
+        try {
+            // 鐩爣绯荤粺鐨凙PI URL
+
+
+            String url1 = ERP_URL + "/reportingWork/mesReportingWork";
+            String url2 = ERP_URL + "/reportingWork/mesSaveReportingWorkWorn";
+            String url;
+            if (type) {
+                url = url1;
+            } else {
+                url = url2;
+            }
+            URL obj = new URL(url);
+            HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+
+            // 璁剧疆璇锋眰鏂规硶鍜岃姹傚ご
+            con.setRequestMethod("POST");
+            con.setRequestProperty("Content-Type", "application/json; utf-8");
+            con.setRequestProperty("Accept", "application/json");
+            con.setDoOutput(true);
+
+            // 鍒涘缓 JSON 瀵硅薄
+            JSONObject result = new JSONObject();
+
+            ObjectMapper objectMapper = new ObjectMapper();
+
+            // 灏� ReportingWork 杞崲涓� JSONObject
+
+            // 灏� ReportingWorkDetail 鍒楄〃杞崲涓� JSONArray
+
+            if (type) {
+                JSONObject detailsJsonObject = new JSONObject(objectMapper.writeValueAsString(reportingWorkDetails.get(0)));
+                result.put("detail", detailsJsonObject);
+                reportingWork.setProcessId(reportingWork.getProcessId().substring(0, 14));
+            } else {
+                JSONArray detailsJsonArray = new JSONArray(objectMapper.writeValueAsString(reportingWorkDetails));
+                result.put("detail", detailsJsonArray);
+            }
+            JSONObject reportingWorkJson = new JSONObject(objectMapper.writeValueAsString(reportingWork));
+            reportingWorkJson.put("reportingWorkTime", reportingWork.getReportingWorkTime().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
+            // 灏� JSON 瀵硅薄鍜屾暟缁勬坊鍔犲埌缁撴灉瀵硅薄涓�
+            result.put("title", reportingWorkJson);
+
+            result.put("type", 0);
+            if (reportingWorkDetails.get(0).getDamageDetails() != null) {
+                if (reportingWorkDetails.get(0).getDamageDetails().get(0).getPatchStatus() == 1) {
+                    result.put("isPatch", 1);
+                } else {
+                    result.put("isPatch", 0);
+                }
+            }
+            result.put("userId", "admin");
+            result.put("userName", "admin");
+            result.put("qualityInsStatus", 0);
+            // 灏� result 瀵硅薄杞崲涓哄瓧绗︿覆
+            String jsonInputString = result.toString();
+            System.out.println("jsonInputString : " + result);
+            // 鍙戦�佽姹�
+            try (OutputStream os = con.getOutputStream()) {
+                byte[] input = jsonInputString.getBytes("utf-8");
+                os.write(input, 0, input.length);
+            }
+
+            // 鑾峰彇鍝嶅簲鐮�
+            int responseCode = con.getResponseCode();
+            System.out.println("Response Code : " + responseCode);
+
+            // 鑾峰彇鍝嶅簲鍐呭
+            try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8"))) {
+                StringBuilder response = new StringBuilder();
+                String inputLine;
+                while ((inputLine = in.readLine()) != null) {
+                    response.append(inputLine);
+                }
+                // 瑙f瀽鍝嶅簲鍐呭
+                JSONObject jsonResponse = new JSONObject(response.toString());
+
+                // 鎻愬彇 code 鍜� message
+                int code = jsonResponse.getInt("code");
+                String message = jsonResponse.getStr("data");
+                log.info("鎶ュ伐鎯呭喌锛歿},{}", code, message);
+                if (code == 200 && message.equals("true")) {
+                    return true;
+                } else {
+                    return false;
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitInfo.java
new file mode 100644
index 0000000..bc14c50
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitInfo.java
@@ -0,0 +1,85 @@
+package com.mes.device;
+
+public class PlcBitInfo {
+
+    public PlcBitInfo(String startAddress) {
+        this.startAddress = startAddress;
+    }
+
+    private String startAddress;
+    // 鍙傛暟鏍囪瘑
+    private String codeId;
+
+    // 鍙傛暟鍚嶇О
+    private String name;
+
+    // 璇诲彇 鍙傛暟鍊�
+    private Boolean value;
+    // 鍙傛暟鍦板潃
+    private int addressIndex;
+
+    public String getCodeId() {
+        return this.codeId;
+    }
+
+    public void setCodeId(String codeId) {
+        this.codeId = codeId;
+    }
+
+    public String getName() {
+        return this.name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Boolean getValue() {
+        return this.value;
+    }
+
+    public void setValue(Boolean value) {
+        this.value = value;
+    }
+
+
+    public int getAddressIndex() {
+        return this.addressIndex;
+    }
+
+    /**
+     * 鑾峰彇鍦板潃
+     *
+     * @param index 绱㈠紩鍦板潃
+     */
+    public String getAddress(int index) {
+        String[] stringdatas = this.startAddress.trim().split("\\.");
+        if (stringdatas.length < 2) {
+            return null;
+        }
+        int dbwindex = 0;
+        int bitindex = 0;
+        if (stringdatas.length == 3) {
+            dbwindex = Integer.parseInt(stringdatas[1]);
+            bitindex = Integer.parseInt(stringdatas[2]);
+        } else
+        {
+            return null;
+        }
+        dbwindex += index / 8;
+        bitindex += index % 8;
+        return stringdatas[0] + "." + dbwindex + "." + bitindex;
+    }
+    /**
+     * 鑾峰彇鍦板潃
+     *
+     */
+    public String getAddress() {
+      return   getAddress(this.addressIndex);
+    }
+
+
+    public void setAddressIndex(int addressindex) {
+        this.addressIndex = addressindex;
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java
new file mode 100644
index 0000000..9f7cd3f
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java
@@ -0,0 +1,124 @@
+package com.mes.device;
+
+import java.util.*;
+
+public class PlcBitObject {
+
+    // 璇ユā鍧楁暟鎹被鍨嬶紝鏁版嵁璧峰浣嶇疆
+    private String plcAddressBegin;
+    // 鏁版嵁鍦板潃闀垮害锛氱涓�鍙傛暟鍒版渶鍚庝竴涓弬鏁扮殑闀垮害
+    private int plcAddressLength;
+    //private ArrayList<PlcBitInfo> plcBitList;
+    private LinkedHashMap<String,PlcBitInfo> plcBitMap;
+
+    /**
+     * @return 鏁版嵁鍖哄紑濮嬪湴鍧�
+     */
+    public String getPlcAddressBegin() {
+        return plcAddressBegin;
+    }
+
+    /**
+     * @param plcAddressBegin 璁剧疆鏁版嵁鍖哄紑濮嬪湴鍧�
+     */
+    public void setPlcAddressBegin(String plcAddressBegin) {
+        this.plcAddressBegin = plcAddressBegin;
+    }
+
+    /**
+     * @return 鏁版嵁鍖� 璇诲彇鎵�鏈夋暟鎹墍闇�鐨勯暱搴︼紙浠yte绫诲瀷涓哄熀鍑嗭級
+     */
+    public int getPlcAddressLength() {
+        return plcAddressLength;
+    }
+
+    /**
+     * @return 璁剧疆锛氭暟鎹尯 璇诲彇鎵�鏈夋暟鎹墍闇�鐨勯暱搴︼紙浠yte绫诲瀷涓哄熀鍑嗭級
+     */
+    public void setPlcAddressLength(int plcAddressLength) {
+        this.plcAddressLength = plcAddressLength;
+    }
+
+    /**
+     * @return 鑾峰彇鍙傛暟瀹炰緥闆嗗悎
+     */
+    public LinkedHashMap<String,PlcBitInfo> getBitMap() {
+        return plcBitMap;
+    }
+
+    /**
+     * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     *
+     * @param codeid 鍙傛暟鏍囪瘑
+     * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     */
+    public PlcBitInfo getPlcBit(String codeid) {
+        if (plcBitMap != null) {
+            /*for (PlcBitInfo plcbitInfo : plcBitList) {
+                if (plcbitInfo.getCodeId().equals(codeid))
+                    return plcbitInfo;
+            }*/
+            return plcBitMap.get(codeid);
+        } else
+        {
+            return null;
+        }
+    }
+
+    /**
+     * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     *
+     * @param codeids 鍙傛暟鏍囪瘑
+     * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     */
+    public List<Boolean> getPlcBitValues(List<String> codeids) {
+        List<Boolean> arrayList = new ArrayList<>();
+        if (plcBitMap != null) {
+            for (String codeId : codeids) { // 鎸夌収浼犲叆鍙傛暟鐨勯『搴忛亶鍘�
+                    arrayList.add(plcBitMap.get(codeId).getValue());
+            }
+        }
+        return arrayList;
+    }
+
+
+    public List<String> getAddressListByCodeId(List<String> codeIdList) {
+        List<String> addressList = new ArrayList<>();
+        for (String codeId : codeIdList) {
+            addressList.add(plcBitMap.get(codeId).getAddress());
+        }
+        return addressList;
+    }
+
+
+    /**
+     * 娣诲姞鍙傛暟瀹炰緥
+     *
+     * @param param 鍙傛暟瀹炰緥
+     */
+    public void addPlcBit(PlcBitInfo param) {
+        if (plcBitMap != null) {
+            plcBitMap.put(param.getCodeId(), param);
+        }
+        else {
+            plcBitMap = new LinkedHashMap<String,PlcBitInfo>();
+            plcBitMap.put(param.getCodeId(),param);
+        }
+    }
+
+    /**
+     * 鏍规嵁PLC杩斿洖鐨勬暟鎹� 缁欏弬鏁板疄渚嬭祴鍊�
+     *
+     * @param plcValueArray PLC璇诲彇鍥炴潵鐨刡yte绫诲瀷鏁版嵁闆嗗悎
+     */
+    public void setPlcBitList(List<Boolean> plcValueArray) {
+        if (plcBitMap != null) {
+            Collection<PlcBitInfo> values=plcBitMap.values();
+            for (PlcBitInfo plcbitInfo : values) {
+                plcbitInfo.setValue(plcValueArray.get(plcbitInfo.getAddressIndex()));
+            }
+        }
+    }
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterInfo.java
new file mode 100644
index 0000000..313adc2
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterInfo.java
@@ -0,0 +1,126 @@
+package com.mes.device;
+
+public class PlcParameterInfo {
+    public PlcParameterInfo(String startAddress) {
+        this.startAddress = startAddress;
+    }
+
+    private String startAddress;
+    // 鍙傛暟鏍囪瘑
+    private String codeId;
+
+    // 鍙傛暟鍚嶇О
+    private String name;
+
+    // 璇诲彇 鍙傛暟鍊�
+    private String value;
+
+    // // 鍐欏叆 鍙傛暟鍊�
+    // private String writeValue;
+
+    // 鍙傛暟鍗曚綅
+    private String unit;
+
+    // 鍙傛暟鍊艰浆鎹㈢郴鏁�
+    private int ratio;
+
+    // 鍙傛暟鍦板潃
+    private int addressIndex;
+
+    // 鍙傛暟鍦板潃浣嶉暱搴�
+    private int addressLength;
+
+    public String getCodeId() {
+        return this.codeId;
+    }
+
+    public void setCodeId(String codeId) {
+        this.codeId = codeId;
+    }
+
+    public String getName() {
+        return this.name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getValue() {
+        return this.value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    // public String getWriteValue() {
+    //     return this.writeValue;
+    // }
+
+    // public void setWriteValue(String writeValue) {
+    //     this.writeValue = writeValue;
+    // }
+
+    public String getUnit() {
+        return this.unit;
+    }
+
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+
+    public int getAddressIndex() {
+        return this.addressIndex;
+    }
+
+    public void setAddressIndex(int addressindex) {
+        this.addressIndex = addressindex;
+    }
+
+    public int getAddressLength() {
+        return this.addressLength;
+    }
+
+    public void setAddressLength(int addresslength) {
+        this.addressLength = addresslength;
+    }
+
+    public int getRatio() {
+        return this.ratio;
+    }
+
+    public void setRatio(int ratio) {
+        this.ratio = ratio;
+    }
+
+    /**
+     * 鑾峰彇鍦板潃
+     *
+     * @param index 绱㈠紩鍦板潃
+     */
+    public String getAddress(int index) {
+        String[] stringdatas = this.startAddress.trim().split("\\.");
+        int addressLength = this.addressLength;
+        if (addressLength < 2) {
+            return null;
+        }
+        int wordindex = Integer.parseInt(stringdatas[1]) + index;
+        return stringdatas[0] + "." + wordindex;
+      /*  if (addressLength == 2) {
+
+
+            return stringdatas[0] + "." + wordindex;
+        }
+        if (addressLength == 14) {
+            int wordindex = index;
+            int newIndex = wordindex + 13;
+            return stringdatas[0] + "." + wordindex + "-" + newIndex;
+        }*/
+//        return null;
+    }
+
+    public String getAddress() {
+        return getAddress(this.addressIndex);
+    }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java
new file mode 100644
index 0000000..e8bfd42
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java
@@ -0,0 +1,274 @@
+package com.mes.device;
+
+import com.github.xingshuangs.iot.utils.IntegerUtil;
+import com.github.xingshuangs.iot.utils.ShortUtil;
+
+import java.lang.reflect.Array;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.util.*;
+
+public class PlcParameterObject {
+
+    // 璇ユā鍧楁暟鎹被鍨嬶紝鏁版嵁璧峰浣嶇疆
+    private String plcAddressBegin;
+    // 鏁版嵁鍦板潃闀垮害锛氱涓�鍙傛暟鍒版渶鍚庝竴涓弬鏁扮殑闀垮害
+    private int plcAddressLength;
+    //private ArrayList<PlcParameterInfo> plcParameterList;
+    private LinkedHashMap<String,PlcParameterInfo> plcParameterMap;
+
+
+    /**
+     * @return 鏁版嵁鍖哄紑濮嬪湴鍧�
+     */
+    public String getPlcAddressBegin() {
+        return plcAddressBegin;
+    }
+
+    /**
+     * @param plcAddressBegin 璁剧疆鏁版嵁鍖哄紑濮嬪湴鍧�
+     */
+    public void setPlcAddressBegin(String plcAddressBegin) {
+        this.plcAddressBegin = plcAddressBegin;
+    }
+
+    /**
+     * @return 鏁版嵁鍖� 璇诲彇鎵�鏈夋暟鎹墍闇�鐨勯暱搴︼紙浠yte绫诲瀷涓哄熀鍑嗭級
+     */
+    public int getPlcAddressLength() {
+        return plcAddressLength;
+    }
+
+    /**
+     * @return 璁剧疆锛氭暟鎹尯 璇诲彇鎵�鏈夋暟鎹墍闇�鐨勯暱搴︼紙浠yte绫诲瀷涓哄熀鍑嗭級
+     */
+    public void setPlcAddressLength(int plcAddressLength) {
+        this.plcAddressLength = plcAddressLength;
+    }
+
+    /**
+     * @return 鑾峰彇鍙傛暟瀹炰緥闆嗗悎
+     */
+    public LinkedHashMap<String,PlcParameterInfo> getPlcParameterMap() {
+        return plcParameterMap;
+    }
+
+    /**
+     * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     *
+     * @param codeid 鍙傛暟鏍囪瘑
+     * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     */
+    public PlcParameterInfo getPlcParameter(String codeid) {
+        if (plcParameterMap != null) {
+                    return plcParameterMap.get(codeid);
+        } else {
+            return null;
+        }
+        /*if (plcParameterList != null) {
+            for (PlcParameterInfo plcParameterInfo : plcParameterList) {
+                if (plcParameterInfo.getCodeId().equals(codeid))
+                    return plcParameterInfo;
+            }
+            return null;
+        } else
+            return null;*/
+    }
+
+
+    /**
+     * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     *
+     * @param codeids 鍙傛暟鏍囪瘑
+     * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     */
+    public List<String> getPlcParameterValues(List<String> codeids) {
+        List<String> arrayList = new ArrayList<>();
+        if (plcParameterMap != null) {
+            /*Map<String, PlcParameterInfo> resultMap = new LinkedHashMap<>(); // 浣跨敤 LinkedHashMap 淇濈暀鎻掑叆椤哄簭
+            for (PlcParameterInfo plcParameterInfo : plcParameterList) {
+                if (codeids.contains(plcParameterInfo.getCodeId())) {
+                    resultMap.put(plcParameterInfo.getCodeId(), plcParameterInfo);
+                }
+            }*/
+            for (String codeId : codeids) { // 鎸夌収浼犲叆鍙傛暟鐨勯『搴忛亶鍘�
+                PlcParameterInfo plcParameterInfo = plcParameterMap.get(codeId);
+                if (plcParameterInfo != null) {
+                    arrayList.add(plcParameterInfo.getValue());
+                } else {
+                    arrayList.add(null); // 濡傛灉鎵句笉鍒板搴旂殑鍊硷紝娣诲姞 null
+                }
+            }
+        }
+        return arrayList;
+    }
+
+    /**
+     * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇浼犲叆鍙傛暟鐨刾lc鍦板潃
+     *
+     * @param codeIdList 鍙傛暟鏍囪瘑
+     * @return 浼犲叆鍙傛暟鐨刾lc鍦板潃
+     */
+    public List<String> getAddressListByCodeId(List<String> codeIdList) {
+        List<String> addressList = new ArrayList<>();
+        if (plcParameterMap!=null)
+        {
+            for (String codeId : codeIdList) {
+                    String address = plcParameterMap.get(codeId).getAddress();
+                    if (address != null) {
+                        addressList.add(address);
+                    }
+        }
+        }
+        return addressList;
+    }
+
+
+    /**
+     * 娣诲姞鍙傛暟瀹炰緥
+     *
+     * @param param 鍙傛暟瀹炰緥
+     */
+    public void addPlcParameter(PlcParameterInfo param) {
+        if (plcParameterMap != null) {
+            plcParameterMap.put(param.getCodeId(), param);
+        }
+        else {
+            plcParameterMap =new  LinkedHashMap<String,PlcParameterInfo>();
+            plcParameterMap.put(param.getCodeId(), param);
+        }
+        /*if (plcParameterList != null)
+            plcParameterList.add(param);
+        else {
+            plcParameterList = new ArrayList<PlcParameterInfo>();
+            plcParameterList.add(param);
+        }*/
+    }
+
+    /**
+     * 鏍规嵁PLC杩斿洖鐨勬暟鎹� 缁欏弬鏁板疄渚嬭祴鍊�
+     *
+     * @param plcValueArray PLC璇诲彇鍥炴潵鐨刡yte绫诲瀷鏁版嵁闆嗗悎
+     */
+    public void setPlcParameterList(byte[] plcValueArray) {
+        if (plcParameterMap != null) {
+            Collection<PlcParameterInfo> values=  plcParameterMap.values();
+            for (PlcParameterInfo plcParameterInfo :values) {
+                byte[] valueList = new byte[plcParameterInfo.getAddressLength()];
+//                System.out.println(plcParameterInfo.getAddressLength());
+                for (int i = 0; i < plcParameterInfo.getAddressLength(); i++) {
+                    Array.setByte(valueList, i, plcValueArray[plcParameterInfo.getAddressIndex() + i]);
+                }
+                if (plcParameterInfo.getAddressLength() == 2) {
+                    plcParameterInfo.setValue(String.valueOf(ShortUtil.toUInt16(valueList)));
+                } else if (plcParameterInfo.getAddressLength() == 4) {
+                    plcParameterInfo.setValue(String.valueOf(IntegerUtil.toUInt32(valueList)));
+                }
+                else if (plcParameterInfo.getAddressLength() >10) {
+                    plcParameterInfo.setValue((byteToHexString(valueList)));
+                } else {
+                    plcParameterInfo.setValue((byteToHexString(valueList)));
+                }
+            }
+        }
+/*        if (plcParameterList != null) {
+
+            for (PlcParameterInfo plcParameterInfo : plcParameterList) {
+
+                byte[] valueList = new byte[plcParameterInfo.getAddressLength()];
+
+//                System.out.println(plcParameterInfo.getAddressLength());
+
+                for (int i = 0; i < plcParameterInfo.getAddressLength(); i++) {
+                    Array.setByte(valueList, i, plcValueArray[plcParameterInfo.getAddressIndex() + i]);
+
+                }
+
+                if (plcParameterInfo.getAddressLength() == 2) {
+                    plcParameterInfo.setValue(String.valueOf(byte2short(valueList)));
+                } else if (plcParameterInfo.getAddressLength() == 4) {
+                    plcParameterInfo.setValue(String.valueOf(byte2int(valueList)));
+                }
+                else if (plcParameterInfo.getAddressLength() >10) {
+                    plcParameterInfo.setValue((byteToHexString(valueList)));
+                } else {
+                    String valuestr = new String(valueList);
+                    plcParameterInfo.setValue(valuestr);
+                }
+            }
+        }*/
+    }
+    /**
+     * 鎶婂啓鍏ュ�艰浆鍖栦负byte[]
+     * @param param 鍙傛暟瀹炰緥
+     * @param data 鍐欏叆鍊肩殑瀛楃绫诲瀷
+     */
+    public byte[] setValueToBytes(PlcParameterInfo param, String data) {
+        if (param.getAddressLength() == 2) {
+            return ShortUtil.toByteArray(Integer.parseInt(data));
+
+        } else if (param.getAddressLength() == 4) {
+
+            return IntegerUtil.toByteArray(Long.parseLong(data));
+        }
+        else if (param.getAddressLength() >10) {
+           return data.getBytes();
+        } else {
+            return data.getBytes();
+        }
+    }
+
+    /**
+     * short绫诲瀷杞琤yte[]
+     *
+     * @param s short绫诲瀷鍊�
+     */
+    public static byte[] short2byte(short s) {
+        byte[] b = new byte[2];
+        for (int i = 0; i < 2; i++) {
+            int offset = 16 - (i + 1) * 8; //璁$畻鍋忕Щ閲�
+            b[i] = (byte) ((s >> offset) & 0xff); //鎶�16浣嶅垎涓�2涓�8浣嶈繘琛屽垎鍒瓨鍌�
+        }
+        return b;
+    }
+
+    /**
+     * byte[]绫诲瀷杞瑂hort
+     *
+     * @param b byte[]绫诲瀷鍊�
+     */
+    public static short byte2short(byte[] b) {
+        short l = 0;
+        for (int i = 0; i < 2; i++) {
+            l <<= 8; //<<=鍜屾垜浠殑 +=鏄竴鏍风殑锛屾剰鎬濆氨鏄� l = l << 8
+            l |= (b[i] & 0xff); //鍜屼笂闈篃鏄竴鏍风殑  l = l | (b[i]&0xff)
+        }
+        return l;
+    }
+
+    /**
+     * byte[]绫诲瀷杞瑂hort
+     *
+     * @param b byte[]绫诲瀷鍊�
+     */
+    public static int byte2int(byte[] b) {
+        int l = 0;
+        for (int i = 0; i < 4; i++) {
+            l <<= 8; //<<=鍜屾垜浠殑 +=鏄竴鏍风殑锛屾剰鎬濆氨鏄� l = l << 8
+            l |= (b[3-i] & 0xff); //鍜屼笂闈篃鏄竴鏍风殑  l = l | (b[i]&0xff)
+        }
+        return l;
+    }
+    public static byte[] int2byte(int s){
+        byte[] b = new byte[2];
+        for(int i = 0; i < 4; i++){
+            int offset = 16 - (i+1)*8; //鍥犱负byte鍗�4涓瓧鑺傦紝鎵�浠ヨ璁$畻鍋忕Щ閲�
+            b[i] = (byte)((s >> offset)&0xff); //鎶�32浣嶅垎涓�4涓�8浣嶈繘琛屽垎鍒瓨鍌�
+        }
+        return b;
+    }
+    public static String byteToHexString(byte[] bytes) {
+        String str = new String(bytes, StandardCharsets.UTF_8).trim();
+        return str;
+    }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/Engineering.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/Engineering.java
new file mode 100644
index 0000000..8d822d8
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/Engineering.java
@@ -0,0 +1,111 @@
+package com.mes.engineering.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class Engineering implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 宸ョ▼琛╥d
+     */
+      @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    private String  engineerId;
+
+    /**
+     * 宸ョ▼鍚嶇О
+     */
+    private String engineerName;
+
+    /**
+     * 骞冲潎鍒╃敤鐜�
+     */
+    private double avgAvailability;
+
+    /**
+     * 鏈夋晥鍒╃敤鐜�
+     */
+    private double validAvailability;
+
+    /**
+     * 灏剧墖鍒╃敤鐜�
+     */
+    private double lastAvailability;
+
+    /**
+     * 鐘舵��
+     */
+    private Integer state;
+
+    /**
+     * 灏忕墖鎬绘暟
+     */
+    private Integer glassTotal;
+
+    /**
+     * 灏忕墖鎬婚潰绉�
+     */
+    private double glassTotalArea;
+
+    /**
+     * 璁″垝鍘熺墖鎬绘暟
+     */
+    private Integer planPatternTotal;
+
+    /**
+     * 璁″垝鍘熺墖鎬婚潰绉�
+     */
+    private double planPatternTotalArea;
+
+    /**
+     * 瀹為檯鍘熺墖鎬绘暟
+     */
+    private Integer realityPatternTotal;
+
+    /**
+     * 瀹為檯鍘熺墖鎬婚潰绉�
+     */
+    private double realityPatternTotalArea;
+
+    /**
+     * 鑶滅郴id
+     */
+    private String filmsId;
+
+    /**
+     * 澶囨敞
+     */
+    private String notes;
+
+    /**
+     * 涓婄墖鏈虹嚎璺�
+     */
+    private Integer stationCell;
+
+    /**
+     * 闄よ啘鏂瑰紡
+     */
+    @TableField(exist = false)
+    private Integer filmRemove;
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/OptimizeEngineering.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/OptimizeEngineering.java
new file mode 100644
index 0000000..5b214f1
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/OptimizeEngineering.java
@@ -0,0 +1,78 @@
+package com.mes.engineering.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author SNG-010
+ */
+@Setter
+@Getter
+public class OptimizeEngineering {
+
+    // Getter methods
+    // Setter methods
+    /**
+     * 宸ョ▼鍙�
+     */
+    private String projectNo;
+
+    /**
+     * 宸ョ▼鍚�
+     */
+    private String projectName;
+
+    /**
+     * 骞冲潎鍒╃敤鐜�
+     */
+    private double avgCutPct;
+
+    /**
+     * 鏈夋晥鍒╃敤鐜�
+     */
+    private double validCutPct;
+
+    /**
+     * 灏剧墖鍒╃敤鐜�
+     */
+    private double lastCutPct;
+
+    /**
+     * 鐘舵��
+     */
+    private Integer state;
+
+    /**
+     * 灏忕墖鎬绘暟
+     */
+    private Integer glassTotal;
+    /**
+     * 灏忕墖鎬婚潰绉�
+     */
+    private double glassTotalArea;
+    /**
+     * 璁″垝鍘熺墖鎬绘暟
+     */
+    private Integer rawStockQty;
+    /**
+     * 璁″垝鍘熺墖鎬婚潰绉�
+     */
+    private double rawStockArea;
+    /**
+     * 瀹為檯鍘熺墖鎬绘暟
+     */
+    private Integer actualStockQty;
+    /**
+     * 瀹為檯鍘熺墖鎬婚潰绉�
+     */
+    private double actualStockArea;
+    /**
+     * 鑶滅郴
+     */
+    private String glassType;
+    /**
+     * 澶囨敞
+     */
+    private  String remark;
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/mapper/EngineeringMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/mapper/EngineeringMapper.java
new file mode 100644
index 0000000..d92eae7
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/mapper/EngineeringMapper.java
@@ -0,0 +1,17 @@
+package com.mes.engineering.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.engineering.entity.Engineering;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-22
+ */
+public interface EngineeringMapper extends MPJBaseMapper<Engineering> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/mapper/xml/EngineeringMapper.xml b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/mapper/xml/EngineeringMapper.xml
new file mode 100644
index 0000000..bff1839
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/mapper/xml/EngineeringMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.engineering.mapper.EngineeringMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/EngineeringService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/EngineeringService.java
new file mode 100644
index 0000000..0066379
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/EngineeringService.java
@@ -0,0 +1,72 @@
+package com.mes.engineering.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.engineering.entity.Engineering;
+import com.mes.glassinfo.entity.GlassInfo;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-22
+ */
+public interface EngineeringService extends IService<Engineering> {
+
+
+    /**
+     * 寮�濮�/鏆傚仠浠诲姟
+     * @return boolean
+     */
+    boolean changeTask(String projectId, Integer state);
+    /**
+     * 鏌ヨ閽㈠寲淇℃伅
+     * @return List<Engineering>
+     */
+    List<Engineering> selectEngineering(String engineeringId);
+
+    /**
+     * 淇濆瓨閽㈠寲淇℃伅
+     */
+    void saveEngineering(List<Engineering> engineering);
+
+    /**
+     * 鏌ヨ鏄惁鏈変笂鐗囦换鍔�
+     *
+     * @return Engineering
+     */
+    Engineering selectInitiate(Integer state);
+    Engineering selectInitiates(Integer state,Integer cell);
+    /**
+     * 鏌ヨ宸ョ▼琛ㄦ槸鍚﹀凡鏈夊伐绋嬪彿
+     *
+     * @return Engineering
+     */
+    Engineering selectUpInitiate(String engineerId);
+
+    /**
+     * 鏌ヨ灏忕墖琛ㄦ槸鍚﹀凡鏈夊伐绋嬪彿
+     *
+     * @return Engineering
+     */
+    GlassInfo selectGlassinfoIsnull(String engineerId);
+    /**
+     * 鏌ヨ涓婄墖浠诲姟
+     *
+     * @return Engineering
+     */
+    List<Engineering> selectTask();
+
+    boolean pauseTask(String engineerId, Integer state);
+
+    boolean deleteTask(String engineerId);
+
+    boolean changeTasks(Engineering engineering);
+
+
+
+//    boolean changeTask(String engineerId, Integer state, Integer filmRemove, Integer stationCell);
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
new file mode 100644
index 0000000..93cfed3
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
@@ -0,0 +1,181 @@
+package com.mes.engineering.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.engineering.entity.Engineering;
+import com.mes.engineering.mapper.EngineeringMapper;
+import com.mes.engineering.service.EngineeringService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.mapper.GlassInfoMapper;
+import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.mapper.OptimizeProjectMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-22
+ */
+@Service
+@Slf4j
+
+public class EngineeringServiceImpl extends ServiceImpl<EngineeringMapper, Engineering> implements EngineeringService {
+
+    @Autowired
+    OptimizeProjectMapper optimizeProjectMapper;
+    @Autowired
+    private EngineeringMapper engineeringMapper;
+    @Autowired
+    private GlassInfoMapper glassInfoMapper;
+
+    //寮�濮�/鏆傚仠浠诲姟
+    @Override
+    public  boolean  changeTask(String projectId, Integer state) {
+        //鏆傚仠姝e湪杩涜宸ョ▼
+//        LambdaUpdateChainWrapper<Engineering> pauseWrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
+//        pauseWrapper.set(Engineering::getState,0);
+//        pauseWrapper.eq(Engineering::getState,1);
+//        boolean pause = pauseWrapper.update();
+        //浣跨敤projectId浣滀负鏉′欢寮�濮嬪伐绋�
+        LambdaUpdateChainWrapper<Engineering> wrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
+        wrapper.set(Engineering::getState,state);
+        wrapper.eq(Engineering::getEngineerId,projectId);
+        boolean pause = wrapper.update();
+        return pause;
+    }
+
+    @Override
+    @DS("pp")
+    public List<Engineering> selectEngineering(String engineeringId) {
+        //鏌ヨ閽㈠寲宸ョ▼淇℃伅
+        List<OptimizeProject> optimizeEngineerings = null;
+        if (engineeringId != null) {
+            QueryWrapper<OptimizeProject> wrapper = new QueryWrapper<>();
+            wrapper.select("project_no,project_name,avg_cut_pct,valid_cut_pct,last_cut_pct,glass_total,glass_total_area,raw_stock_qty,raw_stock_area,glass_type,remark ")
+                    .eq("project_no", engineeringId);
+            optimizeEngineerings = optimizeProjectMapper.selectList(wrapper);
+
+        }
+        List<Engineering> resultList=new ArrayList<>();
+// 閬嶅巻鏌ヨ缁撴灉璧嬪��
+        if (optimizeEngineerings != null) {
+            for (OptimizeProject map : optimizeEngineerings) {
+                // 鍒涘缓涓�涓柊鐨� OptimizeProject 瀵硅薄
+                Engineering engineering = new Engineering();
+                // 灏� Map 涓殑姣忎釜閿�煎鏄犲皠鍒� OptimizeProject 瀵硅薄鐨勭浉搴斿瓧娈典笂
+                engineering.setEngineerId( map.getProjectNo());//宸ョ▼id
+                engineering.setEngineerName( map.getProjectName());//宸ョ▼鍚嶇О
+                engineering.setAvgAvailability( map.getAvgCutPct());//骞冲潎浼樺寲鐜�
+                engineering.setValidAvailability( map.getValidCutPct());//鏈夋晥浼樺寲鐜�
+                engineering.setLastAvailability( map.getLastCutPct());//灏剧墖浼樺寲鐜�
+                engineering.setState(0);//鐘舵��
+                engineering.setGlassTotal( map.getGlassTotal());//灏忕墖鐜荤拑鎬绘暟
+                engineering.setGlassTotalArea( map.getGlassTotalArea());//灏忕墖鎬婚潰绉�
+                engineering.setPlanPatternTotal( map.getRawStockQty());//璁″垝鍘熺墖鎬绘暟
+                engineering.setPlanPatternTotalArea( map.getRawStockArea());//璁″垝鍘熺墖鎬婚潰绉�
+                engineering.setFilmsId( map.getGlassType());//鑶滅郴
+                engineering.setNotes( map.getRemark());//澶囨敞
+                // 灏嗘槧灏勫悗鐨勫璞℃坊鍔犲埌缁撴灉鍒楄〃涓�
+                resultList.add(engineering);
+            }
+        }
+        log.info("鏌ヨ鍑洪挗鍖栧伐绋嬮泦鍚堜繚瀛樺埌瀹炰綋绫粄}",resultList);
+        return resultList;
+    }
+
+    @Override
+    public void saveEngineering(List<Engineering> engineering) {
+        this.saveBatch(engineering);
+        //淇濆瓨閽㈠寲宸ョ▼淇℃伅
+    }
+
+    @Override
+    public Engineering selectInitiate(Integer state) {
+        //鏌ヨ鏄惁鏈夊紑濮嬩笂鐗囩殑宸ョ▼浠诲姟
+        QueryWrapper<Engineering> wrapper = new QueryWrapper<>();
+        wrapper.eq("state", state)
+                .last("limit 1");
+        return engineeringMapper.selectOne(wrapper);
+    }
+    @Override
+    public Engineering selectInitiates(Integer state,Integer cell) {
+        //鏌ヨ鏄惁鏈夊紑濮嬩笂鐗囩殑宸ョ▼浠诲姟
+        QueryWrapper<Engineering> wrapper = new QueryWrapper<>();
+        wrapper.eq("state", state)
+                .eq("station_cell", cell)
+                .last("limit 1");
+        return engineeringMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public Engineering selectUpInitiate(String engineerId) {
+        QueryWrapper<Engineering> wrapper = new QueryWrapper<>();
+        wrapper.eq("engineer_id", engineerId)
+                .last("limit 1");
+        return engineeringMapper.selectOne(wrapper);
+
+    }
+
+    @Override
+    public GlassInfo selectGlassinfoIsnull(String engineerId) {
+        QueryWrapper<GlassInfo> wrapper = new QueryWrapper<>();
+        wrapper.eq("engineer_id", engineerId)
+                .last("limit 1");
+        return glassInfoMapper.selectOne(wrapper);
+
+    }
+
+    @Override
+    @DS("northGlassMes")
+    public List<Engineering> selectTask() {
+        //鏌ヨ鍙紑濮嬩换鍔$殑宸ョ▼
+        QueryWrapper<Engineering> wrapper = new QueryWrapper<>();
+        wrapper.eq("state", 5);
+        return engineeringMapper.selectList(wrapper);
+    }
+
+    @Override
+    public boolean pauseTask(String engineerId, Integer state) {
+        //鏆傚仠姝e湪杩涜宸ョ▼
+        LambdaUpdateChainWrapper<Engineering> pauseWrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
+        pauseWrapper.set(Engineering::getState, 5);
+        pauseWrapper.eq(Engineering::getEngineerId, engineerId);
+        return pauseWrapper.update();
+    }
+
+    @Override
+    public boolean deleteTask(String engineerId) {
+        //鍒犻櫎宸ョ▼琛�
+        QueryWrapper<Engineering> wrapper = new QueryWrapper<>();
+        wrapper.eq("engineer_id", engineerId);
+        return this.remove(wrapper);
+    }
+
+    @Override
+    public boolean changeTasks(Engineering engineering) {
+        //鏆傚仠姝e湪杩涜宸ョ▼
+        LambdaUpdateChainWrapper<Engineering> pauseWrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
+        pauseWrapper.set(Engineering::getState,0);
+        pauseWrapper.eq(Engineering::getState,1);
+        pauseWrapper.eq(Engineering::getStationCell,engineering.getStationCell());
+        pauseWrapper.update();
+
+        LambdaUpdateChainWrapper<Engineering> wrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
+        wrapper.set(Engineering::getState,engineering.getState());
+        wrapper.set(Engineering::getStationCell,engineering.getStationCell());
+        wrapper.eq(Engineering::getEngineerId,engineering.getEngineerId());
+        return wrapper.update();
+    }
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/entity/request/GeneralRequest.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/entity/request/GeneralRequest.java
new file mode 100644
index 0000000..d70b171
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/entity/request/GeneralRequest.java
@@ -0,0 +1,17 @@
+package com.mes.entity.request;
+
+import cn.hutool.db.Page;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/22 11:21
+ * @Description:
+ */
+@Data
+public class GeneralRequest {
+
+    private String key;
+
+    private Page page;
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java
new file mode 100644
index 0000000..7fc0be5
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java
@@ -0,0 +1,23 @@
+package com.mes.glassinfo.controller;
+
+
+import io.swagger.annotations.Api;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-29
+ */
+@Api(tags = "鐜荤拑灏忕墖淇℃伅")
+@RestController
+@RequestMapping("/glassinfo/glass-info")
+public class GlassInfoController {
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/GlassInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/GlassInfo.java
new file mode 100644
index 0000000..b9f5401
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/GlassInfo.java
@@ -0,0 +1,167 @@
+package com.mes.glassinfo.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class GlassInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鐜荤拑淇℃伅琛╥d
+     */
+      @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 娴佺▼鍗�
+     */
+    private String flowCardId;
+
+    /**
+     * 娴佺▼鍗$幓鐠冪被鍨�
+     */
+    private Integer glassType;
+
+    /**
+     * 瀹�
+     */
+    private double width;
+
+    /**
+     * 楂�
+     */
+    private double height;
+
+    /**
+     * 鍘氬害
+     */
+    private double thickness;
+
+    /**
+     * 鑶滅郴
+     */
+    private String filmsid;
+
+    /**
+     * 灞傛暟
+     */
+    private int layer;
+
+    /**
+     * 鎬诲眰鏁�
+     */
+    private int totalLayer;
+
+    /**
+     * 纾ㄥ墠瀹�
+     */
+    private double edgWidth;
+
+    /**
+     * 纾ㄥ墠楂�
+     */
+    private double edgHeight;
+
+    /**
+     * 鏄惁閰嶇墖
+     */
+    private Integer ismultiple;
+
+    /**
+     * 閰嶇墖鏈�澶у
+     */
+    private double maxWidth;
+
+    /**
+     * 閰嶇墖鏈�澶ч珮
+     */
+    private double maxHeight;
+
+    /**
+     * 閽㈠寲鏄惁鎺ュ彈妯斁
+     */
+    private Integer ishorizontal;
+
+    /**
+     * 鍘熺墖椤哄簭
+     */
+    private Integer patternSequence;
+    /**
+     * x鍧愭爣
+     */
+    private Integer xAxis;
+
+    /**
+     * y鍧愭爣
+     */
+    private Integer yAxis;
+
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+
+    /**
+     * 閽㈠寲鐗堝浘鐗囧簭
+     */
+    private Integer temperingFeedSequence;
+
+    /**
+     * x鍧愭爣
+     */
+    private Integer xCoordinate;
+
+    /**
+     * y鍧愭爣
+     */
+    private Integer yCoordinate;
+
+    /**
+     * 鏃嬭浆瑙掑害锛堥�嗘椂閽堬級
+     */
+    private double angle;
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    private String engineerId;
+
+    /**
+     * 鐢熶骇瑙勫垯id
+     */
+    private Integer ruleId;
+
+    /**
+     * 鐜荤拑ID
+     */
+    private String glassId;
+    /**
+     * 鏄惁鍚堝苟
+     */
+    private Integer combine;
+    /**
+     * 鎵撴爣灞炴��
+     */
+    private String markIcon;
+    /**
+     * 闄よ啘鏂瑰紡
+     */
+    private Integer filmRemove;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/LoadGlassInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/LoadGlassInfo.java
new file mode 100644
index 0000000..cd7a96b
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/LoadGlassInfo.java
@@ -0,0 +1,171 @@
+package com.mes.glassinfo.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class LoadGlassInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鐜荤拑淇℃伅琛╥d
+     */
+//      @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 娴佺▼鍗�
+     */
+    private String flowCardId;
+
+    /**
+     * 娴佺▼鍗$幓鐠冪被鍨�
+     */
+    private Integer glassType;
+
+    /**
+     * 瀹�
+     */
+    private double width;
+
+    /**
+     * 楂�
+     */
+    private double height;
+
+    /**
+     * 鍘氬害
+     */
+    private double thickness;
+
+    /**
+     * 鑶滅郴
+     */
+    private String filmsid;
+
+    /**
+     * 灞傛暟
+     */
+    private int layer;
+
+    /**
+     * 鎬诲眰鏁�
+     */
+    private int totalLayer;
+
+    /**
+     * 纾ㄥ墠瀹�
+     */
+    private double edgWidth;
+
+    /**
+     * 纾ㄥ墠楂�
+     */
+    private double edgHeight;
+
+    /**
+     * 鏄惁閰嶇墖
+     */
+    private Integer ismultiple;
+
+    /**
+     * 閰嶇墖鏈�澶у
+     */
+    private double maxWidth;
+
+    /**
+     * 閰嶇墖鏈�澶ч珮
+     */
+    private double maxHeight;
+
+    /**
+     * 閽㈠寲鏄惁鎺ュ彈妯斁
+     */
+    private Integer ishorizontal;
+
+    /**
+     * 鍘熺墖椤哄簭
+     */
+    private Integer patternSequence;
+    /**
+     * x鍧愭爣
+     */
+    private Integer xAxis;
+
+    /**
+     * y鍧愭爣
+     */
+    private Integer yAxis;
+
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+
+    /**
+     * 閽㈠寲鐗堝浘鐗囧簭
+     */
+    private Integer temperingFeedSequence;
+
+    /**
+     * x鍧愭爣
+     */
+    private Integer xCoordinate;
+
+    /**
+     * y鍧愭爣
+     */
+    private Integer yCoordinate;
+
+    /**
+     * 鏃嬭浆瑙掑害锛堥�嗘椂閽堬級
+     */
+    private double angle;
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    private String engineerId;
+
+    /**
+     * 鐢熶骇瑙勫垯id
+     */
+    private Integer ruleId;
+
+    /**
+     * 鐜荤拑ID
+     */
+    private String glassId;
+    /**
+     * 鏄惁鍚堝苟
+     */
+    private Integer combine;
+    /**
+     * 鎵撴爣灞炴��
+     */
+    private String markIcon;
+    /**
+     * 闄よ啘鏂瑰紡
+     */
+    private Integer filmRemove;
+    /**
+     * 鐘舵��
+     */
+    @TableField(exist = false)
+    private Integer state;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/OptimizeGlassinfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/OptimizeGlassinfo.java
new file mode 100644
index 0000000..ce530ac
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/OptimizeGlassinfo.java
@@ -0,0 +1,126 @@
+package com.mes.glassinfo.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author SNG-010
+ */
+@Setter
+@Getter
+public class OptimizeGlassinfo {
+
+    // Getter methods
+    // Setter methods
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String processId;
+
+    /**
+     * 宸ョ▼绉嶇被
+     */
+    private String type;
+
+    /**
+     * 瀹�
+     */
+    private double width;
+
+    /**
+     * 楂�
+     */
+    private double height;
+
+    /**
+     * 瀹�
+     */
+    private double oHeight;
+
+    /**
+     * 楂�
+     */
+    private double oWidth;
+
+
+    /**
+     * 鍘氬害
+     */
+    private double glassThickness;
+
+    /**
+     * 鐜荤拑鑶滅郴
+     */
+    private String glassType;
+
+    /**
+     * 灞傛暟
+     */
+    private int layer;
+
+    /**
+     * 鎬诲眰鏁�
+     */
+    private int totalLayer;
+
+    /**
+     * 灏忕墖瀹斤紙鍔犵(閲忥級
+     */
+    private double pWidth;
+    /**
+     * 灏忕墖楂橈紙鍔犵(閲忥級
+     */
+    private double pHeight;
+    /**
+     * 鍘熺墖鐗堝浘id
+     */
+    private Integer stockId;
+    /**
+     * 鍘熺墖鐗堝浘鐗堝簭
+     */
+    private Integer xAxis;
+    /**
+     * 鍘熺墖鐗堝浘鐗堝簭
+     */
+    private Integer yAxis;
+    /**
+     * 閽㈠寲鐗堝浘缂栧彿(鏋跺彿)
+     */
+    private Integer heatLayoutId;
+    /**
+     * 閽㈠寲搴忓彿
+     */
+    private Integer heatLayoutSort;
+    /**
+     * x鍧愭爣
+     */
+    private Integer xAxisHeat;
+    /**
+     * y鍧愭爣
+     */
+    private  Integer yAxisHeat;
+    /**
+     * 宸ョ▼鍙�
+     */
+    private  String projectNo;
+    /**
+     * 灏忕墖缂栧彿
+     */
+    private  String glassId;
+    /**
+     * 璁㈠崟搴忓彿
+     */
+    private Integer orderSort;
+    /**
+     * 鏄惁鍚堝苟
+     */
+    private Integer combine;
+    /**
+     * 鏃嬭浆瑙掑害
+     */
+    private double rotateAngle;
+    /**
+     * 鎵撴爣灞炴��
+     */
+    private String markIcon;
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/dto/HollowGlassInfoDTO.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/dto/HollowGlassInfoDTO.java
new file mode 100644
index 0000000..1919a49
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/dto/HollowGlassInfoDTO.java
@@ -0,0 +1,17 @@
+package com.mes.glassinfo.entity.dto;
+
+import com.mes.glassinfo.entity.GlassInfo;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/11/28 10:02
+ * @Description:
+ */
+@Data
+public class HollowGlassInfoDTO extends GlassInfo {
+    /**
+     * 涓┖绾挎��
+     */
+    private int hollowSequence;
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java
new file mode 100644
index 0000000..0c36179
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java
@@ -0,0 +1,23 @@
+package com.mes.glassinfo.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.entity.dto.HollowGlassInfoDTO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-29
+ */
+@DS("northGlassMes")
+public interface GlassInfoMapper extends MPJBaseMapper<GlassInfo> {
+
+    List<HollowGlassInfoDTO> listBySize(@Param("engineerId") String engineerId);
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java
new file mode 100644
index 0000000..4b69491
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java
@@ -0,0 +1,44 @@
+package com.mes.glassinfo.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.mes.engineering.entity.Engineering;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.entity.dto.HollowGlassInfoDTO;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-29
+ */
+public interface GlassInfoService extends MPJBaseService<GlassInfo> {
+      /**
+       * 鏌ヨ灏忕墖琛�
+       * @return List<GlassInfo>
+       */
+      List<GlassInfo> selectGlassInfo(Engineering engineeringId);
+      /**
+       * 淇濆瓨灏忕墖琛�
+       */
+      void saveGlassInfo(List<GlassInfo> glassinfo);
+
+      int getGlassInfoCountByFlowCardId(String flowCardId, int layer);
+
+      /**
+       * @return 鏌ヨ鎵�鏈夊伐绋嬬姸鎬佷笉涓�300涓嶅悓娴佺▼鍗″彿
+       */
+      List<Map<String, Object>> getFlowCardId();
+
+
+    List<HollowGlassInfoDTO> listBySize(String engineerId);
+
+    void deleteTask(String engineerId);
+
+    List<GlassInfo> selectEdgGlassInfo(String engineering);
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
new file mode 100644
index 0000000..ae5354a
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
@@ -0,0 +1,175 @@
+package com.mes.glassinfo.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.query.MPJQueryWrapper;
+import com.mes.engineering.entity.Engineering;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.entity.OptimizeGlassinfo;
+import com.mes.glassinfo.entity.dto.HollowGlassInfoDTO;
+import com.mes.glassinfo.mapper.GlassInfoMapper;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.mapper.OptimizeProjectMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-29
+ */
+@Service
+@Slf4j
+public class GlassInfoServiceImpl extends MPJBaseServiceImpl<GlassInfoMapper, GlassInfo> implements GlassInfoService {
+    @Resource
+    OptimizeProjectMapper optimizeProjectMapper;
+
+    @Override
+    @DS("pp")
+    public List<GlassInfo> selectGlassInfo(Engineering engineeringId) {
+        List<OptimizeGlassinfo> optimizeGlassinfos = null;
+        if (engineeringId != null) {
+            optimizeGlassinfos = optimizeProjectMapper.selectJoinList(OptimizeGlassinfo.class, new MPJQueryWrapper<OptimizeProject>()
+                    .select("b.process_id,t.glass_type,b.o_width,b.o_height,t.glass_thickness,b.order_sort,b.p_width,b.p_height,b.layer," +
+                            "d.layers_number AS total_layer, b.stock_id,b.heat_layout_id,b.heat_layout_sort, b.x_axis,b.y_axis," +
+                            "c.x_axis as x_axis_heat,c.y_axis as y_axis_heat,b.project_no,b.glass_id,c.rotate_angle,d.merge as combine ,b.mark_icon")
+                    .leftJoin("optimize_detail b on t.project_no=b.project_no")
+                    .leftJoin("optimize_heat_detail c on c.project_no=t.project_no and b.heat_layout_id=c.layout_id and b.heat_layout_sort=c.sort")
+                    .leftJoin("flow_card d on d.process_id=b.process_id and d.technology_number=b.layer and  d.order_number=b.order_sort ")
+                    //.eq("t.state",100)
+                    .eq("t.project_no", engineeringId.getEngineerId()));
+        }
+        // 鍒涘缓涓�涓� List 鐢ㄤ簬淇濆瓨鏄犲皠鍚庣殑瀹炰綋瀵硅薄
+        List<GlassInfo> resultList = new ArrayList<>();
+
+        if (optimizeGlassinfos != null) {
+            for (OptimizeGlassinfo map : optimizeGlassinfos) {
+                // 鍒涘缓涓�涓柊鐨� OptimizeGlassinfo 瀵硅薄
+                GlassInfo glassInfo = new GlassInfo();
+                // 灏� Map 涓殑姣忎釜閿�煎鏄犲皠鍒� OptimizeGlassinfo 瀵硅薄鐨勭浉搴斿瓧娈典笂
+                glassInfo.setEngineerId(map.getProjectNo());
+                glassInfo.setFlowCardId(map.getProcessId());
+                glassInfo.setFilmsid(map.getGlassType());
+                //璁㈠崟搴忓彿
+                glassInfo.setGlassType(map.getOrderSort());
+                //璁㈠崟瀹�
+                glassInfo.setWidth(map.getOWidth());
+                //璁㈠崟楂�
+                glassInfo.setHeight(map.getOHeight());
+                glassInfo.setEdgWidth(map.getPWidth());
+                glassInfo.setEdgHeight(map.getPHeight());
+                glassInfo.setThickness(map.getGlassThickness());
+                glassInfo.setLayer(map.getLayer());
+                glassInfo.setTotalLayer(map.getTotalLayer());
+                glassInfo.setPatternSequence(map.getStockId());
+                glassInfo.setXAxis(map.getXAxis());
+                glassInfo.setYAxis(map.getYAxis());
+                //閽㈠寲鐗堝浘id
+                glassInfo.setTemperingLayoutId(map.getHeatLayoutId());
+                //閽㈠寲鐗堝浘椤哄簭
+                glassInfo.setTemperingFeedSequence(map.getHeatLayoutSort());
+                glassInfo.setXCoordinate(map.getXAxisHeat());
+                glassInfo.setYCoordinate(map.getYAxisHeat());
+                glassInfo.setAngle(map.getRotateAngle());
+                glassInfo.setGlassId(map.getGlassId());
+                glassInfo.setCombine(map.getCombine());
+                glassInfo.setMarkIcon(map.getMarkIcon());
+                glassInfo.setFilmRemove(engineeringId.getFilmRemove());
+                // 灏嗘槧灏勫悗鐨勫璞℃坊鍔犲埌缁撴灉鍒楄〃涓�
+                resultList.add(glassInfo);
+            }
+        }
+        log.info("鏌ヨ鍑篻lassinfo鐨勬暟鎹畕}:", resultList);
+        log.info("鏌ヨ鍑篻lassinfopro鐨勬暟鎹畕}:", optimizeGlassinfos);
+        return resultList;
+    }
+
+    @Override
+    public void saveGlassInfo(List<GlassInfo> glassinfo) {
+        this.saveBatch(glassinfo);
+    }
+
+
+    @Override
+    public int getGlassInfoCountByFlowCardId(String flowCardId, int layer) {
+        if (layer == 0) {
+            return baseMapper.selectCount(new QueryWrapper<GlassInfo>().lambda()
+                    .eq(GlassInfo::getFlowCardId, flowCardId));
+        } else {
+            return baseMapper.selectCount(new QueryWrapper<GlassInfo>().lambda()
+                    .eq(GlassInfo::getFlowCardId, flowCardId)
+                    .eq(GlassInfo::getLayer, layer));
+        }
+
+    }
+
+
+    @Override
+    public List<Map<String, Object>> getFlowCardId() {
+        // 绗簩涓煡璇細鏌ヨ OptimizeProject 琛紝鏍规嵁 GlassInfo 鐨� engineerId 鍜� state 杩涜绛涢��
+        List<OptimizeProject> optimizeProjects = optimizeProjectMapper.selectList(
+                new QueryWrapper<OptimizeProject>()
+                        .ne("state", 300)
+        );
+        // 鎻愬彇 engineerId 鍒楄〃
+        List<String> engineerIds = optimizeProjects.stream()
+                .map(OptimizeProject::getProjectNo)
+                .collect(Collectors.toList());
+
+        // 绗竴涓煡璇細鏌ヨ GlassInfo 琛ㄥ苟鎸� flow_card_id 鍒嗙粍锛屽悓鏃剁瓫閫夊嚭鍦� engineerIds 鍒楄〃涓殑璁板綍
+        List<GlassInfo> glassInfos = baseMapper.selectList(
+                new QueryWrapper<GlassInfo>()
+                        .in("engineer_id", engineerIds)
+                        .groupBy("flow_card_id")
+                        .groupBy("layer")
+        );
+
+        // 杞崲涓� List<Map<String, Object>>
+        List<Map<String, Object>> result = glassInfos.stream()
+                .map(glassInfo -> {
+                    Map<String, Object> map = new HashMap<>();
+                    map.put("flow_card_id", glassInfo.getFlowCardId() + " | " + glassInfo.getLayer());
+                    // 濡傛灉杩樻湁鍏朵粬瀛楁闇�瑕佹坊鍔犲埌 map 涓紝鍦ㄨ繖閲岀户缁坊鍔�
+                    return map;
+                })
+                .collect(Collectors.toList());
+        log.info("result666: {}", result);
+        return result;
+    }
+
+    @Override
+    public List<HollowGlassInfoDTO> listBySize(String engineerId) {
+        return baseMapper.listBySize(engineerId);
+    }
+
+    @Override
+    public void deleteTask(String engineerId) {
+        QueryWrapper<GlassInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("engineer_id", engineerId);
+        baseMapper.delete(queryWrapper);
+    }
+
+    @Override
+    public List<GlassInfo> selectEdgGlassInfo(String engineeringId) {
+        List<GlassInfo> glassInfos = null;
+        if (engineeringId != null) {
+            glassInfos = baseMapper.selectJoinList(GlassInfo.class, new MPJQueryWrapper<GlassInfo>()
+                    .select("t.engineer_id,t.glass_id,t.tempering_layout_id,t.tempering_feed_sequence,t.width,t.height,t.thickness,t.filmsid,t.flow_card_id")
+                    .leftJoin("edg_storage_cage_details b on t.engineer_id=b.engineer_id and t.glass_id=b.glass_id")
+                    .isNull("b.glass_id")
+                    .eq("t.engineer_id", engineeringId));
+        }
+        return glassInfos;
+    }
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/controller/LargenScreenController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/controller/LargenScreenController.java
new file mode 100644
index 0000000..c4d4b17
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/controller/LargenScreenController.java
@@ -0,0 +1,38 @@
+package com.mes.largenscreen.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.mes.largenscreen.entity.DailyProductionVO;
+import com.mes.largenscreen.entity.DateRequest;
+import com.mes.largenscreen.service.LargenScreenService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/3/12 14:24
+ * @Description:
+ */
+@Api(tags = "澶у睆缁熻淇℃伅")
+@RestController
+@RequestMapping("largenScreen")
+public class LargenScreenController {
+
+    @Resource
+    LargenScreenService largenScreenService;
+
+    @ApiOperation("鎸夌収鏉′欢缁熻姣忔棩鐢熶骇鎯呭喌")
+    @PostMapping("/queryDailyProduction")
+    public Result<Page<DailyProductionVO>> queryDailyProduction(@RequestBody @Validated DateRequest query) {
+        return Result.build(200, "鏌ヨ鎴愬姛", largenScreenService.queryDailyProduction(query));
+    }
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/entity/DailyProductionVO.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/entity/DailyProductionVO.java
new file mode 100644
index 0000000..236c5df
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/entity/DailyProductionVO.java
@@ -0,0 +1,52 @@
+package com.mes.largenscreen.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/3/12 14:30
+ * @Description:
+ */
+@Data
+public class DailyProductionVO {
+
+    @ApiModelProperty(value = "鏃ユ湡")
+    private String date;
+
+    @ApiModelProperty(value = "鍒囧壊涓�绾跨幓鐠冩暟閲�")
+    private int countOutOne;
+
+    @ApiModelProperty(value = "鍒囧壊涓�绾跨幓鐠冮潰绉�")
+    private double totalAreaOutOne;
+
+    @ApiModelProperty(value = "鍒囧壊浜岀嚎鐜荤拑鏁伴噺")
+    private int countOutTwo;
+
+    @ApiModelProperty(value = "鍒囧壊浜岀嚎鐜荤拑闈㈢Н")
+    private double totalAreaOutTwo;
+
+    @ApiModelProperty(value = "閽㈠寲鍓嶅ぇ鐞嗙墖绗肩幓鐠冩暟閲�")
+    private int countIn;
+
+    @ApiModelProperty(value = "閽㈠寲鍓嶅ぇ鐞嗙墖绗肩幓鐠冮潰绉�")
+    private double totalAreaIn;
+
+    @ApiModelProperty(value = "閽㈠寲鐜荤拑鏁伴噺")
+    private int countOut;
+
+    @ApiModelProperty(value = "閽㈠寲鐜荤拑闈㈢Н")
+    private double totalAreaOut;
+
+    @ApiModelProperty(value = "涓┖涓�绾跨幓鐠冩暟閲�")
+    private int hollowCountOutOne;
+
+    @ApiModelProperty(value = "涓┖涓�绾跨幓鐠冮潰绉�")
+    private double hollowTotalAreaOutOne;
+
+    @ApiModelProperty(value = "涓┖浜岀嚎鐜荤拑鏁伴噺")
+    private int hollowCountOutTwo;
+
+    @ApiModelProperty(value = "涓┖浜岀嚎鐜荤拑闈㈢Н")
+    private double hollowTotalAreaOutTwo;
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/entity/DateRequest.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/entity/DateRequest.java
new file mode 100644
index 0000000..5101885
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/entity/DateRequest.java
@@ -0,0 +1,19 @@
+package com.mes.largenscreen.entity;
+
+import com.mes.base.entity.PageRequest;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/3/12 14:42
+ * @Description:
+ */
+@Data
+public class DateRequest extends PageRequest {
+
+    @ApiModelProperty(value = "寮�濮嬫棩鏈� 鈥榶yyy-MM-dd鈥�")
+    private String BeginDate;
+    @ApiModelProperty(value = "缁撴潫鏃ユ湡 鈥榶yyy-MM-dd鈥�")
+    private String endDate;
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/entity/PieChartVO.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/entity/PieChartVO.java
new file mode 100644
index 0000000..1d1ff4d
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/entity/PieChartVO.java
@@ -0,0 +1,50 @@
+package com.mes.largenscreen.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/3/12 14:30
+ * @Description:
+ */
+@Data
+public class PieChartVO {
+
+    @ApiModelProperty(value = "涓�绾垮凡瀹屾垚鐜荤拑鏁伴噺")
+    private Integer oneCompletedQuantity;
+
+    @ApiModelProperty(value = "涓�绾垮凡瀹屾垚鐜荤拑闈㈢Н")
+    private Double oneCompletedArea;
+
+    @ApiModelProperty(value = "涓�绾挎鐮寸幓鐠冩暟閲�")
+    private Integer oneDamageQuantity;
+
+    @ApiModelProperty(value = "涓�绾挎鐮寸幓鐠冮潰绉�")
+    private Double oneDamageArea;
+
+    @ApiModelProperty(value = "浜岀嚎宸插畬鎴愮幓鐠冩暟閲�")
+    private Integer twoCompletedQuantity;
+
+    @ApiModelProperty(value = "浜岀嚎宸插畬鎴愮幓鐠冮潰绉�")
+    private Double twoCompletedArea;
+
+    @ApiModelProperty(value = "浜岀嚎娆$牬鐜荤拑鏁伴噺")
+    private Integer twoDamageQuantity;
+
+    @ApiModelProperty(value = "浜岀嚎娆$牬鐜荤拑闈㈢Н")
+    private Double twoDamageArea;
+
+    @ApiModelProperty(value = "涓�绾挎湭瀹屾垚鐜荤拑鏁伴噺")
+    private Integer oneUncompletedQuantity;
+
+    @ApiModelProperty(value = "涓�绾挎湭瀹屾垚鐜荤拑闈㈢Н")
+    private Double oneUncompletedArea;
+
+    @ApiModelProperty(value = "浜岀嚎鏈畬鎴愮幓鐠冩暟閲�")
+    private Integer twoUncompletedQuantity;
+
+    @ApiModelProperty(value = "浜岀嚎鏈畬鎴愮幓鐠冮潰绉�")
+    private Double twoUncompletedArea;
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/mapper/LargenScreenMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/mapper/LargenScreenMapper.java
new file mode 100644
index 0000000..529b5fd
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/mapper/LargenScreenMapper.java
@@ -0,0 +1,16 @@
+package com.mes.largenscreen.mapper;
+
+import com.mes.largenscreen.entity.DailyProductionVO;
+
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/3/12 14:46
+ * @Description:
+ */
+
+public interface LargenScreenMapper {
+
+    List<DailyProductionVO> queryDailyProduction(String beginDate, String endDate);
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/service/LargenScreenService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/service/LargenScreenService.java
new file mode 100644
index 0000000..f3a419f
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/service/LargenScreenService.java
@@ -0,0 +1,21 @@
+package com.mes.largenscreen.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.mes.largenscreen.entity.DailyProductionVO;
+import com.mes.largenscreen.entity.DateRequest;
+import com.mes.largenscreen.entity.PieChartVO;
+
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/3/12 14:27
+ * @Description:
+ */
+public interface LargenScreenService {
+
+    Page<DailyProductionVO> queryDailyProduction(DateRequest query);
+
+    List<DailyProductionVO> querySameDayProduction(DateRequest query);
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/service/impl/LargenScreenServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/service/impl/LargenScreenServiceImpl.java
new file mode 100644
index 0000000..1e0505a
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/largenscreen/service/impl/LargenScreenServiceImpl.java
@@ -0,0 +1,54 @@
+package com.mes.largenscreen.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.mes.largenscreen.entity.DailyProductionVO;
+import com.mes.largenscreen.entity.DateRequest;
+import com.mes.largenscreen.mapper.LargenScreenMapper;
+import com.mes.largenscreen.service.LargenScreenService;
+import com.mes.tools.PageUtil;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/3/12 14:28
+ * @Description:
+ */
+@Service
+public class LargenScreenServiceImpl implements LargenScreenService {
+
+    @Resource
+    private LargenScreenMapper largenScreenMapper;
+
+    @Override
+    public Page<DailyProductionVO> queryDailyProduction(DateRequest query) {
+        if (StringUtils.isEmpty(query.getBeginDate())) {
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            query.setBeginDate(sdf.format(new Date()));
+            query.setEndDate(sdf.format(new Date()));
+        }
+        List<DailyProductionVO> list = largenScreenMapper.queryDailyProduction(query.getBeginDate(), query.getEndDate());
+        return (Page<DailyProductionVO>) PageUtil.listToPage(list, query.getPageNo(), query.getPageSize());
+    }
+
+    @Override
+    public List<DailyProductionVO> querySameDayProduction(DateRequest query) {
+        if (StringUtils.isEmpty(query.getBeginDate())) {
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            Calendar calendar = Calendar.getInstance();
+            calendar.add(Calendar.DAY_OF_MONTH, -6);
+            query.setBeginDate(sdf.format(calendar.getTime()));
+            query.setEndDate(sdf.format(new Date()));
+        }
+        List<DailyProductionVO> list = largenScreenMapper.queryDailyProduction(query.getBeginDate(), query.getEndDate());
+        return list;
+    }
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/entity/LoadGlassDeviceTask.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/entity/LoadGlassDeviceTask.java
new file mode 100644
index 0000000..70d14bf
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/entity/LoadGlassDeviceTask.java
@@ -0,0 +1,62 @@
+package com.mes.opctask.entity;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * (LoadGlassDeviceOneTask)琛ㄥ疄浣撶被
+ *
+ * @author makejava
+ * @since 2024-11-06 16:00:10
+ */
+@Data
+public class LoadGlassDeviceTask {
+    /**
+     * 浠诲姟璇锋眰 0鏃犱换鍔� 1涓婄墖
+     */
+    private Integer taskRunning;
+    /**
+     * 鍘熺墖瀹�
+     */
+    private Integer rawGlassWidth;
+    /**
+     * 鍘熺墖楂�
+     */
+    private Integer rawGlassHeight;
+    /**
+     * 涓婄墖浣嶇紪鍙�
+     */
+    private Integer slot;
+    /**
+     * 浠诲姟鐘舵�� 0榛樿绌轰换鍔� 1鎵ц涓� 2缁撴潫浠诲姟
+     */
+    private Integer inkageState;
+    /**
+     * 浠诲姟鐘舵�� 0榛樿绌轰换鍔� 1鎵ц涓� 2缁撴潫浠诲姟
+     */
+    private Integer taskState;
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+    /**
+     * 鏇存柊鏃堕棿
+     */
+    private Date updateTime;
+    /**
+     * 涓婄墖鎬绘暟閲�
+     */
+    private Integer totalCount;
+    /**
+     * 宸插畬鎴愭暟閲�
+     */
+    private Integer finishCount;
+    /**
+     * 鐮存崯鏁伴噺
+     */
+    private Integer damageCount;
+
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/entity/LoadGlassDeviceTaskHistory.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/entity/LoadGlassDeviceTaskHistory.java
new file mode 100644
index 0000000..c422f42
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/entity/LoadGlassDeviceTaskHistory.java
@@ -0,0 +1,77 @@
+package com.mes.opctask.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * (LoadGlassDeviceTaskHistory)琛ㄥ疄浣撶被
+ *
+ * @author makejava
+ * @since 2024-11-06 22:23:00
+ */
+@SuppressWarnings("serial")
+@Data
+public class LoadGlassDeviceTaskHistory {
+    /**
+     * 鍘嗗彶浠诲姟id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * 浠诲姟璇锋眰 0鏃犱换鍔� 1涓婄墖
+     */
+    private Integer taskRunning;
+    /**
+     * 鍘熺墖瀹�
+     */
+    private Integer rawGlassWidth;
+    /**
+     * 鍘熺墖楂�
+     */
+    private Integer rawGlassHeight;
+    /**
+     * 鍘熺墖鍘氬害
+     */
+    private Integer rawGlassThickness;
+    /**
+     * 鍘熺墖鑶滅郴
+     */
+    private String rawGlassFilmsId;
+    /**
+     * 涓婄墖璁惧缂栧彿
+     */
+    private Integer station;
+    /**
+     * 涓婄墖浣嶇紪鍙�
+     */
+    private Integer slot;
+    /**
+     * 浠诲姟鐘舵�� 0榛樿绌轰换鍔� 1鎵ц涓� 2缁撴潫浠诲姟
+     */
+    private Integer taskState;
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+    /**
+     * 鏇存柊鏃堕棿
+     */
+    private Date updateTime;
+    /**
+     * 涓婄墖鎬绘暟閲�
+     */
+    private Integer totalCount;
+    /**
+     * 宸插畬鎴愭暟閲�
+     */
+    private Integer finishCount;
+    /**
+     * 鐮存崯鏁伴噺
+     */
+    private Integer damageCount;
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/entity/request/LoadGlassDeviceTaskHistoryRequest.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/entity/request/LoadGlassDeviceTaskHistoryRequest.java
new file mode 100644
index 0000000..fddee9c
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/entity/request/LoadGlassDeviceTaskHistoryRequest.java
@@ -0,0 +1,66 @@
+package com.mes.opctask.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.mes.base.entity.PageRequest;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * (LoadGlassDeviceTaskHistory)琛ㄥ疄浣撶被
+ *
+ * @author makejava
+ * @since 2024-11-06 22:23:00
+ */
+@SuppressWarnings("serial")
+@Data
+public class LoadGlassDeviceTaskHistoryRequest extends PageRequest {
+    /**
+     * 鍘熺墖瀹�
+     */
+    private String rawGlassWidth;
+    /**
+     * 鍘熺墖楂�
+     */
+    private String rawGlassHeight;
+    /**
+     * 鍘熺墖瀹�
+     */
+    private String rawGlassThickness;
+    /**
+     * 鍘熺墖楂�
+     */
+    private String rawGlassfilmsId;
+    /**
+     * 涓婄墖璁惧缂栧彿
+     */
+    private Integer station;
+    /**
+     * 涓婄墖浣嶇紪鍙�
+     */
+    private Integer slot;
+    /**
+     * 浠诲姟鐘舵�� 0榛樿绌轰换鍔� 1鎵ц涓� 2缁撴潫浠诲姟
+     */
+    private List<Integer> taskStateList;
+    /**
+     * 寮�濮嬫椂闂�
+     */
+    @ApiModelProperty(value = "寮�濮嬫椂闂�", position = 6)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date beginDate;
+
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @ApiModelProperty(value = "缁撴潫鏃堕棿", position = 7)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endDate;
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/mapper/LoadGlassDeviceTaskHistoryDao.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/mapper/LoadGlassDeviceTaskHistoryDao.java
new file mode 100644
index 0000000..3d47020
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/mapper/LoadGlassDeviceTaskHistoryDao.java
@@ -0,0 +1,15 @@
+package com.mes.opctask.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.opctask.entity.LoadGlassDeviceTaskHistory;
+
+/**
+ * (LoadGlassDeviceTaskHistory)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author makejava
+ * @since 2024-11-06 22:22:59
+ */
+public interface LoadGlassDeviceTaskHistoryDao extends BaseMapper<LoadGlassDeviceTaskHistory> {
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/mapper/LoadGlassDeviceTaskMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/mapper/LoadGlassDeviceTaskMapper.java
new file mode 100644
index 0000000..8fe31ac
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/mapper/LoadGlassDeviceTaskMapper.java
@@ -0,0 +1,19 @@
+package com.mes.opctask.mapper;
+
+import com.mes.opctask.entity.LoadGlassDeviceTask;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * (LoadGlassDeviceOneTask)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author makejava
+ * @since 2024-11-06 16:00:09
+ */
+public interface LoadGlassDeviceTaskMapper {
+
+    LoadGlassDeviceTask queryTaskMessage(String tableName);
+
+    boolean updateTaskMessage(@Param("tableName") String tableName, @Param("task") LoadGlassDeviceTask loadGlassDeviceTask);
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/service/LoadGlassDeviceTaskHistoryService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/service/LoadGlassDeviceTaskHistoryService.java
new file mode 100644
index 0000000..3efe0b2
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/service/LoadGlassDeviceTaskHistoryService.java
@@ -0,0 +1,18 @@
+package com.mes.opctask.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.opctask.entity.LoadGlassDeviceTaskHistory;
+import com.mes.opctask.entity.request.LoadGlassDeviceTaskHistoryRequest;
+
+/**
+ * (LoadGlassDeviceTaskHistory)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author makejava
+ * @since 2024-11-06 22:23:00
+ */
+public interface LoadGlassDeviceTaskHistoryService extends IService<LoadGlassDeviceTaskHistory> {
+
+    Page<LoadGlassDeviceTaskHistory> queryLoadGlassHistoryTask(LoadGlassDeviceTaskHistoryRequest request);
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/service/LoadGlassDeviceTaskService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/service/LoadGlassDeviceTaskService.java
new file mode 100644
index 0000000..4157107
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/service/LoadGlassDeviceTaskService.java
@@ -0,0 +1,20 @@
+package com.mes.opctask.service;
+
+import com.mes.opctask.entity.LoadGlassDeviceTask;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * (LoadGlassDeviceOneTask)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author makejava
+ * @since 2024-11-06 16:00:13
+ */
+public interface LoadGlassDeviceTaskService {
+
+
+    LoadGlassDeviceTask queryTaskMessage(String tableName);
+
+    boolean updateTaskMessage(@Param("tableName") String tableName, @Param("task") LoadGlassDeviceTask loadGlassDeviceTask);
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/service/impl/LoadGlassDeviceOneTaskServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/service/impl/LoadGlassDeviceOneTaskServiceImpl.java
new file mode 100644
index 0000000..cca5191
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/service/impl/LoadGlassDeviceOneTaskServiceImpl.java
@@ -0,0 +1,32 @@
+package com.mes.opctask.service.impl;
+
+import com.mes.opctask.entity.LoadGlassDeviceTask;
+import com.mes.opctask.mapper.LoadGlassDeviceTaskMapper;
+import com.mes.opctask.service.LoadGlassDeviceTaskService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * (LoadGlassDeviceOneTask)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author makejava
+ * @since 2024-11-06 16:00:16
+ */
+@Service
+public class LoadGlassDeviceOneTaskServiceImpl implements LoadGlassDeviceTaskService {
+
+    @Resource
+    LoadGlassDeviceTaskMapper loadGlassDeviceTaskMapper;
+
+    @Override
+    public LoadGlassDeviceTask queryTaskMessage(String tableName) {
+        return loadGlassDeviceTaskMapper.queryTaskMessage(tableName);
+    }
+
+    @Override
+    public boolean updateTaskMessage(String tableName, LoadGlassDeviceTask loadGlassDeviceTask) {
+        return loadGlassDeviceTaskMapper.updateTaskMessage(tableName, loadGlassDeviceTask);
+    }
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/service/impl/LoadGlassDeviceTaskHistoryServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/service/impl/LoadGlassDeviceTaskHistoryServiceImpl.java
new file mode 100644
index 0000000..c94b33d
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/opctask/service/impl/LoadGlassDeviceTaskHistoryServiceImpl.java
@@ -0,0 +1,44 @@
+package com.mes.opctask.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.smallbun.screw.core.util.StringUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.opctask.entity.LoadGlassDeviceTaskHistory;
+import com.mes.opctask.entity.request.LoadGlassDeviceTaskHistoryRequest;
+import com.mes.opctask.mapper.LoadGlassDeviceTaskHistoryDao;
+import com.mes.opctask.service.LoadGlassDeviceTaskHistoryService;
+import com.mes.tools.DateUtil;
+import org.springframework.stereotype.Service;
+
+/**
+ * (LoadGlassDeviceTaskHistory)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author makejava
+ * @since 2024-11-06 22:23:00
+ */
+@Service
+public class LoadGlassDeviceTaskHistoryServiceImpl extends ServiceImpl<LoadGlassDeviceTaskHistoryDao, LoadGlassDeviceTaskHistory> implements LoadGlassDeviceTaskHistoryService {
+
+    @Override
+    public Page<LoadGlassDeviceTaskHistory> queryLoadGlassHistoryTask(LoadGlassDeviceTaskHistoryRequest request){
+        if (null == request.getBeginDate()) {
+            request.setBeginDate(DateUtil.getBeginDate());
+            request.setEndDate(DateUtil.getEndDate());
+        }
+        Page<LoadGlassDeviceTaskHistory> page = new Page<>(request.getPageNo(), request.getPageSize());
+        LambdaQueryWrapper<LoadGlassDeviceTaskHistory> wrapper = new LambdaQueryWrapper<LoadGlassDeviceTaskHistory>()
+                .like(StringUtils.isNotBlank(request.getRawGlassWidth()), LoadGlassDeviceTaskHistory::getRawGlassWidth, request.getRawGlassWidth())
+                .like(StringUtils.isNotBlank(request.getRawGlassHeight()), LoadGlassDeviceTaskHistory::getRawGlassHeight, request.getRawGlassHeight())
+                .like(StringUtils.isNotBlank(request.getRawGlassThickness()), LoadGlassDeviceTaskHistory::getRawGlassThickness, request.getRawGlassThickness())
+                .like(StringUtils.isNotBlank(request.getRawGlassfilmsId()), LoadGlassDeviceTaskHistory::getRawGlassFilmsId, request.getRawGlassfilmsId())
+                .eq(request.getStation() != 0, LoadGlassDeviceTaskHistory::getStation, request.getStation())
+                .eq(request.getSlot() != 0, LoadGlassDeviceTaskHistory::getSlot, request.getSlot())
+                .in(CollectionUtil.isNotEmpty(request.getTaskStateList()), LoadGlassDeviceTaskHistory::getTaskState, request.getTaskStateList())
+                .between(LoadGlassDeviceTaskHistory::getCreateTime, request.getBeginDate(), request.getEndDate())
+                .orderByDesc(LoadGlassDeviceTaskHistory::getCreateTime);
+        return this.page(page, wrapper);
+    }
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/controller/OrderController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/controller/OrderController.java
new file mode 100644
index 0000000..cfa146d
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/controller/OrderController.java
@@ -0,0 +1,52 @@
+package com.mes.order.controller;
+
+import com.mes.order.entity.Orderdetail;
+import com.mes.order.entity.Orders;
+import com.mes.order.entity.dto.OrderDTO;
+import com.mes.order.entity.request.OrderRequest;
+import com.mes.order.service.OrdersService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-17
+ */
+@Api(tags = "璁㈠崟淇℃伅")
+@RestController
+@RequestMapping("/order/order")
+@Slf4j
+public class OrderController {
+    @Autowired
+    //鑾峰彇寰呴�夋嫨鐨勫伐绋嬪彿
+    private OrdersService ordersService;
+
+    @ApiOperation("鏄剧ず璁㈠崟璇︾粏")
+    @PostMapping("/selectOrderdetail") //鏄剧ず宸ョ▼閫夋嫨淇℃伅
+    @ResponseBody
+    public Result<List<Orderdetail>> listByState(@RequestBody Orders orders) {
+        log.info("灏嗚姹傚弬鏁板皝瑁呭湪璇锋眰绫婚噷闈�");
+        List<Orderdetail> glass = ordersService.selectOrderdetail(orders);
+        log.info("鏄剧ず璁㈠崟璇︽儏淇℃伅:{}", glass);
+        return Result.build(200, "", glass);
+    }
+
+    @ApiOperation("璁㈠崟鎺ュ彛鏌ヨ")
+    @PostMapping("/selectOrder") //鏄剧ず宸ョ▼閫夋嫨淇℃伅
+    @ResponseBody
+    public Result<List<OrderDTO>> selectOrder(@RequestBody OrderRequest orderRequest) {
+//        OrderDTO orderDTO = new OrderDTO();
+        return Result.build(200, "", null);
+    }
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/Order.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/Order.java
new file mode 100644
index 0000000..0547f19
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/Order.java
@@ -0,0 +1,232 @@
+package com.mes.order.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class Order implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * <璁㈠崟琛�>
+     */
+      @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 璁㈠崟Id
+     */
+    private String orderId;
+
+    /**
+     * 椤圭洰鍚嶇О
+     */
+    private String project;
+
+    /**
+     * 瀹㈡埛Id
+     */
+    private Long customerId;
+
+    /**
+     * 瀹㈡埛鍚嶇О
+     */
+    private String customerName;
+
+    /**
+     * 璁㈠崟绫诲瀷
+     */
+    private String orderType;
+
+    /**
+     * 璁㈠崟鍒嗙被
+     */
+    private String orderClassify;
+
+    /**
+     * 鍟嗘爣閫夐」
+     */
+    private String icon;
+
+    /**
+     * 鍖呰鏂瑰紡
+     */
+    private String packType;
+
+    /**
+     * 閫佽揣鏃堕棿
+     */
+    private LocalDateTime deliveryDate;
+
+    /**
+     * 鎵规
+     */
+    private String batch;
+
+    /**
+     * 璁$畻鏂瑰紡
+     */
+    private Integer calculateType;
+
+    /**
+     * 閿�鍞汉鍛業d
+     */
+    private String salesmanId;
+
+    /**
+     * 閿�鍞汉
+     */
+    private String salesman;
+
+    /**
+     * 閾濇潯鏂瑰紡
+     */
+    private String alType;
+
+    /**
+     * 閲戦
+     */
+    private BigDecimal money;
+
+    /**
+     * 鍚堝悓缂栧彿
+     */
+    private String contractId;
+
+    /**
+     * 瀹㈡埛鎵规
+     */
+    private String customerBatch;
+
+    /**
+     * 鑱旂郴浜�
+     */
+    private String contacts;
+
+    /**
+     * 鑱旂郴鐢佃瘽
+     */
+    private String contactNumber;
+
+    /**
+     * 閫佽揣鍦板潃
+     */
+    private String deliveryAddress;
+
+    /**
+     * 鍏朵粬閲戦
+     */
+    private BigDecimal otherMoney;
+
+    /**
+     * 鍏朵粬閲戦澶囨敞
+     */
+    private String otherMoneyRemarks;
+
+    /**
+     * 璁㈠崟鍔犲伐澶囨敞
+     */
+    private String processingNote;
+
+    /**
+     * 鍏朵粬澶囨敞
+     */
+    private String otherRemarks;
+
+    /**
+     * 闈㈢Н
+     */
+    private BigDecimal area;
+
+    /**
+     * 鏁伴噺
+     */
+    private Long quantity;
+
+    /**
+     * 鍛ㄩ暱
+     */
+    private String perimeter;
+
+    /**
+     * 瀹℃牳浜篿d
+     */
+    private String verifierId;
+
+    /**
+     * 瀹℃牳浜�
+     */
+    private String verifier;
+
+    /**
+     * 鍒涘缓浜篿d
+     */
+    private String creatorId;
+
+    /**
+     * 鍒涘缓浜�
+     */
+    private String creator;
+
+    /**
+     * 涓嬪崟
+     */
+    private Integer createOrder;
+
+    /**
+     * 宸ヨ壓瀹℃牳
+     */
+    private Integer processReview;
+
+    /**
+     * 璁㈠崟瀹℃牳
+     */
+    private Integer orderReview;
+
+    /**
+     * 鐢熶骇璁㈠崟
+     */
+    private Integer productionOrder;
+
+    /**
+     * 娴佺▼鍗�
+     */
+    private Integer processingCard;
+
+    /**
+     * 鍏ュ簱	鏈叆搴撶姸鎬�0锛屾湭瀹屽叏鍏ュ簱鐘舵��1锛屽畬鍏ㄥ叆搴撶姸鎬�2
+     */
+    private Integer warehousing;
+
+    /**
+     * 鍙戣揣
+     */
+    private Integer delivery;
+
+    /**
+     * 鍒涘缓鏃ユ湡
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 淇敼鏃堕棿
+     */
+    private LocalDateTime updateTime;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/Orderdetail.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/Orderdetail.java
new file mode 100644
index 0000000..b0b4078
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/Orderdetail.java
@@ -0,0 +1,83 @@
+package com.mes.order.entity;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class Orderdetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    /**
+     * 璁㈠崟Id
+     */
+    private String orderId;
+    /**
+     * 椤圭洰鍚嶇О
+     */
+    private String project;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String processId;
+    /**
+     * 璁㈠崟搴忓彿
+     */
+    private String orderNumber;
+    /**
+     * 浜у搧鍚嶇О
+     */
+    private String productName;
+
+    /**
+     * 瀹�
+     */
+    private double width;
+    /**
+     * 楂�
+     */
+    private double height;
+
+    /**
+     * 闈㈢Н
+     */
+    private double area;
+    /**
+     * 鏁伴噺
+     */
+    private Integer quantity;
+    /**
+     * 琛ョ墖鏁伴噺
+     */
+    private Integer numberPatches;
+    /**
+     * 宸插叆鏁伴噺
+     */
+    private Integer receivedQuantity;
+    /**
+     * 鐢熶骇鐘舵��
+     */
+    private Integer terminationStatus;
+    /**
+     * 鍖呰鏂瑰紡
+     */
+    private String packType;
+    /**
+     * 宸ョ▼鍙�
+     */
+    private String projectNo;
+
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/Orders.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/Orders.java
new file mode 100644
index 0000000..d41e4df
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/Orders.java
@@ -0,0 +1,63 @@
+package com.mes.order.entity;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class Orders implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * <璁㈠崟琛�>
+     */
+
+
+    /**
+     * 璁㈠崟Id
+     */
+    private String orderId;
+    /**
+     * 瀹㈡埛鍚嶇О
+     */
+    private String customerName;
+
+    /**
+     * 椤圭洰鍚嶇О
+     */
+    private String project;
+
+    /**
+     * 闈㈢Н
+     */
+    private double area;
+
+
+    /**
+     * 鍖呰鏂瑰紡
+     */
+    private Integer quantity;
+    /**
+     * 鐘舵��
+     */
+    private Integer warehousing;
+    /**
+     * 閫佽揣鏃堕棿
+     */
+    private String deliveryDate;
+
+
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/dto/OrderDTO.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/dto/OrderDTO.java
new file mode 100644
index 0000000..6f7b4ca
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/dto/OrderDTO.java
@@ -0,0 +1,68 @@
+package com.mes.order.entity.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.models.auth.In;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class OrderDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 璁㈠崟Id
+     */
+    private String orderId;
+
+    /**
+     * 瀹㈡埛鍚嶇О
+     */
+    private String customerName;
+
+    /**
+     * 椤圭洰鍚嶇О
+     */
+    private String project;
+
+    /**
+     * 璁㈠崟鏁伴噺
+     */
+    private Integer quantity;
+
+    /**
+     * 璁㈠崟闈㈢Н
+     */
+    private Double area;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private String createTime;
+
+    /**
+     * 璁㈠崟杩涘害鐧惧垎姣�
+     */
+    private Double percent;
+
+    /**
+     * 璁㈠崟鐘舵��
+     */
+    private Integer orderStatus;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/request/OrderRequest.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/request/OrderRequest.java
new file mode 100644
index 0000000..67c0f8b
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/request/OrderRequest.java
@@ -0,0 +1,42 @@
+package com.mes.order.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class OrderRequest implements Serializable {
+
+    @ApiModelProperty(value = "璁㈠崟Id")
+    private String orderId;
+    @ApiModelProperty(value = "瀹㈡埛鍚嶇О")
+    private String customerName;
+    @ApiModelProperty(value = "椤圭洰鍚嶇О")
+    private String project;
+    @ApiModelProperty(value = "璁㈠崟鐘舵��")
+    private Integer orderStatus;
+    @ApiModelProperty(value = "寮�濮嬫椂闂�")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startTime;
+    @ApiModelProperty(value = "缁撴潫鏃堕棿")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/OrderMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/OrderMapper.java
new file mode 100644
index 0000000..f9ed0af
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/OrderMapper.java
@@ -0,0 +1,16 @@
+package com.mes.order.mapper;
+
+import com.mes.order.entity.Order;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-17
+ */
+public interface OrderMapper extends BaseMapper<Order> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/OrderdetailMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/OrderdetailMapper.java
new file mode 100644
index 0000000..87657fb
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/OrderdetailMapper.java
@@ -0,0 +1,15 @@
+package com.mes.order.mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.order.entity.Orderdetail;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-17
+ */
+public interface OrderdetailMapper extends BaseMapper<Orderdetail> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/OrdersMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/OrdersMapper.java
new file mode 100644
index 0000000..5a2cdf2
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/OrdersMapper.java
@@ -0,0 +1,19 @@
+package com.mes.order.mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.order.entity.Orders;
+import com.mes.order.entity.dto.OrderDTO;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-17
+ */
+public interface OrdersMapper extends BaseMapper<Orders> {
+
+    List<OrderDTO> selectOrderPercent();
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/xml/OrderMapper.xml b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/xml/OrderMapper.xml
new file mode 100644
index 0000000..bc48fb2
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/xml/OrderMapper.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--<mapper namespace="com.mes.order.mapper.OrdersMapper">-->
+<!--    <resultMap id="baseMap" type="com.mes.order.entity.dto.OrderDTO">-->
+<!--        <result column="order_id" property="orderId"/>-->
+<!--        <result column="customer_name" property="customerName"/>-->
+<!--        <result column="project" property="project"/>-->
+<!--        <result column="area" property="area"/>-->
+<!--        <result column="quantity" property="quantity"/>-->
+<!--        <result column="create_time" property="createTime"/>-->
+<!--        <result column="percent" property="percent"/>-->
+<!--    </resultMap>-->
+<!--    <select id="selectOrderPercent" resultMap="baseMap">-->
+<!--        SELECT a.order_id,-->
+<!--               a.customer_name,-->
+<!--               a.project,-->
+<!--               a.area,-->
+<!--               a.quantity,-->
+<!--               a.create_time,-->
+<!--               round(ifnull(d.finishNum, 0) / a.quantity * 100) as 'percent'-->
+<!--        from sd.`order` as a-->
+<!--                 LEFT JOIN (-->
+<!--            SELECT sum(c.reporting_work_num) as 'finishNum',order_id-->
+<!--            from sd.order_process_detail as c-->
+<!--            where c.id in (-->
+<!--                SELECT max(id) from sd.order_process_detail as b GROUP BY b.process_id, order_number-->
+<!--            )-->
+<!--            GROUP BY c.order_id-->
+<!--        ) as d-->
+<!--                           on a.order_id = d.order_id-->
+<!--        where a.warehousing != 2-->
+<!--    </select>-->
+<!--</mapper>-->
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/service/OrdersService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/service/OrdersService.java
new file mode 100644
index 0000000..e00a7c8
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/service/OrdersService.java
@@ -0,0 +1,26 @@
+package com.mes.order.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.order.entity.Order;
+import com.mes.order.entity.Orderdetail;
+import com.mes.order.entity.Orders;
+import com.mes.order.entity.dto.OrderDTO;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-17
+ */
+public interface OrdersService extends IService<Orders> {
+
+    List<Orders> selectOrders();
+
+    List<Orderdetail> selectOrderdetail(Orders orders);
+
+    List<OrderDTO> selectOrderPercent();
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/service/impl/OrdersServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/service/impl/OrdersServiceImpl.java
new file mode 100644
index 0000000..85d6f7c
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/service/impl/OrdersServiceImpl.java
@@ -0,0 +1,50 @@
+package com.mes.order.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.order.entity.Orderdetail;
+import com.mes.order.entity.Orders;
+import com.mes.order.entity.dto.OrderDTO;
+import com.mes.order.mapper.OrderdetailMapper;
+import com.mes.order.mapper.OrdersMapper;
+import com.mes.order.service.OrdersService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-17
+ */
+@Service
+@DS("sd")
+public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, Orders> implements OrdersService {
+@Autowired
+private OrderdetailMapper orderdetailMapper;
+    @Override
+    public List<Orders> selectOrders() {
+        //鑾峰彇鎵�鏈夋湭瀹屾垚鐨勮鍗�
+        QueryWrapper<Orders> queryWrapper = new QueryWrapper<>();
+        queryWrapper.ne("warehousing", "2");
+        return baseMapper.selectList(queryWrapper);
+    }
+
+    @Override
+    public List<Orderdetail> selectOrderdetail(Orders orders) {
+        QueryWrapper<Orderdetail> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("order_id", orders.getOrderId());
+        return orderdetailMapper.selectList(queryWrapper);
+    }
+
+    @Override
+    public List<OrderDTO> selectOrderPercent(){
+        return baseMapper.selectOrderPercent();
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/BasicDataProduceController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/BasicDataProduceController.java
new file mode 100644
index 0000000..eca9040
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/BasicDataProduceController.java
@@ -0,0 +1,39 @@
+package com.mes.pp.controller;
+
+
+import com.mes.pp.service.BasicDataProduceService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+@Api(tags = "鐢熶骇鍩虹鏁版嵁")
+@RestController
+@RequestMapping("/basic_data_produce")
+public class BasicDataProduceController {
+
+    @Autowired
+    //鑾峰彇寰呴�夋嫨鐨勫伐绋嬪彿
+    private BasicDataProduceService basicDataProduceService;
+
+    @ApiOperation("鏌ヨ鍩虹鏁版嵁")
+    @PostMapping("/selectBasicDataProduceGroup") //鏄剧ず宸ョ▼閫夋嫨淇℃伅
+    @ResponseBody
+    public Result selectBasicDataProduceGroup() {
+        return Result.build(200, "鏌ヨ鎴愬姛", basicDataProduceService.selectBasicDataProduceGroup());
+    }
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/DamageDetailsController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/DamageDetailsController.java
new file mode 100644
index 0000000..26a0918
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/DamageDetailsController.java
@@ -0,0 +1,32 @@
+package com.mes.pp.controller;
+
+
+import com.mes.pp.entity.BasicDataProduce;
+import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.entity.request.OptimizeRequest;
+import com.mes.pp.service.BasicDataProduceService;
+import com.mes.pp.service.OptimizeProjectService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-26
+ */
+@Api(tags = "鐮存崯璇︽儏淇℃伅")
+@RestController
+@RequestMapping("/damage_details")
+public class DamageDetailsController {
+
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/FlowCardController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/FlowCardController.java
new file mode 100644
index 0000000..badef54
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/FlowCardController.java
@@ -0,0 +1,50 @@
+package com.mes.pp.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.mes.pp.entity.dto.FlowCardPercentDTO;
+import com.mes.pp.entity.request.FlowCardRequest;
+import com.mes.pp.service.FlowCardService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-08-07
+ */
+@Api(tags = "娴佺▼鍗�")
+@RestController
+@RequestMapping("/flow_card")
+public class FlowCardController {
+
+    @Resource
+    FlowCardService flowCardService;
+
+    @ApiOperation("鏍规嵁璁㈠崟id鏌ヨ娴佺▼鍗¤繘搴�")
+    @PostMapping("/flowCardReportForms")
+    public Result flowCardReportForms(String orderId) {
+        return Result.build(200, "鏌ヨ鎴愬姛", flowCardService.flowCardReportForms(orderId));
+    }
+
+    @ApiOperation("璁㈠崟璇︽儏杩涘害鎺ュ彛")
+    @PostMapping("/flowCardPercent")
+    public Result<List<FlowCardPercentDTO>> flowCardPercent(@RequestBody FlowCardRequest flowCardRequest) {
+        return Result.build(200, "鏌ヨ鎴愬姛", null);
+    }
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeLayoutController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeLayoutController.java
new file mode 100644
index 0000000..5b54fe3
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeLayoutController.java
@@ -0,0 +1,20 @@
+package com.mes.pp.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@RestController
+@RequestMapping("/optimize-layout")
+public class OptimizeLayoutController {
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeProjectController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeProjectController.java
new file mode 100644
index 0000000..1a5f29e
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeProjectController.java
@@ -0,0 +1,56 @@
+package com.mes.pp.controller;
+
+
+import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.entity.request.OptimizeRequest;
+import com.mes.pp.service.OptimizeProjectService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@Api(tags = "宸ョ▼淇℃伅")
+@RestController
+@RequestMapping("/optimizeProject")
+@Slf4j
+public class OptimizeProjectController {
+    @Autowired
+    //鑾峰彇寰呴�夋嫨鐨勫伐绋嬪彿
+    private OptimizeProjectService optimizeProjectService;
+
+    @ApiOperation("鏄剧ず宸ョ▼閫夋嫨淇℃伅")
+    @PostMapping("/listByState") //鏄剧ず宸ョ▼閫夋嫨淇℃伅
+    @ResponseBody
+    public Result<List<OptimizeProject>> listByState(@RequestBody OptimizeRequest optimizeRequest) {
+        log.info("灏嗚姹傚弬鏁板皝瑁呭湪璇锋眰绫婚噷闈�");
+        List<OptimizeProject> glass = optimizeProjectService.listByState(optimizeRequest);
+
+        log.info("鏄剧ず宸ョ▼閫夋嫨淇℃伅:{}", glass);
+        return Result.build(200, "", glass);
+    }
+
+//    @ApiOperation("淇濆瓨宸ョ▼淇℃伅")
+//    @PostMapping("/saveProject") //鏄剧ず宸ョ▼閫夋嫨淇℃伅
+//    public Result<List<OptimizeProject>> saveProject(@RequestBody OptimizeRequest optimizeRequest) {
+//        log.info("鑾峰彇閫夋嫨濂界殑宸ョ▼id杩涜鏌ヨ鏁版嵁鍚庝繚瀛�");
+//        List<OptimizeProject> glass = optimizeProjectService.selectSaveProject(optimizeRequest);
+//        log.info("鏄剧ず宸ョ▼閫夋嫨淇℃伅鍚庝繚瀛樺埌upPattenUsage琛�:{}", glass);
+//        optimizeProjectService.insetupPattenUsage(glass);
+//        //void insetProject(glass);
+//        return Result.build(200, "", glass);
+//    }
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/ReportingWorkController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/ReportingWorkController.java
new file mode 100644
index 0000000..6189f9b
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/ReportingWorkController.java
@@ -0,0 +1,42 @@
+package com.mes.pp.controller;
+
+
+import com.mes.pp.entity.request.OptimizeRequest;
+import com.mes.pp.entity.request.Reportingdamage;
+import com.mes.pp.service.ReportingWorkService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-26
+ */
+@Api(tags = "宸ョ▼閫夋嫨淇℃伅")
+@RestController
+@RequestMapping("/reporting_work/reporting-work")
+@Slf4j
+public class ReportingWorkController {
+    @Autowired
+    private ReportingWorkService reportingWorkService;
+
+    @ApiOperation("鏄剧ず宸ョ▼閫夋嫨淇℃伅")
+    @PostMapping("/selectDamage") //鏄剧ず宸ョ▼閫夋嫨淇℃伅
+    @ResponseBody
+    public Result<List<Reportingdamage>> selectDamage(@RequestBody Reportingdamage reportingdamage) {
+        log.info("灏嗚姹傚弬鏁板皝瑁呭湪璇锋眰绫婚噷闈�");
+        List<Reportingdamage> glass = reportingWorkService.selectDamage(reportingdamage);
+        log.info("鏄剧ず宸ョ▼閫夋嫨淇℃伅:{}", glass);
+        return Result.build(200, "", glass);
+    }
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/ReportingWorkDetailController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/ReportingWorkDetailController.java
new file mode 100644
index 0000000..8460756
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/ReportingWorkDetailController.java
@@ -0,0 +1,37 @@
+package com.mes.pp.controller;
+
+
+import com.mes.pp.entity.dto.FlowCardPercentDTO;
+import com.mes.pp.entity.dto.ReportWorkDTO;
+import com.mes.pp.entity.request.FlowCardRequest;
+import com.mes.pp.entity.request.ReportWorkRequest;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+@Api(tags = "鎶ュ伐")
+@RestController
+@RequestMapping("/reporting-work-detail")
+public class ReportingWorkDetailController {
+
+    @ApiOperation("鎶ュ伐鏁版嵁鏌ヨ鎺ュ彛")
+    @PostMapping("/reportWorkQuery")
+    public Result<List<ReportWorkDTO>> reportWorkQuery(@RequestBody ReportWorkRequest reportWorkRequest) {
+        return Result.build(200, "鏌ヨ鎴愬姛", null);
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/BasicDataProduce.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/BasicDataProduce.java
new file mode 100644
index 0000000..7ad36be
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/BasicDataProduce.java
@@ -0,0 +1,55 @@
+package com.mes.pp.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.sql.Timestamp;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BasicDataProduce implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+      @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 鍩虹鏁版嵁绫诲瀷
+     */
+    private String basicType;
+
+    /**
+     * 鍩虹鏁版嵁鍚嶇О
+     */
+    private String basicName;
+
+    /**
+     * 鍩虹鏁版嵁绫诲埆
+     */
+    private String basicCategory;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Timestamp createTime;
+
+    /**
+     * 淇敼鏃堕棿
+     */
+    private Timestamp updateTime;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/DamageDetails.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/DamageDetails.java
new file mode 100644
index 0000000..6daf826
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/DamageDetails.java
@@ -0,0 +1,115 @@
+package com.mes.pp.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DamageDetails implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * <娆$牬鏄庣粏琛�>
+     */
+      @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 鎶ュ伐缂栧彿
+     */
+    private String reportingWorkId;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String processId;
+
+    /**
+     * 搴忓彿
+     */
+    private Integer orderNumber;
+
+    /**
+     * 宸ヨ壓纭搴忓彿锛堝眰鍙凤級
+     */
+    private Integer technologyNumber;
+
+    /**
+     * 娆$牬鏁伴噺
+     */
+    private Integer breakageQuantity;
+
+    /**
+     * 娆$牬绫诲瀷
+     */
+    private String breakageType;
+
+    /**
+     * 娆$牬鍘熷洜
+     */
+    private String breakageReason;
+
+    /**
+     * 鍙埄鐢紙榛樿0锛岄渶瑕佽繑宸�1锛�
+     */
+    private Integer available;
+
+    /**
+     * 杩斿伐/琛ョ墖鏁伴噺
+     */
+    private Integer quantity;
+
+    /**
+     * 杩斿伐宸ュ簭
+     */
+    private String returnProcess;
+
+    /**
+     * 璐d换宸ュ簭
+     */
+    private String responsibleProcess;
+
+    /**
+     * 璐d换浜哄憳
+     */
+    private String responsiblePersonnel;
+
+    /**
+     * 璐d换鐝粍
+     */
+    private String responsibleTeam;
+
+    /**
+     * 璐d换璁惧
+     */
+    private String responsibleEquipment;
+
+    /**
+     * 璐ㄦ鍛�
+     */
+    private String qualityInspector;
+
+    /**
+     * 琛ョ墖鐘舵�侊紙榛樿0锛屽凡琛ョ墖1锛�
+     */
+    private Integer patchStatus;
+
+    /**
+     * 璐ㄦ鐘舵�侊紙榛樿0,1寰呰川妫�1锛屽凡璐ㄦ2锛�
+     */
+    private Integer qualityInsStatus;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/FlowCard.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/FlowCard.java
new file mode 100644
index 0000000..3378be3
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/FlowCard.java
@@ -0,0 +1,163 @@
+package com.mes.pp.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-08-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class FlowCard implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * (宸ョ▼鍙�,2024.0302澶╂満)
+     */
+      @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 閿�鍞崟鍙�
+     */
+    private String orderId;
+
+    /**
+     * 鐢熶骇璁㈠崟鍙�
+     */
+    private String productionId;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String processId;
+
+    /**
+     * 钀芥灦椤哄簭
+     */
+    private String landingSequence;
+
+    /**
+     * 搴忓彿
+     */
+    private Integer orderNumber;
+
+    /**
+     * 宸ヨ壓纭搴忓彿
+     */
+    private Integer technologyNumber;
+
+    /**
+     * 鍒嗘灦鏁伴噺
+     */
+    private Integer quantity;
+
+    /**
+     * 浠ヤ紭鍖栨暟閲�
+     */
+    private Integer optimizeQuantity;
+
+    /**
+     * 鎺掔増鐘舵��(榛樿0,1鍏佽鎺掔増2浼樺寲鍗犵敤)
+     */
+    private Integer layoutStatus;
+
+    /**
+     * 琛ョ墖鏁伴噺
+     */
+    private Integer numberPatches;
+
+    /**
+     * 鏈�鍚庡伐搴忔姤宸� 搴撳瓨鏁伴噺
+     */
+    private Integer inventoryQuantity;
+
+    /**
+     * 宸插叆鏁伴噺
+     */
+    private Integer receivedQuantity;
+
+    /**
+     * 琛ョ墖缂栧彿
+     */
+    private String patchId;
+
+    /**
+     * 宸ョ▼鍗犵敤鐘舵�侊紝0涓哄崰鐢�1鍗犵敤
+     */
+    private Integer engineeringOccupancy;
+
+    /**
+     * 宸ョ▼鍙�(2024.0302娣诲姞)
+     */
+    private String projectNo;
+
+    /**
+     * 鍖呰鍓嶅伐搴忔姤宸� 搴撳瓨鏁伴噺
+     */
+    private Integer inventoryNumber;
+
+    /**
+     * 鍏ュ簱鏃堕棿
+     */
+    private LocalDateTime storageTime;
+
+    /**
+     * 鐢熶骇缁堟鐘舵��(榛樿0,1鐢熶骇缁堟)
+     */
+    private Integer terminationStatus;
+
+    /**
+     * 鎵撳嵃鐘舵��
+     */
+    private Integer printStatus;
+
+    /**
+     * 澶囩敤閿�
+     */
+    private Integer alternateKey;
+
+    /**
+     * 鍒嗘灦鍛�
+     */
+    private String founder;
+
+    /**
+     * 鍒嗘灦鏃堕棿
+     */
+    @TableField("splitFrame_time")
+    private LocalDateTime splitframeTime;
+
+    /**
+     * 灞傛暟
+     */
+    private Integer layersNumber;
+
+    /**
+     * 娴佺▼鍗℃墦鍗版帓搴�
+     */
+    private Integer sort;
+
+    /**
+     * 寤虹珛鏃堕棿
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 淇敼鏃堕棿
+     */
+    private LocalDateTime updateTime;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeDetail.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeDetail.java
new file mode 100644
index 0000000..9d75bd7
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeDetail.java
@@ -0,0 +1,123 @@
+package com.mes.pp.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class OptimizeDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    private String projectNo;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String processId;
+
+    /**
+     * 灞�
+     */
+    private Integer layer;
+
+    /**
+     * 搴忓彿
+     */
+    private Integer orderSort;
+
+    /**
+     * 鐗堝浘id
+     */
+    private Integer stockId;
+
+    /**
+     * 鐗堝浘搴�
+     */
+    private Integer stockNumber;
+
+    /**
+     * 鍥惧彿
+     */
+    private Integer graphNo;
+
+    /**
+     * 灏忕墖缂栧彿
+     */
+    private String glassId;
+
+    /**
+     * 灏忕墖ID
+     */
+    private Integer polysId;
+
+    /**
+     * 灏忕墖瀹斤紙鍔犵(閲忥級
+     */
+    private double pWidth;
+
+    /**
+     * 灏忕墖楂橈紙鍔犵(閲忥級
+     */
+    private double pHeight;
+
+    /**
+     * 灏忕墖瀹�
+     */
+    private double width;
+
+    /**
+     * 灏忕墖楂�
+     */
+    private double height;
+
+    /**
+     * x鍧愭爣
+     */
+    private double xAxis;
+
+    /**
+     * y鍧愭爣
+     */
+    private double yAxis;
+
+    /**
+     * 閽㈠寲鐗堝浘缂栧彿(鏋跺彿)
+     */
+    private Integer heatLayoutId;
+
+    private String h;
+
+    private String g;
+
+    private String r;
+
+    private String glassPoint;
+
+    @TableField("intRemark")
+    private Integer intremark;
+
+    @TableField("strRemark")
+    private String strremark;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeHeatDetail.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeHeatDetail.java
new file mode 100644
index 0000000..ad1c1b4
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeHeatDetail.java
@@ -0,0 +1,125 @@
+package com.mes.pp.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class OptimizeHeatDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    private String projectNo;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String processId;
+
+    /**
+     * 琛ョ墖鐘舵��:琛ョ墖1锛�0闈炶ˉ鐗�;2024.0409鏂板
+     */
+    private Integer patchState;
+
+    /**
+     * 灞�
+     */
+    private Integer layer;
+
+    /**
+     * 璁㈠崟鍐呮帓搴�
+     */
+    private Integer orderSort;
+
+    /**
+     * 鐗堝浘缂栧彿
+     */
+    private Integer layoutId;
+    /**
+     * 鐗堝浘鍐呮帓搴�
+     */
+    private Integer sort;
+    /**
+     * 灏忕墖缂栧彿
+     */
+    private Integer glassId;
+
+    /**
+     * 灏忕墖瀹�
+     */
+    private double width;
+
+    /**
+     * 灏忕墖楂�
+     */
+    private double height;
+    /**
+     * 閰嶇墖瀹�
+     */
+    private double pairWidth;
+    /**
+     * 閰嶇墖楂�
+     */
+    private double pairHeight;
+    /**
+     * x鍧愭爣
+     */
+    private double xAxis;
+
+    /**
+     * y鍧愭爣
+     */
+    private double yAxis;
+
+    /**
+     * 鏃嬭浆瑙掑害锛堥�嗘椂閽堬級
+     */
+    private double rotateAngle;
+    /**
+     * 鍒涘缓浜�
+     */
+    private String creater;
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Data createTime;
+    /**
+     * 淇敼鏃堕棿
+     */
+    private Data updateTime;
+
+    @TableField("intRemark")
+    private Integer intRemark;
+
+    @TableField("strRemark")
+    private String strRemark;
+
+    public double getWidth()
+    {
+        return width;
+    }
+
+    public double getHeigth()
+    {
+        return height;
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeHeatLayout.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeHeatLayout.java
new file mode 100644
index 0000000..7aa5d3c
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeHeatLayout.java
@@ -0,0 +1,70 @@
+package com.mes.pp.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class OptimizeHeatLayout implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    private String projectNo;
+
+    /**
+     * 鐗堝浘Id
+     */
+    private Integer layoutId;
+
+    /**
+     * 鐜荤拑鏁伴噺
+     */
+    private Integer glassQty;
+
+    /**
+     * 鐗堝浘鐜荤拑闈㈢Н
+     */
+    private double glassArea;
+
+    /**
+     * 瑁呰浇鐜�
+     */
+    private double layoutRate;
+
+    /**
+     * 鍒涘缓浜�
+     */
+    private Integer creater;
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+
+    @TableField("intRemark")
+    private Integer intRemark;
+
+    @TableField("strRemark")
+    private String strRemark;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeLayout.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeLayout.java
new file mode 100644
index 0000000..1d59674
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeLayout.java
@@ -0,0 +1,106 @@
+package com.mes.pp.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class OptimizeLayout implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    private String projectNo;
+
+    /**
+     * 鍘熺墖ID
+     */
+    private Integer stockId;
+
+    private double width;
+
+    private double height;
+
+    private double realwidth;
+
+    private double realheight;
+
+    /**
+     * 鍒囪鐜�
+     */
+    private String usageRate;
+
+    /**
+     * 鐗╂枡缂栫爜
+     */
+    private String stockCode;
+
+    /**
+     * 涓婁慨杈�
+     */
+    private String upTrim;
+
+    /**
+     * 涓�
+     */
+    private String downTrim;
+
+    /**
+     * 宸�
+     */
+    private String leftTrim;
+
+    /**
+     * 鍙�
+     */
+    private String rightTrim;
+
+    /**
+     * 鏁伴噺
+     */
+    private Integer count;
+
+    /**
+     * 灏忕墖鏁�
+     */
+    private String glassCount;
+
+    /**
+     * 灏忕墖闈㈢Н
+     */
+    private String glassArea;
+
+    /**
+     * 鍒涘缓浜�
+     */
+    private Integer creater;
+
+    private Date createTime;
+
+    @TableField("intRemark")
+    private Integer intremark;
+
+    @TableField("strRemark")
+    private String strremark;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeProject.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeProject.java
new file mode 100644
index 0000000..e23597e
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/OptimizeProject.java
@@ -0,0 +1,214 @@
+package com.mes.pp.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class OptimizeProject implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鑷锛�<浼樺寲-宸ョ▼>
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 宸ョ▼缂栧彿
+     */
+    private String projectNo;
+
+    /**
+     * 宸ョ▼椤圭洰鍚�
+     */
+    private String projectName;
+
+    /**
+     * 鐜荤拑鑶滅郴
+     */
+    private String glassType;
+
+    /**
+     * 鐜荤拑鍘氬害
+     */
+    private String glassThickness;
+
+    /**
+     * 宸ョ▼绉嶇被
+     */
+    private Integer type;
+
+    /**
+     * 鐘舵�侊細	-2鍒犻櫎锛�	-1榛樿锛�		1娴佺▼鍗″垱寤猴紱	2绗竴娆′紭鍖栦繚瀛�;		10閽㈠寲鎺ㄨ崘鍒涘缓淇濆瓨锛�	20浼樺寲缁撴灉淇濆瓨
+     */
+    private Integer state;
+
+    /**
+     * 鎬绘暟
+     */
+    private Integer glassTotal;
+
+    /**
+     * 鎬婚潰绉�
+     */
+    private double glassTotalArea;
+
+    /**
+     * 娴佺▼鍗℃暟閲�
+     */
+    private Integer processQty;
+
+    /**
+     * 寰幆钀芥灦鏁�
+     */
+    private Integer guidance;
+
+    /**
+     * 绗竴娆′娇鐢ㄥ師鏂欐暟
+     */
+    private Integer fristStockQty;
+
+    /**
+     * 绗竴娆″钩鍧囧垏瑁佺巼
+     */
+    private double fristCutPct;
+
+    /**
+     * 浣跨敤鐨勫師鏂欐暟
+     */
+    private Integer rawStockQty;
+
+    /**
+     * 浣跨敤鐨勫師鏂欓潰绉�
+     */
+    private double rawStockArea;
+
+    /**
+     * 骞冲潎鍒囪鐜�
+     */
+    private double avgCutPct;
+
+    /**
+     * 鏈夋晥鍒囪鐜�
+     */
+    private double validCutPct;
+
+    /**
+     * 灏剧墖鍒囪鐜�
+     */
+    private double lastCutPct;
+
+    /**
+     * g娣锋帓绋嬪害
+     */
+    private String chaosPct;
+
+    /**
+     * g鏈�澶ц杞界巼
+     */
+    private String maxLoadPct;
+
+    /**
+     * g鏈�澶ч潰绉�
+     */
+    private String maxArea;
+
+    /**
+     * g鏈�澶ф暟閲�
+     */
+    private Integer maxQty;
+
+    /**
+     * g涓婄墖瀹�
+     */
+    private double loadWidth;
+
+    /**
+     * g涓婄墖闀�
+     */
+    private double loadLength;
+
+    /**
+     * x闂撮殧
+     */
+    private double xSpace;
+
+    /**
+     * y闂撮殧
+     */
+    private double ySpace;
+
+    /**
+     * g骞冲潎瑁呰浇鐜�
+     */
+    private double loadRate;
+
+    /**
+     * 娴佺▼鍗¢泦鍚�
+     */
+    private String processCards;
+
+    /**
+     * g鎬荤倝鏁�
+     */
+    private Integer furnacesQty;
+
+    /**
+     * 澶囨敞
+     */
+    private String remark;
+
+    /**
+     * 鍒涘缓浜�
+     */
+    private String creater;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+
+    /**
+     * 淇敼鏃堕棿
+     */
+    private Date updateTime;
+
+//    /**
+//     * 闄よ啘鏂瑰紡
+//     */
+//    private Integer filmRemove;
+//
+//    /**
+//     * 璁惧
+//     */
+//    private Integer stationCell;
+    /**
+     * 棰勭暀锛屼娇鐢ㄩ渶娉ㄦ槑
+     */
+    @TableField("intRemark")
+    private Integer intremark;
+
+    /**
+     * 棰勭暀锛屼娇鐢ㄩ渶娉ㄦ槑
+     */
+    @TableField("strRemark")
+    private String strremark;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWork.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWork.java
new file mode 100644
index 0000000..68fc92e
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWork.java
@@ -0,0 +1,179 @@
+package com.mes.pp.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ReportingWork implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * <鎶ュ伐涓昏〃>
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 鎶ュ伐缂栧彿
+     */
+    private String reportingWorkId = "";
+
+    /**
+     * 閿�鍞崟鍙�
+     */
+    private String orderId;
+
+    /**
+     * 鐢熶骇璁㈠崟鍙�
+     */
+    private String productionId;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String processId;
+
+    /**
+     * 鏈伐搴�
+     */
+    private String thisProcess;
+
+//    /**
+//     * 璁惧缂栧彿
+//     */
+//    private byte[] deviceId;
+
+    /**
+     * 璁惧鍚嶇О
+     */
+    private String deviceName;
+
+    /**
+     * 涓婂伐搴�
+     */
+//    private String previousProcess;
+
+    /**
+     * 涓婂伐搴忔暟閲�
+     */
+//    private Integer previousProcessQuantity;
+
+    /**
+     * 鏈伐搴忔暟閲�
+     */
+    private Integer thisProcessQuantity;
+
+    /**
+     * 鏈伐搴忓畬宸ユ暟
+     */
+    private Integer thisCompletedQuantity;
+
+    /**
+     * 鏈伐搴忔鐮存暟
+     */
+    private Integer thisWornQuantity;
+
+    /**
+     * 涓嬪伐搴�
+     */
+    private String nextProcess;
+
+    /**
+     * 鐝
+     */
+    private String classes;
+
+    /**
+     * 鐝粍缂栧彿
+     */
+    private String teamsGroupsId;
+
+    /**
+     * 鐝粍鍚嶇О
+     */
+    private String teamsGroupsName;
+
+    /**
+     * 鎶ュ伐鐘舵��
+     */
+//    private Integer reportingWorkState;
+
+    /**
+     * 瀹℃牳浜�
+     */
+//    private String reviewed;
+
+    /**
+     * 瀹℃牳鐘舵��(榛樿0,瀹℃牳閫氳繃1锛屼笉閫氳繃2,灏忎簬0鍒犻櫎)
+     */
+//    private Integer reviewedState;
+
+    /**
+     * 澶囨敞
+     */
+//    private String notes;
+
+    /**
+     * 璐ㄦ鍛�
+     */
+//    private String qualityInspector;
+
+    /**
+     * 鍖呰鏂瑰紡
+     */
+//    private String packagingMethod;
+
+    /**
+     * 鎶ュ伐鏃堕棿
+     */
+    private LocalDateTime reportingWorkTime;
+
+    /**
+     * 瀹℃牳鏃堕棿
+     */
+//    private LocalDateTime examineTime;
+
+    /**
+     * 璐ㄦ鏃堕棿
+     */
+//    private LocalDateTime qualityInsTime;
+
+    /**
+     * 鍒涘缓鑰卛d
+     */
+    private String creatorId;
+
+    /**
+     * 鍒涘缓鑰�
+     */
+    private String creator;
+
+    /**
+     * 寤虹珛鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime createTime;
+
+    /**
+     * 淇敼鏃堕棿
+     */
+    private LocalDateTime updateTime;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWorkDetail.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWorkDetail.java
new file mode 100644
index 0000000..cb27704
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWorkDetail.java
@@ -0,0 +1,154 @@
+package com.mes.pp.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.List;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ReportingWorkDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * <鎶ュ伐鏄庣粏>
+     */
+      @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 鎶ュ伐缂栧彿
+     */
+    private String reportingWorkId;
+
+    /**
+     * 搴忓彿
+     */
+    private Integer orderNumber;
+
+    /**
+     * 宸ヨ壓纭搴忓彿
+     */
+    private Integer technologyNumber;
+
+    /**
+     * 瀹屽伐鏁伴噺
+     */
+    private Integer completedQuantity;
+
+    /**
+     * 娆$牬鏁伴噺
+     */
+    private Integer breakageQuantity;
+
+    /**
+     * 娆$牬绫诲瀷
+     */
+    private String breakageType;
+
+    /**
+     * 娆$牬鍘熷洜
+     */
+    private String breakageReason;
+
+    /**
+     * 鍙埄鐢紙1鍙埄鐢�0榛樿锛�
+     */
+    private Integer available;
+
+    /**
+     * 閫�鍥炲伐搴�
+     */
+    private String returnProcess;
+
+    /**
+     * 璐d换宸ュ簭
+     */
+    private String responsibleProcess;
+
+    /**
+     * 璐d换浜哄憳
+     */
+    private String responsiblePersonnel;
+
+    /**
+     * 璐d换鐝粍
+     */
+    private String responsibleTeam;
+
+    /**
+     * 璐d换璁惧
+     */
+    private String responsibleEquipment;
+
+    /**
+     * 璐ㄦ鍛�
+     */
+    private String qualityInspector;
+
+    /**
+     * 琛ョ墖鐘舵��
+     */
+    private Integer patchStatus;
+
+    /**
+     * 鍦ㄥ埗鍝佸悕绉�
+     */
+    private String workProgress;
+
+    /**
+     * 璐ㄦ鐘舵��
+     */
+    private Integer qualityInsStatus;
+
+    /**
+     * 鎶ュ伐绫诲瀷
+     */
+    private Integer type;
+
+    /**
+     * 寰呰繑宸ユ暟閲�
+     */
+    private Integer waitReworkQuantity;
+
+    /**
+     * 杩斿伐鐝粍
+     */
+    private String reworkTeam;
+
+    /**
+     * 杩斿伐瀹℃牳浜�
+     */
+    private String reviewer;
+
+    /**
+     * 杩斿伐瀹℃牳鐘舵��
+     */
+    private String reviewStatus;
+
+    /**
+     * 杩斿伐鏃堕棿
+     */
+    private LocalDateTime reworkTime;
+
+    /**
+     * 杩斿伐淇敼鏃堕棿
+     */
+    private LocalDateTime reworkUpdateTime;
+
+    private List<DamageDetails> damageDetails;
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/dto/FlowCardDTO.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/dto/FlowCardDTO.java
new file mode 100644
index 0000000..ab9dd3e
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/dto/FlowCardDTO.java
@@ -0,0 +1,110 @@
+package com.mes.pp.entity.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.sql.Timestamp;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class FlowCardDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 椤圭洰鍚嶇О
+     */
+    private String productName;
+
+    /**
+     * 鐜荤拑鍚嶇О
+     */
+    private String glassChild;
+
+    /**
+     * 璁㈠崟绫诲瀷
+     */
+    private String orderType;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String processId;
+
+    /**
+     * 璁㈠崟搴忓彿
+     */
+    private Integer orderNumber;
+
+    /**
+     * 灞傚彿
+     */
+    private Integer technologyNumber;
+
+    /**
+     * 璁㈠崟搴忓彿
+     */
+    private Double width;
+
+    /**
+     * 灞傚彿
+     */
+    private Double height;
+
+    /**
+     * 璁㈠崟鏁伴噺
+     */
+    private Integer quantity;
+
+    /**
+     * 鎶ュ伐鏁伴噺
+     */
+    private String reportWorkQuantity;
+
+    /**
+     * 鎶ュ伐鏁伴噺
+     */
+    private String reportWorkQuantityCount;
+
+    /**
+     * 鎶ュ伐鏃堕棿
+     */
+    private String reportWorkTime;
+
+    /**
+     * 鐮存崯鏁伴噺
+     */
+    private String brokenNum;
+
+    /**
+     * 搴撳瓨鏁伴噺
+     */
+    private Integer inventory;
+
+    /**
+     * 搴撳瓨闈㈢Н
+     */
+    private Double inventoryArea;
+
+    /**
+     * 鍙戣揣鏁伴噺
+     */
+    private Integer shippedQuantity;
+
+    /**
+     * 鐜荤拑No
+     */
+    private String glassNumber;
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/dto/FlowCardPercentDTO.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/dto/FlowCardPercentDTO.java
new file mode 100644
index 0000000..2f89fd3
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/dto/FlowCardPercentDTO.java
@@ -0,0 +1,102 @@
+package com.mes.pp.entity.dto;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class FlowCardPercentDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String processId;
+
+    /**
+     * 灞傚彿
+     */
+    private Integer technologyNumber;
+
+    /**
+     * 璁㈠崟搴忓彿
+     */
+    private Integer orderNumber;
+
+    /**
+     * 椤圭洰鍚嶇О
+     */
+    private String productName;
+
+    /**
+     * 鐜荤拑鍚嶇О
+     */
+    private String glassChild;
+
+    /**
+     * 瀹�
+     */
+    private Double width;
+
+    /**
+     * 楂�
+     */
+    private Double height;
+
+    /**
+     * 璁㈠崟鏁伴噺
+     */
+    private Integer quantity;
+
+    /**
+     * 璁㈠崟绫诲瀷
+     */
+    private String orderType;
+
+    /**
+     * 闈㈢Н
+     */
+    private Double area;
+
+    /**
+     * 琛ョ墖鏁伴噺
+     */
+    private Integer PatchQuantity;
+
+    /**
+     * 鎶ュ伐宸ュ簭
+     */
+    private String reportWorkProcess;
+
+    /**
+     * 鎶ュ伐鏁伴噺
+     */
+    private String reportWorkQuantityCount;
+
+    /**
+     * 搴撳瓨鏁伴噺
+     */
+    private Integer inventory;
+
+    /**
+     * 鐢熶骇缁堟鐘舵��
+     */
+    private String orderNumberStatus;
+
+    /**
+     * 鐢熶骇缁堟鐘舵��
+     */
+    private String packagingMethod;
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/dto/ReportWorkDTO.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/dto/ReportWorkDTO.java
new file mode 100644
index 0000000..fef34cb
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/dto/ReportWorkDTO.java
@@ -0,0 +1,67 @@
+package com.mes.pp.entity.dto;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ReportWorkDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String processId;
+
+    /**
+     * 灞傚彿
+     */
+    private Integer technologyNumber;
+
+    /**
+     * 鎶ュ伐宸ュ簭
+     */
+    private String reportWorkProcess;
+
+    /**
+     * 鐜荤拑鍚嶇О
+     */
+    private String glassChild;
+
+    /**
+     * 鎶ュ伐鏁伴噺
+     */
+    private String reportWorkQuantity;
+
+    /**
+     * 鎶ュ伐闈㈢Н
+     */
+    private String reportWorkArea;
+
+    /**
+     * 娆$牬鏁伴噺
+     */
+    private String damageWorkQuantity;
+
+    /**
+     * 娆$牬闈㈢Н
+     */
+    private String damageWorkArea;
+
+    /**
+     * 鏃堕棿
+     */
+    private String reportTime;
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/AwaitingRepair.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/AwaitingRepair.java
new file mode 100644
index 0000000..5d08d26
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/AwaitingRepair.java
@@ -0,0 +1,161 @@
+package com.mes.pp.entity.request;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class AwaitingRepair implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 娆$牬鏃堕棿
+     */
+    private String reportingWorkTime;
+
+    /**
+     * 璁㈠崟鍙�
+     */
+    private String orderId;
+    /**
+     * 鎶ュ伐缂栧彿
+     */
+    private String reportingWorkId;
+    /**
+     * 鐢熶骇璁㈠崟鍙�
+     */
+    private String productionId;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String processId;
+
+    /**
+     * 椤圭洰鍚嶇О
+     */
+    private String project;
+
+    /**
+     * 鎵规
+     */
+    private String batch;
+
+    /**
+     * 鏄庣粏id
+     */
+    private String reviewer;
+
+    /**
+     * 妤煎彿
+     */
+    private String buildingNumber;
+
+    /**
+     * 璁㈠崟搴忓彿
+     */
+    private Integer orderSort;
+    /**
+     * 浜у搧鍚嶇О
+     */
+    private String productName;
+
+    /**
+     * 宸ヨ壓纭搴忓彿
+     */
+    private Integer technologyNumber;
+    /**
+     * 鐗囨爣璁帮紙浣嶇疆锛�
+     */
+    private String glassAddress;
+
+    /**
+     * 琛ョ墖鏁伴噺
+     */
+    private Integer patchNum;
+
+    /**
+     * 瀹�
+     */
+    private double width;
+
+    /**
+     * 楂�
+     */
+    private double height;
+
+    /**
+     * 褰㈢姸
+     */
+    private String shape;
+
+    /**
+     * 璐d换宸ュ簭
+     */
+    private String responsibleProcess;
+
+    /**
+     * 鏈伐搴�
+     */
+    private String patchProcesses;
+
+    /**
+     * 娆$牬鏈ˉ鏁伴噺
+     */
+    private Integer breakageQuantity;
+
+    /**
+     * 閫�鍥炲伐搴�
+     */
+    private String returnProcesses;
+
+    /**
+     * 娆$牬鍘熷洜
+     */
+    private String patchReason;
+
+    /**
+     * 娆$牬绫诲瀷
+     */
+    private String patchType;
+
+    /**
+     * 璐d换浜哄憳
+     */
+    private String responsiblePersonnel;
+
+    /**
+     * 璐d换璁惧
+     */
+    private String responsibleEquipment;
+
+    /**
+     * 璐d换鐝粍
+     */
+    private String responsibleTeam;
+
+    /**
+     * 娆$牬闈㈢Н
+     */
+    private double patchArea;
+
+    /**
+     * 璐ㄦ鍛�
+     */
+    private String qualityInspector;
+
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/FlowCardRequest.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/FlowCardRequest.java
new file mode 100644
index 0000000..ff27e1d
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/FlowCardRequest.java
@@ -0,0 +1,28 @@
+package com.mes.pp.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class FlowCardRequest implements Serializable {
+
+    @ApiModelProperty(value = "璁㈠崟Id")
+    private String orderId;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/OptimizeRequest.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/OptimizeRequest.java
new file mode 100644
index 0000000..c790386
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/OptimizeRequest.java
@@ -0,0 +1,20 @@
+package com.mes.pp.entity.request;
+
+import io.swagger.annotations.ApiParam;
+import lombok.Data;
+
+/**
+ * @author wu
+ */
+@Data
+public class OptimizeRequest {
+    @ApiParam("")
+    private String projectNo;
+
+    @ApiParam("")
+    private Integer state;
+
+
+}
+
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/OrderDetail.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/OrderDetail.java
new file mode 100644
index 0000000..7c3035f
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/OrderDetail.java
@@ -0,0 +1,58 @@
+package com.mes.pp.entity.request;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author tao
+ * @since 2024-06-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class OrderDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+
+    /**
+     * 璁㈠崟鍙�
+     */
+    private String orderId;
+    /**
+     * 瀹㈡埛鍚嶇О
+     */
+    private String customName;
+    /**
+     * 椤圭洰鍚嶇О
+     */
+    private String project;
+
+    /**
+     * 璁㈠崟闈㈢Н
+     */
+    private String area;
+
+    /**
+     * 璁㈠崟鏁伴噺
+     */
+    private String quantity;
+
+    /**
+     * 璁㈠崟鍒涘缓鏃堕棿
+     */
+    private String createtime;
+
+    /**
+     * 杩涘害鐧惧垎姣�
+     */
+    private String percent;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/ReportWorkRequest.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/ReportWorkRequest.java
new file mode 100644
index 0000000..f5bc1fc
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/ReportWorkRequest.java
@@ -0,0 +1,38 @@
+package com.mes.pp.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ReportWorkRequest implements Serializable {
+
+    @ApiModelProperty(value = "娴佺▼鍗″彿")
+    private String processId;
+    @ApiModelProperty(value = "宸ュ簭鍚嶇О")
+    private String reportWorkProcess;
+    @ApiModelProperty(value = "寮�濮嬫椂闂�")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startTime;
+    @ApiModelProperty(value = "缁撴潫鏃堕棿")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/Reportingdamage.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/Reportingdamage.java
new file mode 100644
index 0000000..130ce69
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/Reportingdamage.java
@@ -0,0 +1,42 @@
+package com.mes.pp.entity.request;
+
+import cn.hutool.core.date.DateTime;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+/**
+ * @author wu
+ */
+@Data
+public class Reportingdamage {
+    /**
+     * 宸ュ簭
+     */
+    private String thisProcess;
+
+    /**
+     * 璁惧
+     */
+    private String deviceName;
+    /**
+     * 鍔犲伐鏁伴噺
+     */
+    private Integer completedQuantity;
+    /**
+     * 娆$牬鏁伴噺
+     */
+    private Integer breakageQuantity;
+    /**
+     * 娆$牬鏃堕棿
+     */
+    private String reportingWorkTime;
+    /**
+     * 娆$牬鏃堕棿2
+     */
+    private String reportingWorkTime2;
+
+
+}
+
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/BasicDataProduceMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/BasicDataProduceMapper.java
new file mode 100644
index 0000000..dc15b3d
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/BasicDataProduceMapper.java
@@ -0,0 +1,18 @@
+package com.mes.pp.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.pp.entity.BasicDataProduce;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+@DS("pp")
+public interface BasicDataProduceMapper extends BaseMapper<BasicDataProduce> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/FlowCardMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/FlowCardMapper.java
new file mode 100644
index 0000000..b1b4828
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/FlowCardMapper.java
@@ -0,0 +1,31 @@
+package com.mes.pp.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.mes.pp.entity.FlowCard;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.pp.entity.dto.FlowCardDTO;
+import feign.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-08-07
+ */
+@DS("pp")
+public interface FlowCardMapper extends BaseMapper<FlowCard> {
+
+    List<Map<String, Object>> selectProject(@Param("processId") String processId, @Param("technologyNumber") Integer technologyNumber);
+
+    List<Map<String, Object>> selectFlowCard(@Param("processId") String processId, @Param("technologyNumber") Integer technologyNumber);
+
+    List<Map<String, Object>> selectLabel(@Param("processId") String processId, @Param("technologyNumber") Integer technologyNumber);
+
+    List<FlowCardDTO> flowCardReportForms(@Param("orderId") String orderId);
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeDetailMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeDetailMapper.java
new file mode 100644
index 0000000..0f6b968
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeDetailMapper.java
@@ -0,0 +1,18 @@
+package com.mes.pp.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.pp.entity.OptimizeDetail;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@DS("pp")
+public interface OptimizeDetailMapper extends MPJBaseMapper<OptimizeDetail> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeHeatDetailMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeHeatDetailMapper.java
new file mode 100644
index 0000000..0e7c2ea
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeHeatDetailMapper.java
@@ -0,0 +1,19 @@
+package com.mes.pp.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.pp.entity.OptimizeDetail;
+import com.mes.pp.entity.OptimizeHeatDetail;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@DS("pp")
+public interface OptimizeHeatDetailMapper extends MPJBaseMapper<OptimizeHeatDetail> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeHeatLayoutMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeHeatLayoutMapper.java
new file mode 100644
index 0000000..4a607f4
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeHeatLayoutMapper.java
@@ -0,0 +1,19 @@
+package com.mes.pp.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.pp.entity.OptimizeDetail;
+import com.mes.pp.entity.OptimizeHeatLayout;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@DS("pp")
+public interface OptimizeHeatLayoutMapper extends MPJBaseMapper<OptimizeHeatLayout> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeLayoutMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeLayoutMapper.java
new file mode 100644
index 0000000..20f9c71
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeLayoutMapper.java
@@ -0,0 +1,18 @@
+package com.mes.pp.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.pp.entity.OptimizeLayout;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@DS("pp")
+public interface OptimizeLayoutMapper extends MPJBaseMapper<OptimizeLayout> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeProjectMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeProjectMapper.java
new file mode 100644
index 0000000..2449b5f
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeProjectMapper.java
@@ -0,0 +1,21 @@
+package com.mes.pp.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.entity.request.OptimizeRequest;
+
+import java.util.List;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@DS("pp")
+public interface OptimizeProjectMapper extends MPJBaseMapper<OptimizeProject> {
+    List<OptimizeProject> saveProject(OptimizeRequest optimizeRequest);
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/ReportingWorkDetailMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/ReportingWorkDetailMapper.java
new file mode 100644
index 0000000..1185b00
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/ReportingWorkDetailMapper.java
@@ -0,0 +1,16 @@
+package com.mes.pp.mapper;
+
+import com.mes.pp.entity.ReportingWorkDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+public interface ReportingWorkDetailMapper extends BaseMapper<ReportingWorkDetail> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/ReportingWorkMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/ReportingWorkMapper.java
new file mode 100644
index 0000000..3c5b64e
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/ReportingWorkMapper.java
@@ -0,0 +1,16 @@
+package com.mes.pp.mapper;
+
+import com.mes.pp.entity.ReportingWork;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-26
+ */
+public interface ReportingWorkMapper extends BaseMapper<ReportingWork> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/request/AwaitingRepairMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/request/AwaitingRepairMapper.java
new file mode 100644
index 0000000..a932fff
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/request/AwaitingRepairMapper.java
@@ -0,0 +1,16 @@
+package com.mes.pp.mapper.request;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.pp.entity.request.AwaitingRepair;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-26
+ */
+public interface AwaitingRepairMapper extends BaseMapper<AwaitingRepair> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/request/ReportingDamageMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/request/ReportingDamageMapper.java
new file mode 100644
index 0000000..c9ca9e2
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/request/ReportingDamageMapper.java
@@ -0,0 +1,16 @@
+package com.mes.pp.mapper.request;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.pp.entity.request.Reportingdamage;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-26
+ */
+public interface ReportingDamageMapper extends BaseMapper<Reportingdamage> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/BasicDataProduceService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/BasicDataProduceService.java
new file mode 100644
index 0000000..939dc76
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/BasicDataProduceService.java
@@ -0,0 +1,20 @@
+package com.mes.pp.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.pp.entity.BasicDataProduce;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+public interface BasicDataProduceService extends IService<BasicDataProduce> {
+
+    Map<String, List<BasicDataProduce>> selectBasicDataProduceGroup();
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/DamageDetailsService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/DamageDetailsService.java
new file mode 100644
index 0000000..6b0eb6f
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/DamageDetailsService.java
@@ -0,0 +1,16 @@
+package com.mes.pp.service;
+
+import com.mes.pp.entity.DamageDetails;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-26
+ */
+public interface DamageDetailsService extends IService<DamageDetails> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/FlowCardService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/FlowCardService.java
new file mode 100644
index 0000000..70728a9
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/FlowCardService.java
@@ -0,0 +1,27 @@
+package com.mes.pp.service;
+
+import com.mes.pp.entity.FlowCard;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.pp.entity.dto.FlowCardDTO;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-08-07
+ */
+public interface FlowCardService extends IService<FlowCard> {
+
+    List<Map<String, Object>> selectProject(String processId, Integer technologyNumber);
+
+    List<Map<String, Object>> selectFlowCard(String processId, Integer technologyNumber);
+
+    List<Map<String, Object>> selectLabel(String processId, Integer technologyNumber);
+
+    List<FlowCardDTO> flowCardReportForms(String orderId);
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeDetailService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeDetailService.java
new file mode 100644
index 0000000..cb8aee3
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeDetailService.java
@@ -0,0 +1,17 @@
+package com.mes.pp.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.yulichang.base.MPJBaseService;
+import com.mes.pp.entity.OptimizeDetail;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+public interface OptimizeDetailService extends MPJBaseService<OptimizeDetail> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeHeatDetailService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeHeatDetailService.java
new file mode 100644
index 0000000..882f479
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeHeatDetailService.java
@@ -0,0 +1,25 @@
+package com.mes.pp.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.mes.pp.entity.OptimizeDetail;
+import com.mes.pp.entity.OptimizeHeatDetail;
+import com.mes.pp.entity.OptimizeHeatLayout;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+public interface OptimizeHeatDetailService extends MPJBaseService<OptimizeHeatDetail> {
+
+    /**
+     * 杩斿洖鎸囧畾宸ョ▼ 鎸囧畾鐗堝浘鍙风殑灏忕墖鐜荤拑淇℃伅
+     * @return
+     */
+    List<OptimizeHeatDetail> selectHeatDetailGlassInfo(String engineerId, Integer temperingid);
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeHeatLayoutService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeHeatLayoutService.java
new file mode 100644
index 0000000..ba1f5ac
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeHeatLayoutService.java
@@ -0,0 +1,24 @@
+package com.mes.pp.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.mes.pp.entity.OptimizeDetail;
+import com.mes.pp.entity.OptimizeHeatLayout;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+public interface OptimizeHeatLayoutService extends MPJBaseService<OptimizeHeatLayout> {
+    /**
+     * 杩斿洖鎸囧畾宸ョ▼ 鎸囧畾鐗堝浘鍙风殑鐗堝浘淇℃伅
+     * @return
+     */
+    OptimizeHeatLayout selectHeatLayoutInfo(String engineerId,Integer temperingid);
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeLayoutService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeLayoutService.java
new file mode 100644
index 0000000..a4f81b7
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeLayoutService.java
@@ -0,0 +1,16 @@
+package com.mes.pp.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.mes.pp.entity.OptimizeLayout;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+public interface OptimizeLayoutService extends MPJBaseService<OptimizeLayout> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeProjectService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeProjectService.java
new file mode 100644
index 0000000..a2d8310
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeProjectService.java
@@ -0,0 +1,43 @@
+package com.mes.pp.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.entity.request.OptimizeRequest;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+public interface OptimizeProjectService extends MPJBaseService<OptimizeProject> {
+
+    /**
+     * 鏌ヨ鍙鍙栫殑浠诲姟宸ョ▼淇℃伅
+     * @return List<OptimizeProject>
+     */
+    List<OptimizeProject> listByState(OptimizeRequest optimizeRequest);
+
+    /**
+     * 灏嗗伐绋嬩俊鎭洿鏂扮姸鎬佷负宸查鍙�
+     */
+    void changeTask(String engineeringId, int i);
+    /**
+     * 瀹屾垚宸ョ▼浠诲姟鏀逛负300
+     *
+     * @return
+     */
+    boolean overTask(UpPattenUsage sequence, int state);
+    /**
+     * 鑾峰彇姝e湪杩涜涓殑浠诲姟
+     *
+     * @return
+     */
+    List<OptimizeProject> getDoingTask();
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/ReportingWorkDetailService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/ReportingWorkDetailService.java
new file mode 100644
index 0000000..5574527
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/ReportingWorkDetailService.java
@@ -0,0 +1,16 @@
+package com.mes.pp.service;
+
+import com.mes.pp.entity.ReportingWorkDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+public interface ReportingWorkDetailService extends IService<ReportingWorkDetail> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/ReportingWorkService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/ReportingWorkService.java
new file mode 100644
index 0000000..2349dbb
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/ReportingWorkService.java
@@ -0,0 +1,33 @@
+package com.mes.pp.service;
+
+import com.mes.pp.entity.ReportingWork;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.pp.entity.request.AwaitingRepair;
+import com.mes.pp.entity.request.Reportingdamage;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-26
+ */
+public interface ReportingWorkService extends IService<ReportingWork> {
+
+     /**
+      * 鑾峰彇椤堕儴鎵囧舰鍥剧牬鎹熷姞宸ユ暟閲�,浼犲叆鍙傛暟锛氬伐搴忥紝璁惧锛屽姞宸ユ椂闂�
+      *
+      * @return
+      */
+     List<Reportingdamage> selectDamage(Reportingdamage reportingdamage);
+     /**
+      * 鑾峰彇鐮存崯鏈ˉ鐗囩殑鍒楄〃
+      *
+      * @return
+      */
+     List<AwaitingRepair> selectAwaitingRepair();
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/BasicDataProduceServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/BasicDataProduceServiceImpl.java
new file mode 100644
index 0000000..143cffb
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/BasicDataProduceServiceImpl.java
@@ -0,0 +1,30 @@
+package com.mes.pp.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.pp.entity.BasicDataProduce;
+import com.mes.pp.mapper.BasicDataProduceMapper;
+import com.mes.pp.service.BasicDataProduceService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+@Service
+public class BasicDataProduceServiceImpl extends ServiceImpl<BasicDataProduceMapper, BasicDataProduce> implements BasicDataProduceService {
+
+    @Override
+    public Map<String, List<BasicDataProduce>> selectBasicDataProduceGroup(){
+        List<BasicDataProduce> basicDataProduceList=baseMapper.selectList(null);
+        Map<String, List<BasicDataProduce>> listMap = basicDataProduceList.stream().collect(Collectors.groupingBy(item -> item.getBasicType()));
+        return listMap;
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/FlowCardServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/FlowCardServiceImpl.java
new file mode 100644
index 0000000..74225cc
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/FlowCardServiceImpl.java
@@ -0,0 +1,43 @@
+package com.mes.pp.service.impl;
+
+import com.mes.pp.entity.FlowCard;
+import com.mes.pp.entity.dto.FlowCardDTO;
+import com.mes.pp.mapper.FlowCardMapper;
+import com.mes.pp.service.FlowCardService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-08-07
+ */
+@Service
+public class FlowCardServiceImpl extends ServiceImpl<FlowCardMapper, FlowCard> implements FlowCardService {
+
+    @Override
+    public List<Map<String, Object>> selectProject(String processId, Integer technologyNumber) {
+        return baseMapper.selectProject(processId, technologyNumber);
+    }
+
+    @Override
+    public List<Map<String, Object>> selectFlowCard(String processId, Integer technologyNumber) {
+        return baseMapper.selectFlowCard(processId, technologyNumber);
+    }
+
+    @Override
+    public List<Map<String, Object>> selectLabel(String processId, Integer technologyNumber) {
+        return baseMapper.selectLabel(processId, technologyNumber);
+    }
+
+    @Override
+    public List<FlowCardDTO> flowCardReportForms(String orderId) {
+        return baseMapper.flowCardReportForms(orderId);
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeDetailServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeDetailServiceImpl.java
new file mode 100644
index 0000000..3259c58
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeDetailServiceImpl.java
@@ -0,0 +1,23 @@
+package com.mes.pp.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.mes.pp.entity.OptimizeDetail;
+import com.mes.pp.mapper.OptimizeDetailMapper;
+import com.mes.pp.service.OptimizeDetailService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@Service
+@DS("pp")
+public class OptimizeDetailServiceImpl extends MPJBaseServiceImpl<OptimizeDetailMapper, OptimizeDetail> implements OptimizeDetailService {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeHeatDetailServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeHeatDetailServiceImpl.java
new file mode 100644
index 0000000..21c578e
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeHeatDetailServiceImpl.java
@@ -0,0 +1,37 @@
+package com.mes.pp.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.mes.pp.entity.OptimizeDetail;
+import com.mes.pp.entity.OptimizeHeatDetail;
+import com.mes.pp.entity.OptimizeHeatLayout;
+import com.mes.pp.mapper.OptimizeDetailMapper;
+import com.mes.pp.mapper.OptimizeHeatDetailMapper;
+import com.mes.pp.service.OptimizeDetailService;
+import com.mes.pp.service.OptimizeHeatDetailService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@Service
+@DS("pp")
+public class OptimizeHeatDetailServiceImpl extends MPJBaseServiceImpl<OptimizeHeatDetailMapper, OptimizeHeatDetail> implements OptimizeHeatDetailService {
+
+    @Override
+    public List<OptimizeHeatDetail> selectHeatDetailGlassInfo(String engineerId, Integer temperingid) {
+        QueryWrapper<OptimizeHeatDetail> wrapper = new QueryWrapper<>();
+        wrapper.eq("project_no", engineerId)
+                .eq("layout_id", temperingid)
+        .orderByAsc("sort");
+        return baseMapper.selectList(wrapper);
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeHeatLayoutServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeHeatLayoutServiceImpl.java
new file mode 100644
index 0000000..8d4c429
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeHeatLayoutServiceImpl.java
@@ -0,0 +1,39 @@
+package com.mes.pp.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.mes.pp.entity.OptimizeDetail;
+import com.mes.pp.entity.OptimizeHeatLayout;
+import com.mes.pp.mapper.OptimizeDetailMapper;
+import com.mes.pp.mapper.OptimizeHeatLayoutMapper;
+import com.mes.pp.service.OptimizeDetailService;
+import com.mes.pp.service.OptimizeHeatLayoutService;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@Service
+@DS("pp")
+public class OptimizeHeatLayoutServiceImpl extends MPJBaseServiceImpl<OptimizeHeatLayoutMapper, OptimizeHeatLayout> implements OptimizeHeatLayoutService {
+
+
+
+    @Override
+    public OptimizeHeatLayout selectHeatLayoutInfo(String engineerId, Integer temperingid) {
+
+        QueryWrapper<OptimizeHeatLayout> wrapper = new QueryWrapper<>();
+        wrapper.select("Top 1 *").eq("project_no", engineerId)
+                .eq("layout_id", temperingid);
+        return baseMapper.selectOne(wrapper);
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeLayoutServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeLayoutServiceImpl.java
new file mode 100644
index 0000000..b4c2ce7
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeLayoutServiceImpl.java
@@ -0,0 +1,22 @@
+package com.mes.pp.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.mes.pp.entity.OptimizeLayout;
+import com.mes.pp.mapper.OptimizeLayoutMapper;
+import com.mes.pp.service.OptimizeLayoutService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@Service
+@DS("pp")
+public class OptimizeLayoutServiceImpl extends MPJBaseServiceImpl<OptimizeLayoutMapper, OptimizeLayout> implements OptimizeLayoutService {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeProjectServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeProjectServiceImpl.java
new file mode 100644
index 0000000..964898a
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeProjectServiceImpl.java
@@ -0,0 +1,90 @@
+package com.mes.pp.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.mes.engineering.entity.Engineering;
+import com.mes.engineering.service.EngineeringService;
+import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.entity.request.OptimizeRequest;
+import com.mes.pp.mapper.OptimizeProjectMapper;
+import com.mes.pp.service.OptimizeProjectService;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@Service
+@DS("pp")
+@Slf4j
+public class OptimizeProjectServiceImpl extends MPJBaseServiceImpl<OptimizeProjectMapper, OptimizeProject> implements OptimizeProjectService {
+    @Autowired
+    private EngineeringService engineeringService;
+
+    @Override
+    public List<OptimizeProject> listByState(OptimizeRequest optimizeRequest) {
+        //PP琛ㄦ湭寮�濮嬬殑宸ョ▼鍙�
+        LambdaQueryWrapper<OptimizeProject> wrapper = new LambdaQueryWrapper<>();
+        wrapper.select(OptimizeProject::getProjectNo)
+                .eq(OptimizeProject::getState, optimizeRequest.getState());
+        List<OptimizeProject> glass = this.list(wrapper);
+        //鏆傚仠鐨勫伐绋嬪彿
+        List<Engineering> engineerings = engineeringService.selectTask();
+
+
+        for (int i = 0; i < engineerings.size(); i++) {
+            Engineering engineering = engineerings.get(i);
+            OptimizeProject newProject = new OptimizeProject();
+            newProject.setProjectNo(engineering.getEngineerId());
+            // 灏嗘柊鍒涘缓鐨� OptimizeProject 瀵硅薄娣诲姞鍒� glass 鍒楄〃涓�
+            glass.add(newProject);
+        }
+        //杩斿洖宸ョ▼淇℃伅
+        return glass;
+    }
+
+
+    @Override
+    public void changeTask(String engineeringId, int state) {
+        UpdateWrapper<OptimizeProject> wrapper = new UpdateWrapper<>();
+        wrapper.eq("project_no",engineeringId)
+                .set("state",state);
+        boolean updateSuccess = this.update(wrapper);
+        log.info("宸ョ▼琛ㄦ洿鏂扮姸鎬亄}",updateSuccess);
+
+    }
+
+    @Override
+    public boolean overTask(UpPattenUsage sequence, int state) {
+        if(sequence.getState()==100){
+            UpdateWrapper<OptimizeProject> wrapper=new  UpdateWrapper<>();
+            wrapper.eq("project_no",sequence.getEngineeringId())
+                    .set("state",state);
+            boolean updateSuccess = this.update(wrapper);
+            log.info("宸ョ▼瀹屾垚鏇存柊鐘舵�亄}",updateSuccess);
+        }
+        return false;
+    }
+
+    @Override
+    public List<OptimizeProject> getDoingTask() {
+        QueryWrapper<OptimizeProject> wrapper = new QueryWrapper<>();
+        wrapper.select("project_no,project_name")
+        .eq("state",200);
+        return this.list(wrapper);
+    }
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/ReportingWorkServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/ReportingWorkServiceImpl.java
new file mode 100644
index 0000000..47f829c
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/ReportingWorkServiceImpl.java
@@ -0,0 +1,55 @@
+package com.mes.pp.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.mes.pp.entity.ReportingWork;
+import com.mes.pp.entity.request.AwaitingRepair;
+import com.mes.pp.entity.request.Reportingdamage;
+import com.mes.pp.mapper.ReportingWorkMapper;
+import com.mes.pp.mapper.request.AwaitingRepairMapper;
+import com.mes.pp.mapper.request.ReportingDamageMapper;
+import com.mes.pp.service.ReportingWorkService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-06-26
+ */
+@Service
+@DS("pp")
+@Slf4j
+public class ReportingWorkServiceImpl extends ServiceImpl<ReportingWorkMapper, ReportingWork> implements ReportingWorkService {
+    @Autowired
+    private ReportingDamageMapper reportingDamageMapper;
+    @Autowired
+    private AwaitingRepairMapper awaitingRepairMapper;
+
+    @Override
+    public List<Reportingdamage> selectDamage(Reportingdamage reportingdamage) {
+        QueryWrapper<Reportingdamage> queryWrapper = new QueryWrapper<>();
+        queryWrapper.select("this_process,sum(completed_quantity) as completedQuantity,sum(breakage_quantity) as breakageQuantity ")
+                //.eq("this_process", reportingdamage.getThisProcess())
+                //.eq("device_name",reportingdamage.getDeviceName())
+                .ge("reporting_work_time", reportingdamage.getReportingWorkTime())
+                .groupBy("this_process");
+        return reportingDamageMapper.selectList(queryWrapper);
+    }
+
+    @Override
+    public List<AwaitingRepair> selectAwaitingRepair() {
+        QueryWrapper<AwaitingRepair> queryWrapper = new QueryWrapper<>();
+        queryWrapper.select("*");
+        return awaitingRepairMapper.selectList(queryWrapper);
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/entity/RawGlassStorageDetails.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/entity/RawGlassStorageDetails.java
new file mode 100644
index 0000000..62fe8b6
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/entity/RawGlassStorageDetails.java
@@ -0,0 +1,69 @@
+package com.mes.rawglassdetails.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author wf
+ * @since 2024-09-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class RawGlassStorageDetails implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * 璁惧id
+     */
+    private Integer deviceId;
+    /**
+     * 鏍煎瓙id
+     */
+    private Integer slot;
+    /**
+     * 鏋跺瓙淇℃伅
+     */
+    private Integer shelf;
+    /**
+     * 鍘熺墖瀹�
+     */
+    private Double patternWidth;
+    /**
+     * 鍘熺墖楂�
+     */
+    private Double patternHeight;
+    /**
+     * 鍘熺墖鍘氬害
+     */
+    private Double patternThickness;
+    /**
+     * 鑶滅郴
+     */
+    private String filmsId;
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+    /**
+     * 鍓╀綑鏁伴噺
+     */
+    private Integer remainQuantity;
+    /**
+     * 鐘舵��
+     */
+    private Integer state;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/entity/dto/RawGlassStorageDetailsDTO.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/entity/dto/RawGlassStorageDetailsDTO.java
new file mode 100644
index 0000000..cec2b0e
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/entity/dto/RawGlassStorageDetailsDTO.java
@@ -0,0 +1,52 @@
+package com.mes.rawglassdetails.entity.dto;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/9/20 16:31
+ * @Description:
+ */
+@Data
+public class RawGlassStorageDetailsDTO {
+
+    /**
+     * 鍘熺墖瀹�
+     */
+    private Double patternWidth;
+
+    /**
+     * 鍘熺墖楂�
+     */
+    private Double patternHeight;
+
+    /**
+     * 鍘熺墖鍘氬害
+     */
+    private Double patternThickness;
+
+    /**
+     * 鑶滅郴
+     */
+    private String filmsId;
+
+    /**
+     * 鎬诲師鐗囨暟
+     */
+    private Integer totalCount;
+
+    /**
+     * 绗煎唴鐗囨暟
+     */
+    private String count;
+
+    /**
+     * 涓婄墖鐗囨暟
+     */
+    private String finishCount;
+
+    /**
+     * 鐮存崯鐗囨暟
+     */
+    private String damageCount;
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/entity/request/RawGlassRequest.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/entity/request/RawGlassRequest.java
new file mode 100644
index 0000000..8dbef74
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/entity/request/RawGlassRequest.java
@@ -0,0 +1,46 @@
+package com.mes.rawglassdetails.entity.request;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/9/20 16:31
+ * @Description:
+ */
+@Data
+public class RawGlassRequest {
+
+    /**
+     * 鍘熺墖瀹�
+     */
+    private Double patternWidth;
+
+    /**
+     * 鍘熺墖楂�
+     */
+    private Double patternHeight;
+
+    /**
+     * 鍘熺墖鍘氬害
+     */
+    private Double patternThickness;
+
+    /**
+     * 鑶滅郴
+     */
+    private String filmsId;
+
+    /**
+     * 鍓╀綑鏁伴噺
+     */
+    private Integer remainQuantity;
+
+    /**
+     * 鏍呮牸鍙�
+     */
+    private Integer slot;
+    /**
+     * 璁惧id
+     */
+    private Integer deviceId;
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/mapper/RawGlassStorageDetailsMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/mapper/RawGlassStorageDetailsMapper.java
new file mode 100644
index 0000000..041becf
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/mapper/RawGlassStorageDetailsMapper.java
@@ -0,0 +1,30 @@
+package com.mes.rawglassdetails.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.mes.rawglassdetails.entity.dto.RawGlassStorageDetailsDTO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wf
+ * @since 2024-09-10
+ */
+public interface RawGlassStorageDetailsMapper extends BaseMapper<RawGlassStorageDetails> {
+
+    /**
+     * 鎸夌収鍚婅浣嶅拰璇︽儏琛ㄧ姸鎬佹煡璇㈢┖闂茬殑鍚婅浣�
+     *
+     * @param liftingStation
+     * @param state
+     * @return
+     */
+    List<RawGlassStorageDetails> listBySlotState(@Param("leftingStation") List<Integer> liftingStation, @Param("state") List<Integer> state);
+
+    List<RawGlassStorageDetailsDTO> patternUsage(@Param("width") String width, @Param("height") String height, @Param("thickness") String thickness, @Param("films") String films);
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java
new file mode 100644
index 0000000..9f83829
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java
@@ -0,0 +1,52 @@
+package com.mes.rawglassdetails.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.mes.rawglassdetails.entity.dto.RawGlassStorageDetailsDTO;
+import com.mes.rawglassdetails.entity.request.RawGlassRequest;
+
+import java.util.List;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+public interface RawGlassStorageDetailsService extends IService<RawGlassStorageDetails> {
+
+    List<RawGlassStorageDetails> selectDetails();
+
+    /**
+     * 鍒犻櫎琛�  鍏堝湪杩欓噷鍒�  鐒跺悗鐐归偅涓浉鍏抽棶棰�
+     *
+     * @return boolean
+     */
+    boolean deleteRawGlassStorageDetails(String device_id);
+
+    /**
+     * 鍘熺墖鍏ュ簱
+     *
+     * @param request
+     * @return
+     */
+    String patternWarehousing(RawGlassRequest request);
+
+    String updateQuantity(RawGlassRequest request);
+
+    String deleteWarehousing(Long slotId);
+
+    String outWarehousing(Long slotId);
+
+    List<RawGlassStorageDetails> listBySlotState(List<Integer> liftingStation, List<Integer> state);
+
+    String warehousingRequest(int leftingStation);
+
+    String outWarehousingRequest(int leftingStation);
+
+    boolean generateTask(int startSlot, int endSlot, int shelf, int patternQuantity, int taskType) throws Exception;
+
+    String shelfReset(Long slot);
+
+    List<RawGlassStorageDetailsDTO> patternUsage(String width, String height, String thickness, String films);
+
+    RawGlassStorageDetails generateDetails(RawGlassStorageDetails details, Integer targetSlot);
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
new file mode 100644
index 0000000..510c58f
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
@@ -0,0 +1,244 @@
+package com.mes.rawglassdetails.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kangaroohy.milo.model.ReadWriteEntity;
+import com.kangaroohy.milo.service.MiloService;
+import com.mes.common.config.Const;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.mes.rawglassdetails.entity.dto.RawGlassStorageDetailsDTO;
+import com.mes.rawglassdetails.entity.request.RawGlassRequest;
+import com.mes.rawglassdetails.mapper.RawGlassStorageDetailsMapper;
+import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
+import com.mes.rawglassstation.entity.RawGlassStorageStation;
+import com.mes.rawglassstation.service.RawGlassStorageStationService;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
+import com.mes.rawglasstask.service.RawGlassStorageTaskService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@Service
+@Slf4j
+public class RawGlassStorageDetailsServiceImpl extends ServiceImpl<RawGlassStorageDetailsMapper, RawGlassStorageDetails> implements RawGlassStorageDetailsService {
+
+    @Autowired
+    RawGlassStorageTaskService rawGlassStorageTaskService;
+
+    @Autowired
+    RawGlassStorageStationService rawGlassStorageStationService;
+
+    @Autowired(required = false)
+    MiloService miloService;
+
+    @Override
+    public boolean deleteRawGlassStorageDetails(String device_id) {
+        QueryWrapper<RawGlassStorageDetails> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("device_id", device_id);
+        return remove(queryWrapper);//remove鎵嶆槸鍒犻櫎锛宒elete寰楃敤鍙﹀鐨勪緷璧栵紝榛樿鏂规硶鏄痳emove杩斿洖bool
+    }
+
+    @Override
+    //杩斿洖绫诲瀷                    鏂规硶鍚�              浼犺緭鍊�
+    public List<RawGlassStorageDetails> selectDetails() {
+//        QueryWrapper<RawGlassStorageDetails>queryWrapper=new QueryWrapper<>();
+//         queryWrapper.eq("id",rs.getId());
+//        return list(queryWrapper);
+        return list();
+    }
+
+
+    @Override
+    public String warehousingRequest(int leftingStation) {
+        RawGlassStorageDetails storageDetails = getOne(new LambdaQueryWrapper<RawGlassStorageDetails>()
+                .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN_ALL)
+                .eq(RawGlassStorageDetails::getSlot, leftingStation));
+        if (null != storageDetails) {
+            log.info("褰撳墠鍚婅浣嶆湁鏋跺瓙锛岀粨鏉熸湰鍦板叆搴撹姹�");
+            return "fail";
+        }
+        List<RawGlassStorageDetails> shelfList = listBySlotState(Const.RAW_GLASS_DEVICE, Const.RAW_GLASS_STATE_IN_ALL);
+        if (CollectionUtils.isEmpty(shelfList)) {
+            log.info("褰撳墠宸ヤ綅涓嶅瓨鍦ㄥ彲鐢ㄧ殑绌烘灦瀛�");
+            return "fail";
+        }
+        Integer shelf = shelfList.get(0).getSlot();
+        Integer deviceId = shelfList.get(0).getDeviceId();
+        log.info("鐢熸垚浠诲姟");
+        try {
+            generateTask(shelf, leftingStation, shelf, 0, Const.RAW_GLASS_TASK_TYPE_IN_REQUEST);
+        } catch (Exception e) {
+            return "fail";
+        }
+        //鐢熸垚涓�鏉¤鎯呮暟鎹�  浠呰褰曟灦瀛愮姸鎬�
+        RawGlassStorageDetails details = new RawGlassStorageDetails();
+        details.setSlot(shelf);
+        details.setShelf(shelf);
+        details.setDeviceId(deviceId);
+        details.setState(Const.RAW_GLASS_STATE_RUNNING);
+        save(details);
+        return "success";
+    }
+
+    @Override
+    public String patternWarehousing(RawGlassRequest request) {
+        RawGlassStorageDetails glassStorageDetails = getOne(new LambdaQueryWrapper<RawGlassStorageDetails>()
+                .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+                .eq(RawGlassStorageDetails::getSlot, request.getSlot()));
+        if (null == glassStorageDetails) {
+            log.info("褰撳墠鍚婅浣嶆病鏈夋灦瀛�");
+        }
+        //鍘熺墖淇℃伅瀛樺叆璇︽儏琛�
+        BeanUtils.copyProperties(request, glassStorageDetails);
+        log.info("瑕嗙洊鍚庡緱鍒扮殑宸ヤ綅璇︽儏淇℃伅涓猴細{}", glassStorageDetails);
+        updateById(glassStorageDetails);
+        return "success";
+    }
+
+    @Override
+    public String updateQuantity(RawGlassRequest request) {
+        RawGlassStorageDetails one = getOne(new LambdaQueryWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getSlot, request.getSlot())
+                .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN));
+        if (null == one) {
+            RawGlassStorageDetails details = new RawGlassStorageDetails();
+            BeanUtils.copyProperties(request, details);
+            details.setState(Const.RAW_GLASS_STATE_IN);
+            details.setShelf(request.getSlot());
+            save(details);
+        } else {
+            update(
+                    new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                            .set(RawGlassStorageDetails::getRemainQuantity, request.getRemainQuantity())
+                            .set(RawGlassStorageDetails::getPatternWidth, request.getPatternWidth())
+                            .set(RawGlassStorageDetails::getPatternHeight, request.getPatternHeight())
+                            .set(RawGlassStorageDetails::getPatternThickness, request.getPatternThickness())
+                            .set(RawGlassStorageDetails::getFilmsId, request.getFilmsId())
+                            .eq(RawGlassStorageDetails::getSlot, request.getSlot())
+                            .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN));
+        }
+        return "success";
+    }
+
+    @Override
+    public String deleteWarehousing(Long slotId) {
+        remove(new LambdaUpdateWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getSlot, slotId)
+                .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN));
+        return "success";
+    }
+
+    @Override
+    public String outWarehousing(Long slotId) {
+        update(new LambdaUpdateWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getSlot, slotId)
+                .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+                .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_WAIT_OUT));
+        //鐢熸垚涓�鏉¤鎯呮暟鎹�  浠呰褰曟灦瀛愮姸鎬�
+        return "success";
+    }
+
+    @Override
+    public List<RawGlassStorageDetails> listBySlotState(List<Integer> liftingStation, List<Integer> state) {
+        return baseMapper.listBySlotState(liftingStation, state);
+    }
+
+
+    @Override
+    public String outWarehousingRequest(int leftingStation) {
+        //瀵瑰簲宸ヤ綅鏄惁鏈夌┖鏋跺瓙
+        RawGlassStorageDetails details = getOne(new LambdaQueryWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getState, Const.GLASS_STATE_IN)
+                .eq(RawGlassStorageDetails::getSlot, leftingStation));
+        if (null == details) {
+            log.info("鏃犵┖鏋跺瓙锛岀粨鏉熸湰鍦板嚭鐗囪姹�");
+            return "fail";
+        }
+        //鐢熸垚涓�鏉¤鎯呮暟鎹�  浠呰褰曟灦瀛愮姸鎬�
+        update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                .eq(RawGlassStorageDetails::getSlot, details.getSlot())
+                .eq(RawGlassStorageDetails::getState, Const.GLASS_STATE_IN)
+                .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
+        try {
+            generateTask(leftingStation, details.getShelf(), details.getShelf(), details.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_OUT_REQUEST);
+        } catch (Exception e) {
+            return "fail";
+        }
+        return "success";
+    }
+
+    /**
+     * 鐢熸垚鍘熺墖浠撳偍浠诲姟
+     *
+     * @param startSlot
+     * @param endSlot
+     * @param patternQuantity
+     * @param taskType
+     * @return
+     */
+    @Override
+    public boolean generateTask(int startSlot, int endSlot, int shelf, int patternQuantity, int taskType) throws Exception {
+        RawGlassStorageTask task = RawGlassStorageTask.builder()
+                .startSlot(startSlot)
+                .endSlot(endSlot)
+                .patternQuantity(patternQuantity)
+                .taskType(taskType)
+                .taskState(Const.RAW_GLASS_TASK_NEW)
+                .shelf(shelf)
+                .createTime(new Date()).build();
+        rawGlassStorageTaskService.save(task);
+        List<ReadWriteEntity> list = new ArrayList<>();
+        list.add(generateReadWriteEntity("CC.CC.taskWord", 1));
+        list.add(generateReadWriteEntity("CC.CC.startSlot", startSlot));
+        list.add(generateReadWriteEntity("CC.CC.endSlot", endSlot));
+        miloService.writeToOpcWord(list);
+        return Boolean.TRUE;
+    }
+
+    private ReadWriteEntity generateReadWriteEntity(String identifier, int value) {
+        ReadWriteEntity readWriteEntity = new ReadWriteEntity();
+        readWriteEntity.setIdentifier(identifier);
+        readWriteEntity.setValue(value);
+        return readWriteEntity;
+    }
+
+    @Override
+    public String shelfReset(Long slot) {
+        update(new LambdaUpdateWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getSlot, slot)
+                .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+                .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RESET));
+        //鐢熸垚涓�鏉¤鎯呮暟鎹�  浠呰褰曟灦瀛愮姸鎬�
+        return "success";
+    }
+
+    @Override
+    public List<RawGlassStorageDetailsDTO> patternUsage(String width, String height, String thickness, String films){
+        return baseMapper.patternUsage(width, height, thickness, films);
+    }
+
+    @Override
+    public RawGlassStorageDetails generateDetails(RawGlassStorageDetails details, Integer targetSlot) {
+        RawGlassStorageDetails targetDetails = new RawGlassStorageDetails();
+        RawGlassStorageStation station = rawGlassStorageStationService.getOne(new LambdaQueryWrapper<RawGlassStorageStation>()
+                .eq(RawGlassStorageStation::getSlot, targetSlot));
+        targetDetails.setDeviceId(station.getDeviceId());
+        targetDetails.setSlot(targetSlot);
+        targetDetails.setShelf(details.getShelf());
+        targetDetails.setPatternWidth(details.getPatternWidth());
+        targetDetails.setPatternHeight(details.getPatternHeight());
+        targetDetails.setPatternThickness(details.getPatternThickness());
+        targetDetails.setFilmsId(details.getFilmsId());
+        targetDetails.setRemainQuantity(details.getRemainQuantity());
+        targetDetails.setCreateTime(new Date());
+        targetDetails.setState(Const.RAW_GLASS_STATE_IN);
+        return targetDetails;
+    }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassstation/entity/RawGlassStorageStation.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassstation/entity/RawGlassStorageStation.java
new file mode 100644
index 0000000..035b7d6
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassstation/entity/RawGlassStorageStation.java
@@ -0,0 +1,40 @@
+package com.mes.rawglassstation.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * @author wf
+ * @since 2024-09-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class RawGlassStorageStation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * 璁惧id
+     */
+    private Integer deviceId;
+    /**
+     * 鏍呮牸鍙�
+     */
+    private Integer slot;
+    /**
+     * 鏍呮牸鍙�
+     */
+    private Integer shelf;
+    /**
+     * 鍚敤鏍囪
+     */
+    private Integer enableState;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassstation/mapper/RawGlassStorageStationMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassstation/mapper/RawGlassStorageStationMapper.java
new file mode 100644
index 0000000..030ca93
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassstation/mapper/RawGlassStorageStationMapper.java
@@ -0,0 +1,20 @@
+package com.mes.rawglassstation.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.mes.rawglassstation.entity.RawGlassStorageStation;
+
+import java.util.List;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wf
+ * @since 2024-09-10
+ */
+public interface RawGlassStorageStationMapper extends BaseMapper<RawGlassStorageStation> {
+
+    List<RawGlassStorageDetails> listRawGlassDetails();
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassstation/service/RawGlassStorageStationService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassstation/service/RawGlassStorageStationService.java
new file mode 100644
index 0000000..23fd93d
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassstation/service/RawGlassStorageStationService.java
@@ -0,0 +1,30 @@
+package com.mes.rawglassstation.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.mes.rawglassstation.entity.RawGlassStorageStation;
+
+import java.util.List;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+public interface RawGlassStorageStationService extends IService<RawGlassStorageStation> {
+    List<RawGlassStorageStation> selectStations();
+
+    boolean updateRawGlassStorageStation(String slot);
+
+    boolean deleteRawGlassStorageStation(String device_id);
+
+    boolean insertRawGlassStorageStation(RawGlassStorageStation rw);
+
+    /**
+     * 鑾峰彇宸ヤ綅鍙婂搴旂殑鍘熺墖淇℃伅
+     *
+     * @return
+     */
+    List<RawGlassStorageDetails> listRawGlassDetails();
+
+    boolean updateSlotState(Integer slot, Integer enableState);
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassstation/service/impl/RawGlassStorageStationServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassstation/service/impl/RawGlassStorageStationServiceImpl.java
new file mode 100644
index 0000000..7362cad
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassstation/service/impl/RawGlassStorageStationServiceImpl.java
@@ -0,0 +1,60 @@
+package com.mes.rawglassstation.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.mes.rawglassstation.entity.RawGlassStorageStation;
+import com.mes.rawglassstation.mapper.RawGlassStorageStationMapper;
+import com.mes.rawglassstation.service.RawGlassStorageStationService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@Service
+@Slf4j
+public class RawGlassStorageStationServiceImpl extends ServiceImpl<RawGlassStorageStationMapper, RawGlassStorageStation> implements RawGlassStorageStationService {
+    @Override
+    public List<RawGlassStorageStation> selectStations() {
+        return list();
+    }
+
+    @Override
+    public boolean updateRawGlassStorageStation(String slot) {
+        UpdateWrapper<RawGlassStorageStation> wrapper = new UpdateWrapper<>();  //杩欎釜绫诲瀷瀹氫箟閿欎簡锛屼笉搴旇鏄痶asking
+        wrapper.set("slot", "105")
+                .eq("slot", slot);
+        return update(wrapper);
+    }
+
+    @Override
+    public boolean deleteRawGlassStorageStation(String device_id) {
+        QueryWrapper<RawGlassStorageStation> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("device_id", device_id);
+        return remove(queryWrapper);
+    }
+
+    @Override
+    public boolean insertRawGlassStorageStation(RawGlassStorageStation rw) {
+        return this.save(rw);
+    }
+
+    @Override
+    public List<RawGlassStorageDetails> listRawGlassDetails() {
+        return baseMapper.listRawGlassDetails();
+    }
+
+    @Override
+    public boolean updateSlotState(Integer slot, Integer enableState) {
+        return update(
+                new LambdaUpdateWrapper<RawGlassStorageStation>()
+                        .set(RawGlassStorageStation::getEnableState, enableState)
+                        .eq(RawGlassStorageStation::getSlot, slot));
+    }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/entity/RawGlassStorageTask.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/entity/RawGlassStorageTask.java
new file mode 100644
index 0000000..fd2713d
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/entity/RawGlassStorageTask.java
@@ -0,0 +1,65 @@
+package com.mes.rawglasstask.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Builder;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author wf
+ * @since 2024-09-10
+ */
+@Data
+@Builder
+@EqualsAndHashCode(callSuper = false)
+public class RawGlassStorageTask implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+//    public Object getEndTime;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * 璧峰鏍煎瓙
+     */
+    private Integer startSlot;
+    /**
+     * 鐩爣鏍煎瓙
+     */
+    private Integer endSlot;
+    /**
+     * 鏋跺瓙鍙�
+     */
+    private Integer shelf;
+    /**
+     * 鍘熺墖鏁伴噺
+     */
+    private Integer patternQuantity;
+    /**
+     * 浠诲姟绫诲瀷
+     */
+    private Integer taskType;
+    /**
+     * 浠诲姟鐘舵��
+     */
+    private Integer taskState;
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date updateTime;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/entity/request/RawGlassTaskRequest.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/entity/request/RawGlassTaskRequest.java
new file mode 100644
index 0000000..11f229d
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/entity/request/RawGlassTaskRequest.java
@@ -0,0 +1,36 @@
+package com.mes.rawglasstask.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.mes.base.entity.PageRequest;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class RawGlassTaskRequest extends PageRequest {
+
+    /**
+     * 浠诲姟绫诲瀷   1 鍏ュ簱    2 鍑哄簱    3 璋冨害
+     */
+    private List<Integer> taskState;
+    /**
+     * 浠诲姟鐘舵��   1 鏂板缓  2 鎵ц涓�   3 瀹屾垚
+     */
+    private List<Integer> taskType;
+
+    /**
+     * 寮�濮嬫椂闂�
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date beginDate;
+
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endDate;
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/mapper/RawGlassStorageTaskMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/mapper/RawGlassStorageTaskMapper.java
new file mode 100644
index 0000000..6623ed3
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/mapper/RawGlassStorageTaskMapper.java
@@ -0,0 +1,16 @@
+package com.mes.rawglasstask.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wf
+ * @since 2024-09-10
+ */
+public interface RawGlassStorageTaskMapper extends BaseMapper<RawGlassStorageTask> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/mapper/xml/RawGlassStorageTaskMapper.xml b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/mapper/xml/RawGlassStorageTaskMapper.xml
new file mode 100644
index 0000000..db62395
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/mapper/xml/RawGlassStorageTaskMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.raw_glass_storage_task.mapper.RawGlassStorageTaskMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/RawGlassStorageTaskService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/RawGlassStorageTaskService.java
new file mode 100644
index 0000000..a7930a6
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/RawGlassStorageTaskService.java
@@ -0,0 +1,37 @@
+package com.mes.rawglasstask.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
+import com.mes.rawglasstask.entity.request.RawGlassTaskRequest;
+
+import java.util.List;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+public interface RawGlassStorageTaskService extends IService<RawGlassStorageTask> {
+
+    /**
+     * 鏌ヨ鍘熺墖浠撳偍浠诲姟璇︽儏
+     *
+     * @return
+     */
+    List<RawGlassStorageTask> listRawGlassTask();
+
+    /**
+     * 璁剧疆鍘熺墖浠撳偍鏌ヨ鏉′欢
+     *
+     * @param request
+     * @return
+     */
+    String setRawGlassTaskRequest(RawGlassTaskRequest request);
+
+    Boolean taskSuccess(Long taskId);
+
+    Boolean taskError(Long taskId);
+
+    Page<RawGlassStorageTask> queryRawGlassHistoryTask(RawGlassTaskRequest request);
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java
new file mode 100644
index 0000000..6ee1204
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java
@@ -0,0 +1,155 @@
+package com.mes.rawglasstask.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.common.config.Const;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
+import com.mes.rawglassstation.entity.RawGlassStorageStation;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
+import com.mes.rawglasstask.entity.request.RawGlassTaskRequest;
+import com.mes.rawglasstask.mapper.RawGlassStorageTaskMapper;
+import com.mes.rawglasstask.service.RawGlassStorageTaskService;
+import com.mes.tools.DateUtil;
+import com.mes.utils.RedisUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@Service
+@Slf4j
+public class RawGlassRawGlassStorageTaskServiceImpl extends ServiceImpl<RawGlassStorageTaskMapper, RawGlassStorageTask> implements RawGlassStorageTaskService {
+
+    @Autowired
+    RedisUtil redisUtil;
+
+    @Resource
+    RawGlassStorageDetailsService rawGlassStorageDetailsService;
+
+    @Override
+    public Page<RawGlassStorageTask> queryRawGlassHistoryTask(RawGlassTaskRequest request) {
+        if (request.getBeginDate() == null) {
+            //璁剧疆榛樿鏃堕棿    startDate锛氬紑濮嬫椂闂�   endDate锛氱粨鏉熸椂闂�
+            request.setBeginDate(DateUtil.getBeginDate());
+            request.setEndDate(DateUtil.getEndDate());
+        }
+        Page<RawGlassStorageTask> page = new Page<>(request.getPageNo(), request.getPageSize());
+        return page(page, new LambdaQueryWrapper<RawGlassStorageTask>()
+                .between(RawGlassStorageTask::getCreateTime, request.getBeginDate(), request.getEndDate())
+                .in(CollectionUtil.isNotEmpty(request.getTaskState()), RawGlassStorageTask::getTaskState, request.getTaskState())
+                .in(CollectionUtil.isNotEmpty(request.getTaskType()), RawGlassStorageTask::getTaskType, request.getTaskType())
+                .orderByDesc(RawGlassStorageTask::getCreateTime));
+    }
+
+    @Override
+    public List<RawGlassStorageTask> listRawGlassTask() {
+        RawGlassTaskRequest request = redisUtil.getCacheObject("rawGlassTaskRequest");
+        if (null == request) {
+            request = new RawGlassTaskRequest();
+        }
+        if (request.getBeginDate() == null) {
+            //璁剧疆榛樿鏃堕棿    startDate锛氬紑濮嬫椂闂�   endDate锛氱粨鏉熸椂闂�
+            request.setBeginDate(DateUtil.getBeginDate());
+            request.setEndDate(DateUtil.getEndDate());
+        }
+        return list(new LambdaQueryWrapper<RawGlassStorageTask>()
+                .between(RawGlassStorageTask::getCreateTime, request.getBeginDate(), request.getEndDate())
+                .in(CollectionUtil.isNotEmpty(request.getTaskState()), RawGlassStorageTask::getTaskState, request.getTaskState())
+                .in(CollectionUtil.isNotEmpty(request.getTaskType()), RawGlassStorageTask::getTaskType, request.getTaskType())
+                .orderByDesc(RawGlassStorageTask::getCreateTime));
+
+    }
+
+    @Override
+    public String setRawGlassTaskRequest(RawGlassTaskRequest request) {
+        if (request == null) {
+            redisUtil.deleteObject("rawGlassTaskRequest");
+        } else {
+            redisUtil.setCacheObject("rawGlassTaskRequest", request);
+        }
+        log.info("鍓嶇浼犲叆鍙傛暟锛歿}", request);
+        return "success";
+    }
+
+    @Override
+    public Boolean taskSuccess(Long taskId) {
+        //鑾峰彇浠诲姟姝e湪鎵ц鐨勪换鍔′俊鎭�
+        RawGlassStorageTask task = this.getById(taskId);
+        //鍘昏鎯呰〃鑾峰彇姝e湪鎵ц鐨勫師鐗囪鎯呬俊鎭�
+        RawGlassStorageDetails details = rawGlassStorageDetailsService.getOne(new LambdaQueryWrapper<RawGlassStorageDetails>()
+                .ne(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT).eq(RawGlassStorageDetails::getSlot, task.getStartSlot())
+        );
+        if(details!=null){
+            RawGlassStorageDetails targetDetails = rawGlassStorageDetailsService.generateDetails(details, task.getEndSlot());
+            int deviceId = details.getDeviceId();
+            Integer taskType = task.getTaskType();
+            log.info("灏嗚鎯呰〃鐨勭姸鎬佹敼涓哄凡鍑哄簱");
+            rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                    .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT)
+                    .ne(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT)
+                    .eq(RawGlassStorageDetails::getSlot, task.getStartSlot()));
+            log.info("浠诲姟鐘舵�佸凡鏇存敼涓猴細宸插畬鎴�");
+            this.update(new LambdaUpdateWrapper<RawGlassStorageTask>()
+                    .eq(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                    .set(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_SUCCESS));
+            switch (taskType) {
+                case 1:
+                case 3:
+                    log.info("1銆佸叆搴擄紝3銆佽皟搴︿换鍔°�倇}", taskType);
+                    if (details.getRemainQuantity() > 0) {
+                        rawGlassStorageDetailsService.save(targetDetails);
+                    }
+                    break;
+                case 2:
+                case 4:
+                    log.info("2銆佸嚭鐗�,4銆佸叆搴撹姹傘�倇}", taskType);
+                    targetDetails = new RawGlassStorageDetails();
+                    targetDetails.setSlot(task.getEndSlot());
+                    targetDetails.setDeviceId(deviceId);
+                    targetDetails.setShelf(task.getStartSlot());
+                    targetDetails.setState(Const.RAW_GLASS_STATE_IN);
+                    rawGlassStorageDetailsService.save(targetDetails);
+                    break;
+                default:
+                    break;
+            }
+        }
+        return Boolean.TRUE;
+    }
+
+
+    @Override
+    public Boolean taskError(Long taskId) {
+        //鑾峰彇浠诲姟姝e湪鎵ц鐨勪换鍔′俊鎭�
+        RawGlassStorageTask task = this.getById(taskId);
+        Integer taskType = task.getTaskType();
+        if (taskType.equals(Const.RAW_GLASS_TASK_TYPE_IN_REQUEST)) {
+            rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                    .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT)
+                    .eq(RawGlassStorageDetails::getSlot, task.getStartSlot())
+                    .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING, Const.RAW_GLASS_STATE_CAR));
+        } else {
+            rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                    .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+                    .eq(RawGlassStorageDetails::getSlot, task.getStartSlot())
+                    .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING, Const.RAW_GLASS_STATE_CAR));
+        }
+        this.update(new LambdaUpdateWrapper<RawGlassStorageTask>()
+                .eq(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                .set(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_FAILURE));
+        return Boolean.TRUE;
+    }
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/controller/SysConfigController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/controller/SysConfigController.java
new file mode 100644
index 0000000..de75cd1
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/controller/SysConfigController.java
@@ -0,0 +1,61 @@
+package com.mes.sysconfig.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.mes.sysconfig.entity.SysConfig;
+import com.mes.sysconfig.entity.request.SysConfigRequest;
+import com.mes.sysconfig.service.SysConfigService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * (SysConfig)琛ㄦ帶鍒跺眰
+ *
+ * @author makejava
+ * @since 2025-04-01 15:01:15
+ */
+@Api(tags = "绯荤粺閰嶇疆")
+@RestController
+@RequestMapping("/sys/sysConfig")
+public class SysConfigController {
+    /**
+     * 鏈嶅姟瀵硅薄
+     */
+    @Resource
+    private SysConfigService sysConfigService;
+
+    @ApiOperation("鍒嗛〉鏌ヨ鎵�鏈夋暟鎹�")
+    @PostMapping("/queryConfigPage")
+    public Result<Page<SysConfig>> queryConfigPage(@RequestBody SysConfigRequest request) {
+        return Result.success(sysConfigService.queryConfigPage(request));
+    }
+
+    @ApiOperation("绯荤粺閰嶇疆鏌ヨ閫氳繃id")
+    @GetMapping("/queryConfigById")
+    public Result<SysConfig> queryConfigById(Long id) {
+        return Result.success(sysConfigService.queryConfigById(id));
+    }
+
+    @ApiOperation("淇濆瓨绯荤粺閰嶇疆")
+    @PostMapping("/saveConfig")
+    public Result<SysConfig> saveConfig(@RequestBody SysConfig request) {
+        return Result.success(sysConfigService.saveConfig(request));
+    }
+
+    @ApiOperation("淇敼绯荤粺閰嶇疆")
+    @PostMapping("/updateConfig")
+    public Result<SysConfig> updateConfig(@RequestBody SysConfig request) {
+        return Result.success(sysConfigService.updateConfig(request));
+    }
+
+    @ApiOperation("鍒犻櫎绯荤粺閰嶇疆")
+    @GetMapping("/deleteConfig")
+    public Result<Boolean> deleteConfig(Long id) {
+        return Result.success(sysConfigService.deleteConfig(id));
+    }
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/entity/SysConfig.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/entity/SysConfig.java
new file mode 100644
index 0000000..f39bbeb
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/entity/SysConfig.java
@@ -0,0 +1,61 @@
+package com.mes.sysconfig.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * (SysConfig)琛ㄥ疄浣撶被
+ *
+ * @author makejava
+ * @since 2025-04-01 15:01:22
+ */
+@ApiModel(description = "(SysConfig)琛ㄥ疄浣撶被")
+@Data
+public class SysConfig {
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * 鐖堕厤缃甶d(寮冪敤)
+     */
+    @ApiModelProperty(value = "鐖堕厤缃甶d(寮冪敤)", position = 2)
+    private Long parentId;
+    /**
+     * 閰嶇疆鍚�
+     */
+    @ApiModelProperty(value = "閰嶇疆鍚�", position = 3)
+    private String configName;
+    /**
+     * 閰嶇疆浠g爜
+     */
+    @ApiModelProperty(value = "閰嶇疆浠g爜", position = 4)
+    private String configCode;
+    /**
+     * 閰嶇疆鍊�
+     */
+    @ApiModelProperty(value = "閰嶇疆鍊�", position = 5)
+    private String configValue;
+    /**
+     * 鏄惁鍚敤
+     */
+    @ApiModelProperty(value = "鏄惁鍚敤", position = 6)
+    private Integer isEnable;
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿", position = 7)
+    private Date createTime;
+    /**
+     * 鏇存柊鏃堕棿
+     */
+    @ApiModelProperty(value = "鏇存柊鏃堕棿", position = 8)
+    private Date updateTime;
+
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/entity/request/SysConfigRequest.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/entity/request/SysConfigRequest.java
new file mode 100644
index 0000000..48f31b6
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/entity/request/SysConfigRequest.java
@@ -0,0 +1,42 @@
+package com.mes.sysconfig.entity.request;
+
+import com.mes.base.entity.PageRequest;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/4/1 15:09
+ * @Description:
+ */
+@ApiModel(description = ":")
+@Data
+public class SysConfigRequest extends PageRequest {
+
+    private Integer id;
+    /**
+     * 鐖堕厤缃甶d(寮冪敤)
+     */
+    private Integer parentId;
+    /**
+     * 閰嶇疆鍚�
+     */
+    @ApiModelProperty(value = "閰嶇疆鍚�", position = 3)
+    private String configName;
+    /**
+     * 閰嶇疆浠g爜
+     */
+    @ApiModelProperty(value = "閰嶇疆浠g爜", position = 4)
+    private String configCode;
+    /**
+     * 閰嶇疆鍊�
+     */
+    @ApiModelProperty(value = "閰嶇疆鍊�", position = 5)
+    private String configValue;
+    /**
+     * 鏄惁鍚敤
+     */
+    @ApiModelProperty(value = "鏄惁鍚敤", position = 6)
+    private Integer isEnable;
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/mapper/SysConfigMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/mapper/SysConfigMapper.java
new file mode 100644
index 0000000..004d24b
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/mapper/SysConfigMapper.java
@@ -0,0 +1,15 @@
+package com.mes.sysconfig.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.sysconfig.entity.SysConfig;
+
+/**
+ * (SysConfig)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author makejava
+ * @since 2025-04-01 15:01:18
+ */
+public interface SysConfigMapper extends BaseMapper<SysConfig> {
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/service/SysConfigService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/service/SysConfigService.java
new file mode 100644
index 0000000..45fb8a6
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/service/SysConfigService.java
@@ -0,0 +1,31 @@
+package com.mes.sysconfig.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.sysconfig.entity.SysConfig;
+import com.mes.sysconfig.entity.request.SysConfigRequest;
+
+import java.io.Serializable;
+
+/**
+ * (SysConfig)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author makejava
+ * @since 2025-04-01 15:01:26
+ */
+public interface SysConfigService extends IService<SysConfig> {
+
+    Page<SysConfig> queryConfigPage(SysConfigRequest request);
+
+    SysConfig queryConfigById(Serializable id);
+
+    SysConfig saveConfig(SysConfig request);
+
+    SysConfig updateConfig(SysConfig request);
+
+    Boolean deleteConfig(Serializable id);
+
+    Integer queryConfigValue(Serializable id);
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/service/impl/SysConfigServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/service/impl/SysConfigServiceImpl.java
new file mode 100644
index 0000000..db1525c
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysconfig/service/impl/SysConfigServiceImpl.java
@@ -0,0 +1,77 @@
+package com.mes.sysconfig.service.impl;
+
+import cn.smallbun.screw.core.util.StringUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.sysconfig.entity.SysConfig;
+import com.mes.sysconfig.entity.request.SysConfigRequest;
+import com.mes.sysconfig.mapper.SysConfigMapper;
+import com.mes.sysconfig.service.SysConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.cache.annotation.CacheEvict;
+import org.springframework.cache.annotation.CachePut;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Service;
+
+import java.io.Serializable;
+
+/**
+ * (SysConfig)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author makejava
+ * @since 2025-04-01 15:01:27
+ */
+@Service
+@Slf4j
+public class SysConfigServiceImpl extends ServiceImpl<SysConfigMapper, SysConfig> implements SysConfigService {
+
+    @Override
+    public Page<SysConfig> queryConfigPage(SysConfigRequest request) {
+        Page<SysConfig> page = new Page<>(request.getPageNo(), request.getPageSize());
+        LambdaQueryWrapper<SysConfig> wrapper = new LambdaQueryWrapper<SysConfig>()
+                .like(StringUtils.isNotBlank(request.getConfigName()), SysConfig::getConfigName, request.getConfigName())
+                .like(StringUtils.isNotBlank(request.getConfigCode()), SysConfig::getConfigCode, request.getConfigCode())
+                .like(StringUtils.isNotBlank(request.getConfigValue()), SysConfig::getConfigValue, request.getConfigValue())
+                .eq(request.getIsEnable() != -1, SysConfig::getIsEnable, request.getIsEnable())
+                .orderByAsc(SysConfig::getId);
+        return this.page(page, wrapper);
+    }
+
+    @Override
+    @Cacheable(value = "sysConfig", key = "#id")
+    public SysConfig queryConfigById(Serializable id) {
+        return this.getById(id);
+    }
+
+    @Override
+    @CachePut(value = "sysConfig", key = "#request.id")
+    public SysConfig saveConfig(SysConfig request) {
+        this.save(request);
+        return request;
+    }
+
+    @Override
+    @CachePut(value = "sysConfig", key = "#request.id")
+    public SysConfig updateConfig(SysConfig request) {
+        this.updateById(request);
+        return request;
+    }
+
+    @Override
+    @CacheEvict(value = "sysConfig", key = "#id")
+    public Boolean deleteConfig(Serializable id) {
+        return this.removeById(id);
+    }
+
+    @Override
+    public Integer queryConfigValue(Serializable id) {
+        SysConfig sysConfig = this.queryConfigById(id);
+        if (sysConfig == null) {
+            log.info("绯荤粺閰嶇疆鏌ヨ涓虹┖锛岃妫�鏌ヨ閰嶇疆鏄惁瀛樺湪锛歿}", id);
+            return null;
+        }
+        return Integer.parseInt(sysConfig.getConfigValue());
+    }
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/entity/SysDictData.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/entity/SysDictData.java
new file mode 100644
index 0000000..3820907
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/entity/SysDictData.java
@@ -0,0 +1,48 @@
+package com.mes.sysdict.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author wu
+ * @since 2024-09-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SysDictData implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "dict_id", type = IdType.AUTO)
+    private Long dictId;
+
+    private Integer dictSort;
+
+    private String dictLabel;
+
+    private String dictValue;
+
+    private String dictType;
+
+    private String dictTypeValue;
+
+    private String state;
+
+    private String description;
+
+    private Date createTime;
+
+    @TableLogic
+    private String deleted;
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/entity/SysDictType.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/entity/SysDictType.java
new file mode 100644
index 0000000..43daa00
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/entity/SysDictType.java
@@ -0,0 +1,43 @@
+package com.mes.sysdict.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author wu
+ * @since 2024-09-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SysDictType implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "dict_id", type = IdType.AUTO)
+    private Long dictId;
+
+    private String dictName;
+
+    private String dictType;
+
+    private String state;
+
+    private String description;
+
+    private LocalDateTime createTime;
+
+    @TableLogic
+    private String deleted;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/mapper/SysDictDataMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/mapper/SysDictDataMapper.java
new file mode 100644
index 0000000..a011425
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/mapper/SysDictDataMapper.java
@@ -0,0 +1,16 @@
+package com.mes.sysdict.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.sysdict.entity.SysDictData;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-09-05
+ */
+public interface SysDictDataMapper extends BaseMapper<SysDictData> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/mapper/SysDictTypeMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/mapper/SysDictTypeMapper.java
new file mode 100644
index 0000000..3511141
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/mapper/SysDictTypeMapper.java
@@ -0,0 +1,16 @@
+package com.mes.sysdict.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.sysdict.entity.SysDictType;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-09-05
+ */
+public interface SysDictTypeMapper extends BaseMapper<SysDictType> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/service/SysDictDataService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/service/SysDictDataService.java
new file mode 100644
index 0000000..6666218
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/service/SysDictDataService.java
@@ -0,0 +1,16 @@
+package com.mes.sysdict.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.mes.sysdict.entity.SysDictData;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-09-05
+ */
+public interface SysDictDataService extends MPJBaseService<SysDictData> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/service/SysDictTypeService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/service/SysDictTypeService.java
new file mode 100644
index 0000000..5280402
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/service/SysDictTypeService.java
@@ -0,0 +1,16 @@
+package com.mes.sysdict.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.sysdict.entity.SysDictType;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-09-05
+ */
+public interface SysDictTypeService extends IService<SysDictType> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/service/impl/SysDictDataServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/service/impl/SysDictDataServiceImpl.java
new file mode 100644
index 0000000..126574e
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/service/impl/SysDictDataServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.sysdict.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.sysdict.entity.SysDictData;
+import com.mes.sysdict.mapper.SysDictDataMapper;
+import com.mes.sysdict.service.SysDictDataService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-09-05
+ */
+@Service
+public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDictData> implements SysDictDataService {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/service/impl/SysDictTypeServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/service/impl/SysDictTypeServiceImpl.java
new file mode 100644
index 0000000..519e1ad
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/sysdict/service/impl/SysDictTypeServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.sysdict.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.sysdict.entity.SysDictType;
+import com.mes.sysdict.mapper.SysDictTypeMapper;
+import com.mes.sysdict.service.SysDictTypeService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-09-05
+ */
+@Service
+public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDictType> implements SysDictTypeService {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
new file mode 100644
index 0000000..4b22d1a
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
@@ -0,0 +1,80 @@
+package com.mes.temperingglass.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.mes.base.entity.BigStorageCageBaseInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@ApiModel(description = "<p> 閽㈠寲灏忕墖淇℃伅琛� </p>")
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class TemperingGlassInfo extends BigStorageCageBaseInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 閽㈠寲灏忕墖淇℃伅琛╥d
+     */
+    @ApiModelProperty(value = "閽㈠寲灏忕墖淇℃伅琛╥d", position = 2)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 娴佺▼鍗�
+     */
+    @ApiModelProperty(value = "娴佺▼鍗�", position = 4)
+    private String flowCardId;
+
+    /**
+     * 娴佺▼鍗$幓鐠冪被鍨�
+     */
+    @ApiModelProperty(value = "娴佺▼鍗$幓鐠冪被鍨�", position = 5)
+    private Integer glassType;
+
+    /**
+     * 閽㈠寲鏄惁鎺ュ彈妯斁
+     */
+    @ApiModelProperty(value = "閽㈠寲鏄惁鎺ュ彈妯斁", position = 10)
+    private Integer ishorizontal;
+
+    /**
+     * 鏃嬭浆瑙掑害锛堥�嗘椂閽堬級
+     */
+    @ApiModelProperty(value = "鏃嬭浆瑙掑害锛堥�嗘椂閽堬級", position = 15)
+    private Integer angle;
+    /**
+     * x鍧愭爣
+     */
+    @ApiModelProperty(value = "x鍧愭爣", position = 13)
+    private Integer xCoordinate;
+
+    /**
+     * y鍧愭爣
+     */
+    @ApiModelProperty(value = "y鍧愭爣", position = 14)
+    private Integer yCoordinate;
+
+    /**
+     * 鐘舵��
+     */
+    @ApiModelProperty(value = "鐘舵��", position = 16)
+    private Integer state;
+
+
+    @TableLogic
+    private int deleted;
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java
new file mode 100644
index 0000000..aec9520
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java
@@ -0,0 +1,47 @@
+package com.mes.temperingglass.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.largenscreen.entity.PieChartVO;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@DS("salve_northGlassMes")
+public interface TemperingGlassInfoMapper extends MPJBaseMapper<TemperingGlassInfo> {
+
+    boolean saveBatch(@Param(value = "list") List<TemperingGlassInfo> list);
+    //缁曡繃鍏ㄥ眬閫昏緫杩涜鏌ヨ
+    @Select("SELECT * FROM tempering_glass_info " + "WHERE tempering_layout_id = #{temperingLayoutId} " + "AND engineer_id = #{engineerId} " + "ORDER BY tempering_layout_id DESC, tempering_feed_sequence ASC")
+    List<TemperingGlassInfo> selectByEngineerIdAndLayoutId(String engineerId, Integer temperingLayoutId);
+    //缁曡繃鍏ㄥ眬閫昏緫杩涜淇敼
+    @Update("UPDATE tempering_glass_info " +
+            "SET state = #{state}, " +
+            "deleted = CASE WHEN #{state} < 8 THEN 0 ELSE deleted END " +
+            "WHERE glass_id = #{glassId}")
+    Integer updateTemperingGlassInfo(TemperingGlassInfo temperingGlassInfo);
+
+    @Select("SELECT\n" +
+            "\tround( SUM ( CASE WHEN state <> - 1 AND state <> 8 THEN 1 ELSE 0 END ), 2 ) AS oneCompletedQuantity,\n" +
+            "\tround( SUM ( CASE WHEN state <> - 1 AND state <> 8 THEN CAST ( width AS FLOAT ) * height / 1000000 ELSE 0 END ), 2 ) AS oneCompletedArea,\n" +
+            "\tround( SUM ( CASE WHEN state = 8 THEN 1 ELSE 0 END ), 2 ) AS oneDamageQuantity,\n" +
+            "\tround( SUM ( CASE WHEN state = 8 THEN CAST ( width AS FLOAT ) * height / 1000000 ELSE 0 END ), 2 ) AS oneDamageArea,\n" +
+            "\tround( SUM ( CASE WHEN state = - 1 THEN 1 ELSE 0 END ), 2 ) AS oneUncompletedQuantity,\n" +
+            "\tround(SUM ( CASE WHEN state = - 1 THEN CAST ( width AS FLOAT ) * height / 1000000 ELSE 0 END ), 2 ) AS oneUncompletedArea \n" +
+            "FROM\n" +
+            "\ttempering_glass_info \n" +
+            "WHERE\n" +
+            "\tCONVERT ( DATE, create_time ) = CONVERT ( DATE, getdate( ) )")
+    List<PieChartVO> queryPieChart();
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java
new file mode 100644
index 0000000..a964b6d
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java
@@ -0,0 +1,82 @@
+package com.mes.temperingglass.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.entity.LoadGlassInfo;
+import com.mes.largenscreen.entity.PieChartVO;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface TemperingGlassInfoService extends MPJBaseService<TemperingGlassInfo> {
+    /**
+     * 绛夊緟涓殑鐜荤拑
+     *
+     * @return
+     */
+    List<TemperingGlassInfo> selectWaitingGlassByOpc();
+
+    /**
+     * 绛夊緟涓殑鐜荤拑
+     *
+     * @return
+     */
+    List<TemperingGlassInfo> selectWaitingGlass();
+
+    /**
+     * 杩涚倝涓殑鐜荤拑
+     *
+     * @return
+     */
+    List<TemperingGlassInfo> selectIntoGlass(TemperingGlassInfo temperingGlassInfo);
+
+    /**
+     * 鍑虹倝涓殑鐜荤拑
+     *
+     * @return
+     */
+    List<TemperingGlassInfo> selectOutGlass();
+    /**
+     * 閽㈠寲鍚庣殑鐜荤拑
+     * @return
+     */
+    List<TemperingGlassInfo> selectOverGlass();
+    /**
+     * 鏌ヨ閽㈠寲鍚庣殑鐗堝浘id
+     * @return
+     */
+    List<TemperingGlassInfo> selectLayoutId();
+    /**
+     * 鏌ヨ閽㈠寲鐘舵��
+     * @return
+     */
+    List<TemperingGlassInfo> selectTaskType();
+    /**
+     * 閽㈠寲妯″潡鐮存崯
+     * @return
+     */
+    Integer updateTemperingState(TemperingGlassInfo temperingGlassInfo);
+    /**
+     * 鏍规嵁鐐夊彿鏌ラ挗鍖栫増鍥剧幓鐠冧俊鎭�
+     * @return
+     */
+    List<TemperingGlassInfo> selectGlassInfoById(Integer id);
+
+    GlassInfo selectTempering(GlassInfo glassInfo);
+
+    List<LoadGlassInfo> selectTemperingGlass(GlassInfo glassInfo);
+
+    /**
+     * 鑾峰彇閽㈠寲楗煎浘淇℃伅
+     * @return
+     */
+    List<PieChartVO> queryPieChart();
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
new file mode 100644
index 0000000..e3408e9
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
@@ -0,0 +1,210 @@
+package com.mes.temperingglass.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.query.MPJQueryWrapper;
+import com.kangaroohy.milo.model.ReadWriteEntity;
+import com.kangaroohy.milo.service.MiloService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.entity.LoadGlassInfo;
+import com.mes.glassinfo.mapper.GlassInfoMapper;
+import com.mes.largenscreen.entity.PieChartVO;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Service
+@DS("north_glass_mes")
+@Slf4j
+public class TemperingGlassInfoServiceImpl extends MPJBaseServiceImpl<TemperingGlassInfoMapper, TemperingGlassInfo> implements TemperingGlassInfoService {
+    @Resource
+    TemperingGlassInfoMapper temperingMapper;
+
+    @Resource
+    private GlassInfoMapper glassInfoMapper;
+
+    @Autowired(required = false)
+    MiloService miloService;
+
+    @Override
+    public List<TemperingGlassInfo> selectWaitingGlassByOpc() {
+        //鑾峰彇绛夊緟杩涚倝涓殑鐜荤拑淇℃伅
+        try {
+            ReadWriteEntity engineerEntity = miloService.readFromOpcUa("GH2S7.GH2S7.F09_ENGINEER_ID");
+            ReadWriteEntity temperingLayoutIdEntity = miloService.readFromOpcUa("GH2S7.GH2S7.F09_TEMPERING_LAYOUT_ID");
+
+            if (null == engineerEntity || null == temperingLayoutIdEntity) {
+                engineerEntity = miloService.readFromOpcUa("GH2S7.GH2S7.F08_ENGINEER_ID");
+                temperingLayoutIdEntity = miloService.readFromOpcUa("GH2S7.GH2S7.F08_TEMPERING_LAYOUT_ID");
+                if (null == engineerEntity || null == temperingLayoutIdEntity) {
+                    log.info("鑾峰彇鍙傛暟寮傚父锛岀粨鏉熸湰娆′换鍔�");
+                    return new ArrayList<>();
+                }
+            }
+            return this.list(new LambdaQueryWrapper<TemperingGlassInfo>()
+                    .eq(TemperingGlassInfo::getEngineerId, engineerEntity.getValue() + "")
+                    .eq(TemperingGlassInfo::getTemperingLayoutId, temperingLayoutIdEntity.getValue() + ""));
+        } catch (Exception e) {
+            log.info("鑾峰彇閽㈠寲鍙傛暟寮傚父锛歿}", e);
+            return new ArrayList<>();
+        }
+    }
+
+    @Override
+    public List<TemperingGlassInfo> selectWaitingGlass() {
+        //鑾峰彇绛夊緟杩涚倝涓殑鐜荤拑淇℃伅
+        QueryWrapper<TemperingGlassInfo> wrapper = new QueryWrapper<>();
+        wrapper.select("Top 1 *").in("state", 1, 0).orderByDesc("id");
+
+        TemperingGlassInfo glass = temperingMapper.selectOne(wrapper);
+        if (glass != null) {
+            this.update(new LambdaUpdateWrapper<TemperingGlassInfo>().set(TemperingGlassInfo::getState, 2).in(TemperingGlassInfo::getState, 0, 1)
+                    .and(e -> e.ne(TemperingGlassInfo::getEngineerId, glass.getEngineerId())
+                            .or(e1 -> e1.eq(TemperingGlassInfo::getEngineerId, glass.getEngineerId())
+                                    .ne(TemperingGlassInfo::getTemperingLayoutId, glass.getTemperingLayoutId()))));
+            QueryWrapper<TemperingGlassInfo> glassinfo = new QueryWrapper<>();
+            glassinfo.eq("engineer_id", glass.getEngineerId())
+                    .eq("tempering_layout_id", glass.getTemperingLayoutId());
+            //return temperingMapper.selectList(glassinfo);
+            return temperingMapper.selectByEngineerIdAndLayoutId(glass.getEngineerId(), glass.getTemperingLayoutId());
+        } else {
+            return null;
+        }
+    }
+
+    @Override
+    public List<TemperingGlassInfo> selectIntoGlass(TemperingGlassInfo temperingGlassInfo) {
+        //鑾峰彇杩涚倝涓殑鐜荤拑淇℃伅
+//        QueryWrapper<TemperingGlassInfo> wrapper = new QueryWrapper<>();
+//        wrapper.eq("tempering_layout_id", temperingGlassInfo.getTemperingLayoutId())
+//                .eq("engineer_id", temperingGlassInfo.getEngineerId())
+//                .orderByAsc("tempering_layout_id","tempering_feed_sequence");
+//        return temperingMapper.selectList(wrapper);
+        return temperingMapper.selectByEngineerIdAndLayoutId(temperingGlassInfo.getEngineerId(), temperingGlassInfo.getTemperingLayoutId());
+
+    }
+
+    @Override
+    public List<TemperingGlassInfo> selectOutGlass() {
+        //鑾峰彇鍑虹倝涓殑鐜荤拑淇℃伅
+        QueryWrapper<TemperingGlassInfo> wrap = new QueryWrapper<>();
+        wrap.select("Top 1 *").eq("state", 4)
+                .orderByDesc("id");
+        TemperingGlassInfo glass = temperingMapper.selectOne(wrap);
+        //鏍规嵁宸ョ▼鍙峰拰鐗堝浘鑾峰彇鏁版嵁
+        if (glass != null) {
+            return temperingMapper.selectByEngineerIdAndLayoutId(glass.getEngineerId(), glass.getTemperingLayoutId());
+        }
+        return null;
+    }
+
+    @Override
+    public List<TemperingGlassInfo> selectOverGlass() {
+        //鑾峰彇杩囨棆杞彴鏈�澶х殑閽㈠寲鐗堝浘id
+        QueryWrapper<TemperingGlassInfo> wapper = new QueryWrapper<>();
+        wapper.select("Top 1 *").eq("state", 4)
+                .orderByDesc("id");
+        //鏍规嵁鏈�澶х殑鐗堝浘id鏄剧ず閽㈠寲鍚庣殑鐗堝浘淇℃伅
+        TemperingGlassInfo glassinfo = temperingMapper.selectOne(wapper);
+        if (glassinfo == null) {
+            return null;  // 鐩存帴杩斿洖null锛岃〃绀烘病鏈夋壘鍒扮鍚堟潯浠剁殑璁板綍
+        }
+        return temperingMapper.selectByEngineerIdAndLayoutId(glassinfo.getEngineerId(), glassinfo.getTemperingLayoutId());
+
+    }
+
+    @Override
+    public List<TemperingGlassInfo> selectLayoutId() {
+        QueryWrapper<TemperingGlassInfo> wrapper = new QueryWrapper<>();
+        wrapper.select("tempering_layout_id,engineer_id,max(id) as id")
+                .eq("state", 2)
+                .groupBy("tempering_layout_id,engineer_id")
+                .orderByAsc("id");
+        return temperingMapper.selectList(wrapper);
+    }
+
+    @Override
+    public List<TemperingGlassInfo> selectTaskType() {
+        QueryWrapper<TemperingGlassInfo> wrapper = new QueryWrapper<>();
+        wrapper.select("state")
+                .groupBy("state");
+        return temperingMapper.selectList(wrapper);
+    }
+
+    @Override
+    public Integer updateTemperingState(TemperingGlassInfo temperingGlassInfo) {
+        if (temperingMapper.updateTemperingGlassInfo(temperingGlassInfo) > 0) {
+            return 200;
+        } else {
+            return 100;
+        }
+    }
+
+    @Override
+    public List<TemperingGlassInfo> selectGlassInfoById(Integer id) {
+        List<TemperingGlassInfo> result = null;
+        QueryWrapper<TemperingGlassInfo> wrapper = new QueryWrapper<>();
+        wrapper.select("Top 1 *").in("state", 1, 0).eq("tempering_layout_id", id);
+        TemperingGlassInfo glass = temperingMapper.selectOne(wrapper);
+        if (glass != null) {
+            QueryWrapper<TemperingGlassInfo> glassinfo = new QueryWrapper<>();
+            glassinfo.eq("engineer_id", glass.getEngineerId())
+                    .eq("tempering_layout_id", id)
+                    .orderByDesc("tempering_layout_id")
+                    .orderByAsc("tempering_feed_sequence");
+            return temperingMapper.selectList(glassinfo);
+//            result= temperingMapper.selectByEngineerIdAndLayoutId(glass.getEngineerId(),glass.getTemperingLayoutId());
+        }
+        return result;
+    }
+
+    @Override
+    public GlassInfo selectTempering(GlassInfo glassInfo) {
+
+        QueryWrapper<GlassInfo> wrapper = new QueryWrapper<>();
+        wrapper.select("max(tempering_layout_id)as id")
+                .eq("engineer_id", glassInfo.getEngineerId());
+
+        return glassInfoMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<LoadGlassInfo> selectTemperingGlass(GlassInfo glassInfo) {
+        List<LoadGlassInfo> glassInfos = null;
+        glassInfos = glassInfoMapper.selectJoinList(LoadGlassInfo.class, new MPJQueryWrapper<GlassInfo>()
+                .select("IFNULL(b.state, 0) AS state,engineer_id,tempering_layout_id,width,height,tempering_feed_sequence,x_coordinate,y_coordinate,angle,t.glass_id,t.flow_card_id")
+                .leftJoin("(SELECT glass_id, MAX(type) AS state FROM damage GROUP BY glass_id) b\n" +
+                        "ON t.glass_id = b.glass_id")
+                .eq("engineer_id", glassInfo.getEngineerId())
+                .eq("tempering_layout_id", glassInfo.getTemperingLayoutId()));
+        return glassInfos;
+//        QueryWrapper<GlassInfo> wrapper = new QueryWrapper<>();
+//        wrapper.eq("engineer_id", glassInfo.getEngineerId())
+//                .eq("tempering_layout_id", glassInfo.getTemperingLayoutId())
+//                .select("engineer_id,tempering_layout_id,width,height,tempering_feed_sequence,x_coordinate,y_coordinate,angle,glass_id");
+//        return glassInfoMapper.selectList(wrapper);
+    }
+
+    @Override
+    public List<PieChartVO> queryPieChart() {
+        return baseMapper.queryPieChart();
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java
new file mode 100644
index 0000000..385df27
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java
@@ -0,0 +1,86 @@
+package com.mes.tools;
+
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.generator.AutoGenerator;
+import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
+import com.baomidou.mybatisplus.generator.config.GlobalConfig;
+import com.baomidou.mybatisplus.generator.config.PackageConfig;
+import com.baomidou.mybatisplus.generator.config.StrategyConfig;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+
+/**
+ * @author mybatis-plus
+ */
+public class CodeGet {
+
+    public static void main(String[] args) {
+
+        // 1銆佸垱寤轰唬鐮佺敓鎴愬櫒
+        AutoGenerator mpg = new AutoGenerator();
+
+        // 2銆佸叏灞�閰嶇疆
+        // 鍏ㄥ眬閰嶇疆
+        GlobalConfig gc = new GlobalConfig();
+        gc.setOutputDir("D:\\Documents\\hangzhoumesParent5\\");
+
+        gc.setServiceName("%sService");	//鍘绘帀Service鎺ュ彛鐨勯瀛楁瘝I
+        gc.setAuthor("wf");
+        gc.setOpen(false);
+        mpg.setGlobalConfig(gc);
+
+        // 3銆佹暟鎹簮閰嶇疆
+        DataSourceConfig dsc = new DataSourceConfig();
+        dsc.setUrl("jdbc:mysql://localhost:3306/north_glass_mes?serverTimezone=GMT%2b8");
+        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
+        dsc.setUsername("root");
+        dsc.setPassword("beibo.123/");
+        dsc.setDbType(DbType.MYSQL);
+        mpg.setDataSource(dsc);
+
+        // 4銆佸寘閰嶇疆
+        PackageConfig pc = new PackageConfig();
+        pc.setParent("com.mes");
+        pc.setModuleName("loadglassdevicetaskhistory"); //妯″潡鍚�
+        pc.setController("controller");
+        pc.setService("service");
+        pc.setMapper("mapper");
+        mpg.setPackageInfo(pc);
+
+        // 5銆佺瓥鐣ラ厤缃�
+        StrategyConfig strategy = new StrategyConfig();
+
+//        strategy.setInclude("raw_glass_storage_details");
+//        strategy.setInclude("raw_glass_storage_station");
+        strategy.setInclude("load_glass_device_task_history");
+
+        strategy.setNaming(NamingStrategy.underline_to_camel);//鏁版嵁搴撹〃鏄犲皠鍒板疄浣撶殑鍛藉悕绛栫暐
+
+        strategy.setColumnNaming(NamingStrategy.underline_to_camel);//鏁版嵁搴撹〃瀛楁鏄犲皠鍒板疄浣撶殑鍛藉悕绛栫暐
+        strategy.setEntityLombokModel(true); // lombok 妯″瀷 @Accessors(chain = true) setter閾惧紡鎿嶄綔
+
+        strategy.setRestControllerStyle(true); //restful api椋庢牸鎺у埗鍣�
+        strategy.setControllerMappingHyphenStyle(true); //url涓┘宄拌浆杩炲瓧绗�
+
+        mpg.setStrategy(strategy);
+
+        // 6銆佹墽琛�
+        mpg.execute();
+
+        System.out.println("鎵ц瀹屾垚");
+    }
+}
+
+/*
+<dependency>
+    <groupId>com.baomidou</groupId>
+    <artifactId>mybatis-plus-generator</artifactId>
+    <version>3.4.1</version>
+</dependency>
+
+<dependency>
+    <groupId>org.apache.velocity</groupId>
+    <artifactId>velocity-engine-core</artifactId>
+    <version>2.0</version>
+</dependency>
+ */
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/DatabaseDesignDocUtil.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/DatabaseDesignDocUtil.java
new file mode 100644
index 0000000..2b31d34
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/DatabaseDesignDocUtil.java
@@ -0,0 +1,97 @@
+package com.mes.tools;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/3/26 9:01
+ * @Description:
+ */
+
+import cn.smallbun.screw.core.Configuration;
+import cn.smallbun.screw.core.engine.EngineConfig;
+import cn.smallbun.screw.core.engine.EngineFileType;
+import cn.smallbun.screw.core.engine.EngineTemplateType;
+import cn.smallbun.screw.core.execute.DocumentationExecute;
+import cn.smallbun.screw.core.process.ProcessConfig;
+import com.zaxxer.hikari.HikariConfig;
+import com.zaxxer.hikari.HikariDataSource;
+
+import javax.sql.DataSource;
+import java.util.ArrayList;
+import java.util.List;
+
+public class DatabaseDesignDocUtil {
+
+    public static void main(String[] args) {
+        documentGeneration();
+    }
+
+    /**
+     * 鏂囨。鐢熸垚
+     */
+    public static void documentGeneration() {
+        //鏁版嵁婧�
+        HikariConfig hikariConfig = new HikariConfig();
+        hikariConfig.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
+        hikariConfig.setJdbcUrl("jdbc:sqlserver://10.153.19.150:1433;databasename=hangzhoumes");
+        hikariConfig.setUsername("sa");
+        hikariConfig.setPassword("beibo.123/");
+        //璁剧疆鍙互鑾峰彇tables remarks淇℃伅
+        hikariConfig.addDataSourceProperty("useInformationSchema", "true");
+        hikariConfig.setMinimumIdle(2);
+        hikariConfig.setMaximumPoolSize(5);
+        DataSource dataSource = new HikariDataSource(hikariConfig);
+        //鐢熸垚閰嶇疆
+        EngineConfig engineConfig = EngineConfig.builder()
+                //鐢熸垚鏂囦欢璺緞
+                .fileOutputDir("E:\\椤圭洰\\椤圭洰鏂囨。\\鏉窞鍒╂潵2")
+                //鎵撳紑鐩綍
+                .openOutputDir(true)
+                //鏂囦欢绫诲瀷
+                .fileType(EngineFileType.WORD)
+                //鐢熸垚妯℃澘瀹炵幇
+                .produceType(EngineTemplateType.freemarker)
+                //鑷畾涔夋枃浠跺悕绉�
+                .fileName("鏉窞鍒╂潵鏁版嵁搴撴枃妗�").build();
+
+        //蹇界暐琛�
+        List<String> ignoreTableName = new ArrayList<>();
+        ignoreTableName.add("test_user");
+        ignoreTableName.add("test_group");
+        //蹇界暐琛ㄥ墠缂�
+        ArrayList<String> ignorePrefix = new ArrayList<>();
+        ignorePrefix.add("test_");
+        //蹇界暐琛ㄥ悗缂�
+        ArrayList<String> ignoreSuffix = new ArrayList<>();
+        ignoreSuffix.add("_test");
+        ProcessConfig processConfig = ProcessConfig.builder()
+                //鎸囧畾鐢熸垚閫昏緫銆佸綋瀛樺湪鎸囧畾琛ㄣ�佹寚瀹氳〃鍓嶇紑銆佹寚瀹氳〃鍚庣紑鏃讹紝灏嗙敓鎴愭寚瀹氳〃锛屽叾浣欒〃涓嶇敓鎴愩�佸苟璺宠繃蹇界暐琛ㄩ厤缃�
+                //鏍规嵁鍚嶇О鎸囧畾琛ㄧ敓鎴�
+                .designatedTableName(new ArrayList<>())
+                //鏍规嵁琛ㄥ墠缂�鐢熸垚
+                .designatedTablePrefix(new ArrayList<>())
+                //鏍规嵁琛ㄥ悗缂�鐢熸垚
+                .designatedTableSuffix(new ArrayList<>())
+                //蹇界暐琛ㄥ悕
+                .ignoreTableName(ignoreTableName)
+                //蹇界暐琛ㄥ墠缂�
+                .ignoreTablePrefix(ignorePrefix)
+                //蹇界暐琛ㄥ悗缂�
+                .ignoreTableSuffix(ignoreSuffix).build();
+        //閰嶇疆
+        Configuration config = Configuration.builder()
+                //鐗堟湰
+                .version("1.0.0")
+                //鎻忚堪
+                .description("鏁版嵁搴撹璁℃枃妗g敓鎴�")
+                //鏁版嵁婧�
+                .dataSource(dataSource)
+                //鐢熸垚閰嶇疆
+                .engineConfig(engineConfig)
+                //鐢熸垚閰嶇疆
+                .produceConfig(processConfig)
+                .build();
+        //鎵ц鐢熸垚
+        new DocumentationExecute(config).execute();
+    }
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/DateUtil.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/DateUtil.java
new file mode 100644
index 0000000..5fe0e17
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/DateUtil.java
@@ -0,0 +1,24 @@
+package com.mes.tools;
+
+import java.util.Calendar;
+import java.util.Date;
+
+public class DateUtil {
+    public static Date getBeginDate(){
+        Calendar now = Calendar.getInstance();
+        Calendar startOfDay = (Calendar) now.clone();
+        startOfDay.set(Calendar.HOUR_OF_DAY, 0);
+        startOfDay.set(Calendar.MINUTE, 0);
+        startOfDay.set(Calendar.SECOND, 0);
+        return startOfDay.getTime();
+    }
+
+    public static Date getEndDate(){
+        Calendar now = Calendar.getInstance();
+        Calendar endOfDay = (Calendar) now.clone();
+        endOfDay.set(Calendar.HOUR_OF_DAY, 23);
+        endOfDay.set(Calendar.MINUTE, 59);
+        endOfDay.set(Calendar.SECOND, 59);
+        return endOfDay.getTime();
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/InitUtil.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/InitUtil.java
new file mode 100644
index 0000000..733b805
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/InitUtil.java
@@ -0,0 +1,107 @@
+package com.mes.tools;
+
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import com.mes.device.PlcBitInfo;
+import com.mes.device.PlcBitObject;
+import com.mes.device.PlcParameterInfo;
+import com.mes.device.PlcParameterObject;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class InitUtil {
+    //鍒濆鍖杦ord
+    public static PlcParameterObject initword(String jsonFilePath) {
+        try {
+            FileReader fileReader = new FileReader(jsonFilePath);
+            BufferedReader bufferedReader = new BufferedReader(fileReader);
+
+            StringBuilder content = new StringBuilder();
+            String line;
+
+            while ((line = bufferedReader.readLine()) != null) {
+                content.append(line);
+            }
+
+            bufferedReader.close();
+            fileReader.close();
+
+            JSONObject jsonfileobj = new JSONObject(content.toString());
+            JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor");
+            PlcParameterObject plcParameterObject = new PlcParameterObject();
+            plcParameterObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//璁剧疆璧峰浣嶅湴鍧�
+            plcParameterObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//璁剧疆鍦板潃闀垮害
+
+            for (int i = 0; i < jsonArray.size(); i++) {
+                JSONObject parameterObj = jsonArray.getJSONObject(i);
+                PlcParameterInfo plcParameterInfo = new PlcParameterInfo(jsonfileobj.getStr("plcAddressBegin")); //鍙傛暟瀹炰緥
+                String codeid = parameterObj.getStr("codeId");
+                plcParameterInfo.setCodeId(codeid);
+                plcParameterInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
+                //plcParameterInfo.setRatio(Integer.valueOf(parameterObj.getStr("ratio")));
+                plcParameterInfo.setAddressLength(Integer.valueOf(parameterObj.getStr("addressLenght")));
+                plcParameterInfo.setUnit(parameterObj.getStr("unit"));
+                plcParameterObject.addPlcParameter(plcParameterInfo);
+            }
+            // byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02};
+            // byte[] getplcvlues = S7control.getinstance().ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
+            // plcParameterObject.setPlcParameterList(getplcvlues);
+
+            return plcParameterObject;
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    //鍒濆鍖朾it
+    public static PlcBitObject initbit(String jsonFilePath) {
+        PlcBitObject plcBitObject = new PlcBitObject();
+
+        try {
+            FileReader fileReader = new FileReader(jsonFilePath);
+            BufferedReader bufferedReader = new BufferedReader(fileReader);
+
+            StringBuilder content = new StringBuilder();
+            String line;
+
+            while ((line = bufferedReader.readLine()) != null) {
+                content.append(line);
+            }
+
+            bufferedReader.close();
+            fileReader.close();
+
+            JSONObject jsonfileobj = new JSONObject(content.toString());
+            JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor");
+            plcBitObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//璁剧疆璧峰浣嶅湴鍧�
+            plcBitObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//璁剧疆鍦板潃闀垮害
+
+            for (int i = 0; i < jsonArray.size(); i++) {
+                JSONObject parameterObj = jsonArray.getJSONObject(i);
+
+                PlcBitInfo plcBitInfo = new PlcBitInfo(jsonfileobj.getStr("plcAddressBegin")); //鍙傛暟瀹炰緥
+                String codeid = parameterObj.getStr("codeId");
+                plcBitInfo.setCodeId(codeid);
+                plcBitInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
+
+                plcBitObject.addPlcBit(plcBitInfo);
+            }
+            System.out.println("");
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        //Boolean[] values1 = { false, true, true, true, false, false, true, false,
+        //  false, true ,true };
+        // List<Boolean> getplcvlues = new ArrayList<>(Arrays.asList(values1));
+
+//        List<Boolean> getplcvlues = S7control.getinstance().ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength());
+//        plcBitObject.setPlcBitList(getplcvlues);
+        return plcBitObject;
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/PageUtil.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/PageUtil.java
new file mode 100644
index 0000000..4968db4
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/PageUtil.java
@@ -0,0 +1,27 @@
+package com.mes.tools;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/3/12 15:29
+ * @Description:
+ */
+public class PageUtil {
+
+    public static IPage listToPage(List list, int pageNum, int pageSize) {
+        List pageList = new ArrayList<>();
+        int curIdx = pageNum > 1 ? (pageNum - 1) * pageSize : 0;
+        for (int i = 0; i < pageSize && curIdx + i < list.size(); i++) {
+            pageList.add(list.get(curIdx + i));
+        }
+        Page page = new Page(pageNum, pageSize);
+        page.setRecords(pageList);
+        page.setTotal(list.size());
+        return page;
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/S7control.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/S7control.java
new file mode 100644
index 0000000..45bf01e
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/S7control.java
@@ -0,0 +1,465 @@
+package com.mes.tools;
+
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.github.xingshuangs.iot.protocol.s7.service.MultiAddressWrite;
+import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class S7control {
+
+    S7PLC s7PLC; // PLC閫氳绫诲疄渚�
+
+    public S7control(EPlcType plcType, String ip, int port, int rack, int slot) {
+        if (s7PLC == null) {
+            s7PLC = new S7PLC(plcType, ip, port, 0, 0);
+        }
+    }
+
+    /**
+     * 鍏抽棴瑗块棬瀛恠7閫氳杩炴帴
+     */
+    public void closeS7client() {
+        if (s7PLC != null) {
+            s7PLC.close();
+        }
+    }
+
+    /**
+     * 閲嶅惎瑗块棬瀛恠7閫氳杩炴帴
+     */
+    public boolean reStartS7client() {
+        if (s7PLC != null) {
+            try {
+                s7PLC.hotRestart();
+                return true;
+            } catch (Exception ex) {
+                return false;
+            }
+        }
+        return false;
+    }
+
+
+    /**
+     * s7閫氳杩炴帴鐘舵��
+     */
+    public boolean checkConnected() {
+        return s7PLC.checkConnected();
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆涓�涓獁ord
+     *
+     * @param address 鍦板潃
+     * @param data    word鐨勫��
+     */
+    public boolean writeWord(String address, int data) {
+        if (s7PLC == null) {
+            return false;
+        }
+        boolean result = false;
+        int tryCount = 2;
+        do {
+            try {
+                s7PLC.writeUInt16(address, data);
+                result = true;
+            } catch (Exception ex) {
+                System.out.println("鍚憄lc鍐欏懡浠よ繃绋嬩腑鍙戠敓寮傚父锛屽師鍥犱负锛�" + ex.getMessage());
+                reStartS7client();
+            } finally {
+                tryCount -= 1;
+            }
+        }
+        while (!result && tryCount > 0);
+        return result;
+    }
+
+    /**
+     * 浠庢煇鍦板潃杩炵画 鍐欏叆澶氫釜word
+     *
+     * @param address 鍦板潃
+     * @param datas   word鐨勫��
+     */
+    public boolean writeWord(String address, List<Integer> datas) {
+        if (s7PLC == null) {
+            return false;
+        }
+        boolean result = false;
+        int tryCount = 2;
+        // s7PLC.write(address, data);
+        List<String> addresslist = getAddressList(address, datas.size(), 16);
+        MultiAddressWrite addressWrite = new MultiAddressWrite();
+        for (int i = 0; i < datas.size(); i++) {
+            addressWrite.addUInt16(addresslist.get(i), datas.get(i));
+        }
+        do {
+            try {
+                s7PLC.writeMultiData(addressWrite);
+                result = true;
+            } catch (Exception ex) {
+                reStartS7client();
+            } finally {
+                tryCount -= 1;
+            }
+        }
+        while (!result && tryCount > 0);
+        return result;
+
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆澶氫釜word
+     *
+     * @param address 鍦板潃
+     * @param datas   word鐨勫��
+     */
+
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆涓�涓狟it
+     *
+     * @param address 鍦板潃
+     * @param data    Bit鐨勫��
+     */
+    public boolean writeBit(String address, Boolean data) {
+        if (s7PLC == null) {
+            return false;
+        }
+        boolean result = false;
+        int tryCount = 2;
+        do {
+            try {
+                s7PLC.writeBoolean(address, data);
+                result = true;
+            } catch (Exception ex) {
+                reStartS7client();
+            } finally {
+                tryCount -= 1;
+            }
+        }
+        while (!result && tryCount > 0);
+        return result;
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆澶氫釜bit
+     *
+     * @param address 鍦板潃
+     * @param datas   bit鐨勫��
+     */
+    public boolean writeBit(List<String> address, List<Boolean> datas) {
+        if (s7PLC == null) {
+            return false;
+        }
+
+        MultiAddressWrite addressWrite = new MultiAddressWrite();
+        for (int i = 0; i < address.size(); i++) {
+            addressWrite.addBoolean(address.get(i), datas.get(i));
+        }
+        boolean result = false;
+        int tryCount = 2;
+        do {
+            try {
+                s7PLC.writeMultiData(addressWrite);
+                result = true;
+            } catch (Exception ex) {
+                reStartS7client();
+            } finally {
+                tryCount -= 1;
+            }
+        }
+        while (!result && tryCount > 0);
+        return result;
+
+    }
+
+    /**
+     * 浠庢煇鍦板潃杩炵画 鍐欏叆澶氫釜bit
+     *
+     * @param address 鍦板潃
+     * @param datas   word鐨勫��
+     */
+    public boolean writeBit(String address, List<Boolean> datas) {
+        if (s7PLC == null) {
+            return false;
+        }
+
+        // s7PLC.write(address, data);
+        List<String> addresslist = getAddressList(address, datas.size(), 1);
+        MultiAddressWrite addressWrite = new MultiAddressWrite();
+        for (int i = 0; i < datas.size(); i++) {
+            addressWrite.addBoolean(addresslist.get(i), datas.get(i));
+        }
+        boolean result = false;
+        int tryCount = 2;
+        do {
+            try {
+                s7PLC.writeMultiData(addressWrite);
+                result = true;
+            } catch (Exception ex) {
+                reStartS7client();
+            } finally {
+                tryCount -= 1;
+            }
+        }
+        while (!result && tryCount > 0);
+        return result;
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆澶氫釜byte
+     *
+     * @param address 鍦板潃
+     * @param datas   byte鐨勫��
+     */
+    public boolean writeByte(String address, byte[] datas) {
+        if (s7PLC == null) {
+            return false;
+        }
+        boolean result = false;
+        int tryCount = 2;
+        do {
+            try {
+                s7PLC.writeByte(address, datas);
+                result = true;
+            } catch (Exception ex) {
+                reStartS7client();
+            } finally {
+                tryCount -= 1;
+            }
+        }
+        while (!result && tryCount > 0);
+        return result;
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 璇诲彇word缁撴灉闆�
+     *
+     * @param address 鍦板潃
+     * @return 缁撴灉
+     */
+    public List<Integer> readWord(List<String> address) {
+        if (s7PLC == null) {
+            return null;
+        }
+        List<Integer> result = null;
+        try {
+            result = s7PLC.readUInt16(address);
+        } catch (Exception e) {
+            s7PLC.hotRestart();
+            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+
+        } finally {
+            return result;
+        }
+    }
+
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 璇诲彇word缁撴灉闆�
+     *
+     * @param address 鍦板潃
+     * @param count   杩炵画璇诲灏戜釜word
+     * @return 缁撴灉
+     */
+    public List<Integer> readWord(String address, int count) {
+        if (s7PLC == null) {
+            return null;
+        }
+        List<Integer> result = null;
+        List<String> addresslist = getAddressList(address, count, 16);
+        try {
+            result = s7PLC.readUInt16(addresslist);
+        } catch (Exception e) {
+            s7PLC.hotRestart();
+            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+        } finally {
+            return result;
+        }
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 璇诲彇byte缁撴灉闆�
+     *
+     * @param address 鍦板潃
+     * @param count   杩炵画璇诲灏戜釜byte
+     * @return 缁撴灉
+     */
+    public byte[] readByte(String address, int count) {
+        if (s7PLC == null) {
+            return null;
+        }
+        // List<String> addresslist = GetAddressList(address, count, 16);
+        byte[] bytes = null;
+        try {
+            bytes = s7PLC.readByte(address, count);
+        } catch (Exception e) {
+            // 澶勭悊寮傚父
+            s7PLC.hotRestart();
+            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+        } finally {
+            return bytes;
+        }
+
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 鎸塨it浣� 0 flase 1 true 璇诲彇缁撴灉
+     *
+     * @param addresslist 鍦板潃闆�
+     * @return Boolean缁撴灉
+     */
+    public List<Boolean> readBits(List<String> addresslist) {
+        if (s7PLC == null) {
+            return null;
+        }
+        List<Boolean> values = new ArrayList<>();
+        try {
+            values = s7PLC.readBoolean(addresslist);
+        } catch (Exception e) {
+            // 澶勭悊寮傚父
+            s7PLC.hotRestart();
+        } finally {
+            return values;
+        }
+    }
+
+   /* //璇诲彇涓嶈繛缁湴鍧�bit
+    public List<Boolean> readBits(List<String> addressList) {
+        if (s7PLC == null || addressList.isEmpty()) {
+            return null;
+        }
+
+        List<Boolean> values = new ArrayList<>();
+        for (String address : addressList) {
+            try {
+                boolean value = s7PLC.readBoolean(address);
+                values.add(value);
+            } catch (Exception e) {
+                // 澶勭悊寮傚父
+                System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+            }
+        }
+
+        return values;
+    }*/
+
+
+    //璇诲彇瀛楃涓�
+    public String readString(String address) {
+        if (s7PLC == null) {
+            return null;
+        }
+        String result = null;
+        try {
+            result = s7PLC.readString(address);
+        } catch (Exception e) {
+            s7PLC.hotRestart();
+            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+        } finally {
+            return result;
+        }
+    }
+
+
+    //璇诲彇鏃堕棿
+    public Long readtime(String address) {
+        if (s7PLC == null) {
+            return null;
+        }
+        Long result = null;
+        try {
+            result = s7PLC.readTime(address);
+        } catch (Exception e) {
+            s7PLC.hotRestart();
+            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+        } finally {
+            return result;
+        }
+    }
+
+
+    public boolean writetime(String address, long datas) {
+        if (s7PLC == null) {
+            return false;
+        }
+        boolean result = false;
+        int tryCount = 2;
+        do {
+            try {
+                s7PLC.writeTime(address, datas); // 灏嗘暟鎹啓鍏ュ崟涓湴鍧�
+                result = true;
+            } catch (Exception ex) {
+                reStartS7client();
+            } finally {
+                tryCount -= 1;
+            }
+        }
+        while (!result && tryCount > 0);
+        return result;
+    }
+
+
+    /**
+     * 浠庢寚瀹氱殑鍦板潃寮�濮� 杩炵画鎸塨it浣嶈鍙�
+     *
+     * @param address 鍦板潃
+     * @param count   闀垮害
+     * @return Boolean缁撴灉
+     */
+    public List<Boolean> readBits(String address, int count) {
+        if (s7PLC == null) {
+            return null;
+        }
+        List<Boolean> values = new ArrayList<>();
+        List<String> addresslist = getAddressList(address, count, 1);
+        try {
+            values = s7PLC.readBoolean(addresslist);
+        } catch (Exception e) {
+            s7PLC.hotRestart();
+            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+        } finally {
+            return values;
+        }
+    }
+
+    ;
+
+
+    private List<String> getAddressList(String address, int count, int addedbit) {
+        List<String> addresslist = new ArrayList<String>();
+
+        String[] stringdatas = address.trim().split("\\.");
+        if (stringdatas.length < 2 || !address.startsWith("DB")) {
+            return null;
+        }
+        int dbwindex = 0;
+        int bitindex = 0;
+        if (stringdatas.length == 2) {
+            dbwindex = Integer.parseInt(stringdatas[1]);
+        } else if (stringdatas.length == 3) {
+            dbwindex = Integer.parseInt(stringdatas[1]);
+            bitindex = Integer.parseInt(stringdatas[2]);
+        } else {
+            return null;
+        }
+
+        addresslist.add(address);
+        for (int i = 0; i < count - 1; i++) {
+
+            int bitcurrent = bitindex + addedbit;
+            if (bitcurrent > 7) {
+                dbwindex += bitcurrent / 8;
+                bitindex = 0;
+            } else {
+                bitindex = bitcurrent;
+            }
+
+            String endstr = stringdatas.length == 3 ? "." + bitindex : "";
+            addresslist.add(stringdatas[0] + "." + dbwindex + endstr);
+        }
+        return addresslist;
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java
new file mode 100644
index 0000000..480921c
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java
@@ -0,0 +1,175 @@
+package com.mes.tools;
+
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.stereotype.Component;
+
+import javax.websocket.*;
+import javax.websocket.server.PathParam;
+import javax.websocket.server.ServerEndpoint;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+@ServerEndpoint(value = "/api/talk/{username}")
+@Component("webSocketServer")
+public class WebSocketServer {
+
+
+    public static ConfigurableApplicationContext applicationContext;
+
+    private static final Logger log = LoggerFactory.getLogger(WebSocketServer.class);
+    private List<String> messages;
+    /**
+     * 璁板綍褰撳墠鍦ㄧ嚎杩炴帴鏁�
+     */
+    public static final Map<String, ArrayList<WebSocketServer>> sessionMap = new ConcurrentHashMap<>();
+
+    public String username;
+    public Session session;
+
+    public WebSocketServer() {
+        this.messages = new ArrayList<>();
+    }
+
+    /**
+     * 杩炴帴寤虹珛鎴愬姛璋冪敤鐨勬柟娉�
+     */
+    @OnOpen
+    public void onOpen(Session session, @PathParam("username") String username) {
+        this.username = username;
+        this.session = session;
+        List<WebSocketServer> webSocketServers = sessionMap.get(username);
+        if (webSocketServers == null) {
+            ArrayList<WebSocketServer> arrayListwebserver = new ArrayList<WebSocketServer>();
+            arrayListwebserver.add(this);
+            sessionMap.put(username, arrayListwebserver);
+        } else {
+            webSocketServers.add(this);
+        }
+
+        log.info("鏈夋柊鐢ㄦ埛鍔犲叆锛寀sername={}, 褰撳墠鍦ㄧ嚎浜烘暟涓猴細{}", username, sessionMap.get(username).size());
+
+        // JSONObject result = new JSONObject();
+        // JSONArray array = new JSONArray();
+        // result.set("users", array);
+        // for (Object key : sessionMap.keySet()) {
+        // JSONObject jsonObject = new JSONObject();
+        // jsonObject.set("username", key);
+        // array.add(jsonObject);
+        // }
+
+        // sendAllMessage(JSONUtil.toJsonStr(result)); // 鍚庡彴鍙戦�佹秷鎭粰鎵�鏈夌殑瀹㈡埛绔�
+    }
+
+    /**
+     * 杩炴帴鍏抽棴璋冪敤鐨勬柟娉�
+     */
+    @OnClose
+    public void onClose(Session session, @PathParam("username") String username) {
+        List<WebSocketServer> webSocketServers = sessionMap.get(username);
+        ArrayList<WebSocketServer> arrayListwebserver = new ArrayList<WebSocketServer>();
+        if (webSocketServers.size() > 1) {
+            for (WebSocketServer webSocketServer : webSocketServers) {
+                if (webSocketServer != this) {
+                    arrayListwebserver.add(webSocketServer);
+                }
+            }
+            sessionMap.put(username, arrayListwebserver);
+            log.info("绉婚櫎username={}涓�鍚嶇敤鎴穝ession, {}鐨勫綋鍓嶅湪绾夸汉鏁颁负锛歿}", username, username, sessionMap.get(username).size());
+        } else {
+            sessionMap.remove(username);
+            log.info("绉婚櫎username={}涓�鍚嶇敤鎴穝ession, {}杩炴帴鍏抽棴, 褰撳墠杩炴帴鏁颁负锛歿}", username, username, sessionMap.size());
+        }
+
+    }
+
+    /**
+     * 鏀跺埌瀹㈡埛绔秷鎭悗璋冪敤鐨勬柟娉�
+     * 鍚庡彴鏀跺埌瀹㈡埛绔彂閫佽繃鏉ョ殑娑堟伅
+     * onMessage 鏄竴涓秷鎭殑涓浆绔�
+     * 鎺ュ彈 娴忚鍣ㄧ socket.send 鍙戦�佽繃鏉ョ殑 json鏁版嵁
+     *
+     * @param message 瀹㈡埛绔彂閫佽繃鏉ョ殑娑堟伅
+     */
+    @OnMessage
+    public void onMessage(String message, Session session, @PathParam("username") String username) {
+        log.info("鏈嶅姟绔敹鍒扮敤鎴穟sername={}鐨勬秷鎭�:{}", username, message);
+        JSONObject obj = JSONUtil.parseObj(message);
+        String text = obj.getStr("data");
+
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.set("message", text);
+        this.messages.add(text);
+    }
+
+    @OnError
+    public void onError(Session session, Throwable error) {
+        log.error("鍙戠敓閿欒");
+        error.printStackTrace();
+    }
+
+    /**
+     * 鏈嶅姟绔彂閫佹秷鎭粰瀹㈡埛绔�
+     */
+    public void sendMessage(String message) {
+        try {
+            // log.info("鏈嶅姟绔粰瀹㈡埛绔痆{}]鍙戦�佹秷鎭瘂}", this.session.getId(), message);
+            if(this.session.isOpen()){
+                int maxChunkSize = 50000; // 瀹氫箟鏈�澶х殑鍒嗗潡澶у皬
+                int length = message.length();
+                if(length>50000){
+                    int chunks = (int) Math.ceil((double) length / maxChunkSize);
+                    //鍒嗗潡鍙戦�佹秷鎭�
+                    for (int i = 0; i < chunks; i++) {
+                        int startIndex = i * maxChunkSize;
+                        int endIndex = Math.min(startIndex + maxChunkSize, length);
+                        String chunk = message.substring(startIndex, endIndex);
+
+                        // 鍒ゆ柇鏄惁鏄渶鍚庝竴鍧楁秷鎭�
+                        boolean isLastChunk = (i == chunks - 1);
+                        if(isLastChunk==true){
+                            chunk+="<END>";
+                        }
+                        // 鍙戦�佸垎鍧楁秷鎭紝骞朵紶閫掓槸鍚︽槸鏈�鍚庝竴鍧楁秷鎭殑鏍囪瘑
+                        this.session.getBasicRemote().sendText(chunk);
+                    }
+                }else{
+                    this.session.getBasicRemote().sendText(message);
+                }
+
+            }
+        } catch (Exception e) {
+            log.error("鍙戦�佹秷鎭粰瀹㈡埛绔け璐ワ細{}", e.getMessage(), e);
+        }
+    }
+
+    // /**
+    //  * 鏈嶅姟绔彂閫佹秷鎭粰鎵�鏈夊鎴风
+    //  */
+    // public void sendAllMessage(String message) {
+    //     try {
+    //         for (WebSocketServer webSocketServer : sessionMap.values()) {
+    //             // log.info("鏈嶅姟绔粰瀹㈡埛绔痆{}]鍙戦�佹秷鎭瘂}", this.session.getId(), message);
+    //             webSocketServer.sendMessage(message);
+    //         }
+    //     } catch (Exception e) {
+    //         log.error("鏈嶅姟绔彂閫佹秷鎭粰瀹㈡埛绔け璐�", e);
+    //     }
+    // }
+
+    public List<String> getMessages() {
+        return messages;
+
+    }
+
+    public void clearMessages() {
+        messages.clear();
+    }
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/UpPattenUsage.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/UpPattenUsage.java
new file mode 100644
index 0000000..821c41b
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/UpPattenUsage.java
@@ -0,0 +1,75 @@
+package com.mes.uppattenusage.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class UpPattenUsage implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鍘熺墖浣跨敤鎯呭喌琛╥d
+     */
+      @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    private String engineeringId;
+
+    /**
+     * 鑶滅郴id
+     */
+    private String filmsId;
+
+    /**
+     * 瀹�
+     */
+    private double width;
+
+    /**
+     * 楂�
+     */
+    private double height;
+
+    /**
+     * 鍘氬害
+     */
+    private double thickness;
+
+    /**
+     * 鍘熺墖鐗堝浘鐗囧簭
+     */
+    private Integer layoutSequence;
+
+    /**
+     * 鐘舵��
+     */
+    private Integer state;
+
+//    /**
+//     * 闄よ啘鏂瑰紡
+//     */
+//    private Integer filmRemove;
+//
+//    /**
+//     * 璁惧
+//     */
+//    private Integer stationCell;
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/vo/UpPattenUsageVO.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/vo/UpPattenUsageVO.java
new file mode 100644
index 0000000..eda97c0
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/entity/vo/UpPattenUsageVO.java
@@ -0,0 +1,14 @@
+package com.mes.uppattenusage.entity.vo;
+
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/10/12 15:43
+ * @Description:
+ */
+@Data
+public class UpPattenUsageVO extends UpPattenUsage {
+    private String groupNumber;
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/mapper/UpPattenUsageMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/mapper/UpPattenUsageMapper.java
new file mode 100644
index 0000000..b3d3233
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/mapper/UpPattenUsageMapper.java
@@ -0,0 +1,23 @@
+package com.mes.uppattenusage.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import com.mes.uppattenusage.entity.vo.UpPattenUsageVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-18
+ */
+public interface UpPattenUsageMapper extends MPJBaseMapper<UpPattenUsage> {
+
+    List<UpPattenUsageVO> queryRawGlassByEngineeringId(@Param("engineeringId") String engineerId);
+
+    List<Integer> queryFinishByEngineering(@Param("stationCell") Integer deviceId, @Param("finishCount") int finishCount);
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/MD5.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/MD5.java
new file mode 100644
index 0000000..e0153d2
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/MD5.java
@@ -0,0 +1,36 @@
+package com.mes.utils;
+
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+
+public final class MD5 {
+
+    public static String encrypt(String strSrc) {
+        try {
+            char hexChars[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8',
+                    '9', 'a', 'b', 'c', 'd', 'e', 'f'};
+            byte[] bytes = strSrc.getBytes();
+            MessageDigest md = MessageDigest.getInstance("MD5");
+            md.update(bytes);
+            bytes = md.digest();
+            int j = bytes.length;
+            char[] chars = new char[j * 2];
+            int k = 0;
+            for (int i = 0; i < bytes.length; i++) {
+                byte b = bytes[i];
+                chars[k++] = hexChars[b >>> 4 & 0xf];
+                chars[k++] = hexChars[b & 0xf];
+            }
+            return new String(chars);
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+            throw new RuntimeException("MD5鍔犲瘑鍑洪敊锛侊紒+" + e);
+        }
+    }
+
+    public static void main(String[] args) {
+        System.out.println(MD5.encrypt("111111"));
+    }
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/RedisUtil.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/RedisUtil.java
new file mode 100644
index 0000000..2b0a460
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/RedisUtil.java
@@ -0,0 +1,235 @@
+package com.mes.utils;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.BoundSetOperations;
+import org.springframework.data.redis.core.HashOperations;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.stereotype.Component;
+
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * spring redis 宸ュ叿绫�
+ **/
+@Component
+public class RedisUtil {
+    @Autowired
+    public RedisTemplate redisTemplate;
+
+    /**
+     * 缂撳瓨鍩烘湰鐨勫璞★紝Integer銆丼tring銆佸疄浣撶被绛�
+     *
+     * @param key   缂撳瓨鐨勯敭鍊�
+     * @param value 缂撳瓨鐨勫��
+     */
+    public <T> void setCacheObject(final String key, final T value) {
+        redisTemplate.opsForValue().set(key, value);
+    }
+
+    /**
+     * 缂撳瓨鍩烘湰鐨勫璞★紝Integer銆丼tring銆佸疄浣撶被绛�
+     *
+     * @param key      缂撳瓨鐨勯敭鍊�
+     * @param value    缂撳瓨鐨勫��
+     * @param timeout  鏃堕棿
+     * @param timeUnit 鏃堕棿棰楃矑搴�
+     */
+    public <T> void setCacheObject(final String key, final T value, final Integer timeout, final TimeUnit timeUnit) {
+        redisTemplate.opsForValue().set(key, value, timeout, timeUnit);
+    }
+
+    /**
+     * 璁剧疆鏈夋晥鏃堕棿
+     *
+     * @param key     Redis閿�
+     * @param timeout 瓒呮椂鏃堕棿
+     * @return true=璁剧疆鎴愬姛锛沠alse=璁剧疆澶辫触
+     */
+    public boolean expire(final String key, final long timeout) {
+        return expire(key, timeout, TimeUnit.SECONDS);
+    }
+
+    /**
+     * 璁剧疆鏈夋晥鏃堕棿
+     *
+     * @param key     Redis閿�
+     * @param timeout 瓒呮椂鏃堕棿
+     * @param unit    鏃堕棿鍗曚綅
+     * @return true=璁剧疆鎴愬姛锛沠alse=璁剧疆澶辫触
+     */
+    public boolean expire(final String key, final long timeout, final TimeUnit unit) {
+        return redisTemplate.expire(key, timeout, unit);
+    }
+
+    /**
+     * 鑾峰緱缂撳瓨鐨勫熀鏈璞°��
+     *
+     * @param key 缂撳瓨閿��
+     * @return 缂撳瓨閿�煎搴旂殑鏁版嵁
+     */
+    public <T> T getCacheObject(final String key) {
+        ValueOperations<String, T> operation = redisTemplate.opsForValue();
+        return operation.get(key);
+    }
+
+    /**
+     * 鍒犻櫎鍗曚釜瀵硅薄
+     *
+     * @param key
+     */
+    public boolean deleteObject(final String key) {
+        return redisTemplate.delete(key);
+    }
+
+    /**
+     * 鍒犻櫎闆嗗悎瀵硅薄
+     *
+     * @param collection 澶氫釜瀵硅薄
+     * @return
+     */
+    public long deleteObject(final Collection collection) {
+        return redisTemplate.delete(collection);
+    }
+
+    /**
+     * 缂撳瓨List鏁版嵁
+     *
+     * @param key      缂撳瓨鐨勯敭鍊�
+     * @param dataList 寰呯紦瀛樼殑List鏁版嵁
+     * @return 缂撳瓨鐨勫璞�
+     */
+    public <T> long setCacheList(final String key, final List<T> dataList) {
+        Long count = redisTemplate.opsForList().rightPushAll(key, dataList);
+        return count == null ? 0 : count;
+    }
+
+    /**
+     * 鑾峰緱缂撳瓨鐨刲ist瀵硅薄
+     *
+     * @param key 缂撳瓨鐨勯敭鍊�
+     * @return 缂撳瓨閿�煎搴旂殑鏁版嵁
+     */
+    public <T> List<T> getCacheList(final String key) {
+        return redisTemplate.opsForList().range(key, 0, -1);
+    }
+
+    /**
+     * 缂撳瓨Set
+     *
+     * @param key     缂撳瓨閿��
+     * @param dataSet 缂撳瓨鐨勬暟鎹�
+     * @return 缂撳瓨鏁版嵁鐨勫璞�
+     */
+    public <T> BoundSetOperations<String, T> setCacheSet(final String key, final Set<T> dataSet) {
+        BoundSetOperations<String, T> setOperation = redisTemplate.boundSetOps(key);
+        Iterator<T> it = dataSet.iterator();
+        while (it.hasNext()) {
+            setOperation.add(it.next());
+        }
+        return setOperation;
+    }
+
+    /**
+     * 鑾峰緱缂撳瓨鐨剆et
+     *
+     * @param key
+     * @return
+     */
+    public <T> Set<T> getCacheSet(final String key) {
+        return redisTemplate.opsForSet().members(key);
+    }
+
+    /**
+     * 缂撳瓨Map
+     *
+     * @param key
+     * @param dataMap
+     */
+    public <T> void setCacheMap(final String key, final Map<String, T> dataMap) {
+        if (dataMap != null) {
+            redisTemplate.opsForHash().putAll(key, dataMap);
+        }
+    }
+
+    /**
+     * 鑾峰緱缂撳瓨鐨凪ap
+     *
+     * @param key
+     * @return
+     */
+    public <T> Map<String, T> getCacheMap(final String key) {
+        return redisTemplate.opsForHash().entries(key);
+    }
+
+    /**
+     * 寰�Hash涓瓨鍏ユ暟鎹�
+     *
+     * @param key   Redis閿�
+     * @param hKey  Hash閿�
+     * @param value 鍊�
+     */
+    public <T> void setCacheMapValue(final String key, final String hKey, final T value) {
+        redisTemplate.opsForHash().put(key, hKey, value);
+    }
+
+    /**
+     * 鑾峰彇Hash涓殑鏁版嵁
+     *
+     * @param key  Redis閿�
+     * @param hKey Hash閿�
+     * @return Hash涓殑瀵硅薄
+     */
+    public <T> T getCacheMapValue(final String key, final String hKey) {
+        HashOperations<String, String, T> opsForHash = redisTemplate.opsForHash();
+        return opsForHash.get(key, hKey);
+    }
+
+    /**
+     * 鍒犻櫎Hash涓殑鏁版嵁
+     *
+     * @param key
+     * @param hkey
+     */
+    public void delCacheMapValue(final String key, final String hkey) {
+        HashOperations hashOperations = redisTemplate.opsForHash();
+        hashOperations.delete(key, hkey);
+    }
+
+    /**
+     * 鑾峰彇澶氫釜Hash涓殑鏁版嵁
+     *
+     * @param key   Redis閿�
+     * @param hKeys Hash閿泦鍚�
+     * @return Hash瀵硅薄闆嗗悎
+     */
+    public <T> List<T> getMultiCacheMapValue(final String key, final Collection<Object> hKeys) {
+        return redisTemplate.opsForHash().multiGet(key, hKeys);
+    }
+
+    /**
+     * 鑾峰緱缂撳瓨鐨勫熀鏈璞″垪琛�
+     *
+     * @param pattern 瀛楃涓插墠缂�
+     * @return 瀵硅薄鍒楄〃
+     */
+    public Collection<String> keys(final String pattern) {
+        return redisTemplate.keys(pattern);
+    }
+
+    /**
+     * 鍒ゆ柇key鏄惁瀛樺湪
+     *
+     * @param key 閿�
+     * @return true 瀛樺湪 false涓嶅瓨鍦�
+     */
+    public boolean hasKey(String key) {
+        try {
+            return redisTemplate.hasKey(key);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+    }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/ResponseUtil.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/ResponseUtil.java
new file mode 100644
index 0000000..ad4f177
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/ResponseUtil.java
@@ -0,0 +1,28 @@
+package com.mes.utils;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.http.HttpStatus;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/8 15:46
+ * @Description:
+ */
+public class ResponseUtil {
+
+    public static final String APPLICATION_JSON_UTF8_VALUE = "application/json;charset=UTF-8";
+
+    public static void out(HttpServletResponse response, Result r) {
+        ObjectMapper mapper = new ObjectMapper();
+        response.setStatus(HttpStatus.OK.value());
+        response.setContentType(APPLICATION_JSON_UTF8_VALUE);
+        try {
+            mapper.writeValue(response.getWriter(), r);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/Result.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/Result.java
new file mode 100644
index 0000000..9b9a681
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/Result.java
@@ -0,0 +1,56 @@
+package com.mes.utils;
+
+import lombok.Data;
+
+
+@Data
+public class Result<T> {
+    private Integer code;
+    private String message;
+    private T data;
+
+    private Result() {
+
+    }
+
+    public static <T> Result<T> build(Integer code, String message, T data) {
+        Result<T> result = new Result<T>();
+        result.setCode(code);
+        result.setMessage(message);
+        if (data != null) {
+            result.setData(data);
+        }
+        return result;
+    }
+
+    public static <T> Result<T> build(ResultCodeEnum resultCodeEnum, T data) {
+        Result<T> result = new Result<T>();
+        result.setCode(resultCodeEnum.getCode());
+        result.setMessage(resultCodeEnum.getMessage());
+        if (data != null) {
+            result.setData(data);
+        }
+        return result;
+    }
+
+    public static <T> Result<T> success() {
+        return build(ResultCodeEnum.SUCCESS, null);
+    }
+
+    public static <T> Result<T> success(T data) {
+        return build(ResultCodeEnum.SUCCESS.getCode(), "", data);
+    }
+
+
+    public static Result error(Integer code, String msg) {
+        return build(code, msg, null);
+    }
+
+    public static <T> Result<T> error(T data) {
+        return build(ResultCodeEnum.FAIL.getCode(), "", data);
+    }
+
+    public static <T> Result<T> error() {
+        return build(ResultCodeEnum.FAIL.getCode(), "鏈嶅姟鍣ㄥ彂鐢熷紓甯�", null);
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/ResultCodeEnum.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/ResultCodeEnum.java
new file mode 100644
index 0000000..f29b532
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/ResultCodeEnum.java
@@ -0,0 +1,33 @@
+package com.mes.utils;
+
+import lombok.Getter;
+
+/**
+ * @author zhoush
+ */
+
+@Getter
+public enum ResultCodeEnum {
+
+    SUCCESS(200, "鎴愬姛"),
+    FAIL(201, "澶辫触"),
+    SERVICE_ERROR(2012, "鏈嶅姟寮傚父"),
+    DATA_ERROR(204, "鏁版嵁寮傚父"),
+    ILLEGAL_REQUEST(205, "闈炴硶璇锋眰"),
+    REPEAT_SUBMIT(206, "閲嶅鎻愪氦"),
+
+    LOGIN_AUTH(208, "鏈櫥闄�"),
+    PERMISSION(209, "娌℃湁鏉冮檺"),
+
+
+    ;
+
+    private Integer code;
+
+    private String message;
+
+    ResultCodeEnum(Integer code, String message) {
+        this.code = code;
+        this.message = message;
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/controller/WorkAssignmentController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/controller/WorkAssignmentController.java
new file mode 100644
index 0000000..85c84b2
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/controller/WorkAssignmentController.java
@@ -0,0 +1,45 @@
+package com.mes.work_assignment.controller;
+
+
+import com.mes.utils.Result;
+import com.mes.work_assignment.entity.WorkAssignment;
+import com.mes.work_assignment.service.WorkAssignmentService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-01
+ */
+@Api(tags = "鍊肩彮淇℃伅")
+@RestController
+@RequestMapping("/work_assignment")
+public class WorkAssignmentController {
+
+    @Autowired
+    private WorkAssignmentService workAssignmentService;
+    @ApiOperation("鍊肩彮鏁版嵁鏌ヨ")
+    @PostMapping("/selectWorkAssignment")
+    public Result selectWorkAssignment(@RequestBody Map map) {
+        String line=map.get("line").toString();
+        String workingProcedure=map.get("workingProcedure").toString();
+        return Result.build(200,"鏌ヨ鎴愬姛",workAssignmentService.selectWorkAssignment(line,workingProcedure));
+    }
+
+    @ApiOperation("鍊肩彮鏁版嵁淇敼")
+    @PostMapping("/updateWorkAssignment")
+    public Result updateWorkAssignment(@RequestBody List<WorkAssignment> workAssignmentList) {
+        workAssignmentService.saveOrUpdateBatch(workAssignmentList);
+        return Result.build(200,"淇敼鎴愬姛",1);
+    }
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/entity/WorkAssignment.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/entity/WorkAssignment.java
new file mode 100644
index 0000000..44e68a8
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/entity/WorkAssignment.java
@@ -0,0 +1,44 @@
+package com.mes.work_assignment.entity;
+
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-01
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class WorkAssignment implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+      private Integer id;
+
+    /**
+     * 绾胯矾
+     */
+    private Integer line;
+
+    /**
+     * 宸ュ簭
+     */
+    private String workProcesses;
+
+    /**
+     * 鐝粍鍚嶇О
+     */
+    private String teamsGroupsName;
+
+    /**
+     * 璁惧鍚嶇О
+     */
+    private String deviceName;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/mapper/WorkAssignmentMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/mapper/WorkAssignmentMapper.java
new file mode 100644
index 0000000..be09ee9
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/mapper/WorkAssignmentMapper.java
@@ -0,0 +1,18 @@
+package com.mes.work_assignment.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.work_assignment.entity.WorkAssignment;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-01
+ */
+@DS("northGlassMes")
+public interface WorkAssignmentMapper extends BaseMapper<WorkAssignment> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/mapper/xml/WorkAssignmentMapper.xml b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/mapper/xml/WorkAssignmentMapper.xml
new file mode 100644
index 0000000..db1b33d
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/mapper/xml/WorkAssignmentMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.work_assignment.mapper.WorkAssignmentMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/service/WorkAssignmentService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/service/WorkAssignmentService.java
new file mode 100644
index 0000000..c4daba8
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/service/WorkAssignmentService.java
@@ -0,0 +1,19 @@
+package com.mes.work_assignment.service;
+
+import com.mes.work_assignment.entity.WorkAssignment;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-01
+ */
+public interface WorkAssignmentService extends IService<WorkAssignment> {
+
+    List<WorkAssignment> selectWorkAssignment(String line, String workingProcedure);
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/service/impl/WorkAssignmentServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/service/impl/WorkAssignmentServiceImpl.java
new file mode 100644
index 0000000..1bef12b
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/service/impl/WorkAssignmentServiceImpl.java
@@ -0,0 +1,37 @@
+package com.mes.work_assignment.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.mes.work_assignment.entity.WorkAssignment;
+import com.mes.work_assignment.mapper.WorkAssignmentMapper;
+import com.mes.work_assignment.service.WorkAssignmentService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-01
+ */
+@Service
+public class WorkAssignmentServiceImpl extends ServiceImpl<WorkAssignmentMapper, WorkAssignment> implements WorkAssignmentService {
+
+    /**
+     * 鏌ヨ褰撳墠鍊肩彮淇℃伅
+     * @param line
+     * @param workingProcedure
+     * @return
+     */
+    @Override
+    public List<WorkAssignment> selectWorkAssignment(String line, String workingProcedure){
+        LambdaQueryWrapper<WorkAssignment> workAssignmentSelectWrapper=new LambdaQueryWrapper<>();
+        workAssignmentSelectWrapper
+                .eq(WorkAssignment::getLine,line)
+                .eq(WorkAssignment::getWorkProcesses,workingProcedure);
+        return baseMapper.selectList(workAssignmentSelectWrapper);
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/application.yml b/hangzhoumesParent/common/servicebase/src/main/resources/application.yml
new file mode 100644
index 0000000..0edfb92
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/application.yml
@@ -0,0 +1,8 @@
+mybatis-plus-join:
+  sub-table-logic: true
+mybatis-plus:
+  global-config:
+    db-config:
+      logic-delete-field: deleted
+      logic-delete-value: 1
+      logic-not-delete-value: 0
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/banner.txt b/hangzhoumesParent/common/servicebase/src/main/resources/banner.txt
new file mode 100644
index 0000000..b4027f0
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/banner.txt
@@ -0,0 +1,32 @@
+________                ________                 ___       _____________   ____
+`MMMMMMMb.          68b `MMMMMMMb.               `MMb     dMM'`MMMMMMMMM  6MMMMb\
+ MM    `Mb          Y89  MM    `Mb                MMM.   ,PMM  MM      \ 6M'    `
+ MM     MM   ____   ___  MM     MM   _____        M`Mb   d'MM  MM        MM
+ MM    .M9  6MMMMb  `MM  MM    .M9  6MMMMMb       M YM. ,P MM  MM    ,   YM.
+ MMMMMMM(  6M'  `Mb  MM  MMMMMMM(  6M'   `Mb      M `Mb d' MM  MMMMMMM    YMMMMb
+ MM    `Mb MM    MM  MM  MM    `Mb MM     MM      M  YM.P  MM  MM    `        `Mb
+ MM     MM MMMMMMMM  MM  MM     MM MM     MM      M  `Mb'  MM  MM              MM
+ MM     MM MM        MM  MM     MM MM     MM      M   YP   MM  MM              MM
+ MM    .M9 YM    d9  MM  MM    .M9 YM.   ,M9 68b  M   `'   MM  MM      / L    ,M9
+_MMMMMMM9'  YMMMM9  _MM__MMMMMMM9'  YMMMMM9  Y89 _M_      _MM__MMMMMMMMM MYMMMM9
+
+//                          _ooOoo_                               //
+//                         o8888888o                              //
+//                         88" . "88                              //
+//                         (| ^_^ |)                              //
+//                         O\  =  /O                              //
+//                      ____/`---'\____                           //
+//                    .'  \\|     |//  `.                         //
+//                   /  \\|||  :  |||//  \                        //
+//                  /  _||||| -:- |||||-  \                       //
+//                  |   | \\\  -  /// |   |                       //
+//                  | \_|  ''\---/''  |   |                       //
+//                  \  .-\__  `-`  ___/-. /                       //
+//                ___`. .'  /--.--\  `. . ___                     //
+//              ."" '<  `.___\_<|>_/___.'  >'"".                  //
+//            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //
+//            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //
+//      ========`-.____`-.___\_____/___.-`____.-'========         //
+//                           `=---='                              //
+//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //
+//            浣涚淇濅綉       姘镐笉瀹曟満      姘告棤BUG                銆�銆�//
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/BigStorageCageTaskMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/BigStorageCageTaskMapper.xml
new file mode 100644
index 0000000..ca5269d
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/BigStorageCageTaskMapper.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.bigstoragecagetask.mapper.BigStorageCageTaskMapper">
+
+    <resultMap id="baseMap" type="com.mes.bigstoragecagetask.entity.BigStorageCageTask">
+        <result column="glass_id" property="glassId"/>
+        <result column="start_slot" property="startSlot"/>
+        <result column="target_slot" property="targetSlot"/>
+        <result column="task_state" property="taskState"/>
+    </resultMap>
+    <insert id="saveTaskMessage">
+        INSERT INTO ${tableName} (glass_id, start_slot, target_slot,task_state)
+        VALUES
+        <foreach collection="list" item="item" index="index" separator=",">
+            (#{item.glassId}, #{item.startSlot},#{item.targetSlot},#{item.taskState})
+        </foreach>
+    </insert>
+    <delete id="removeAll">
+        delete
+        from ${tableName}
+    </delete>
+
+    <select id="queryTaskMessage" resultMap="baseMap">
+        select *
+        from ${tableName}
+        where glass_id is not null
+          and glass_id != ''
+    </select>
+
+
+    <update id="updateTaskMessage">
+        UPDATE ${tableName}
+        SET target_slot = #{task.targetSlot}
+        where glass_id = #{task.glassId}
+    </update>
+
+    <update id="updateOutTaskMessage">
+        UPDATE ${tableName}
+        SET glass_id    = ''
+          , start_slot  = 0
+          , target_slot = 0
+          , task_state  = 0
+    </update>
+
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/FlowCardMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/FlowCardMapper.xml
new file mode 100644
index 0000000..62b8661
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/FlowCardMapper.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.pp.mapper.FlowCardMapper">
+
+
+    <select id="selectFlowCard" resultType="java.util.Map">
+        select fc.order_number,
+        concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
+        od.quantity,
+        round(ogd.total_area, 2) as total_area,
+        od.perimeter,
+        od.bend_radius,
+        concat(IFNULL(od.processing_note,''), IFNULL(od.remarks,'')) as remarks,
+        od.other_columns,
+        round(ogd.child_width) as width,
+        round(ogd.child_height) as height,
+        pd.separation
+        <if test="technologyNumber != 0">
+            ,fc.technology_number
+        </if>
+        from pp.flow_card as fc
+        left join sd.order_glass_detail as ogd
+        on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+        fc.technology_number = ogd.technology_number
+        left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+        left join sd.product_detail as pd
+        on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
+        where fc.process_id = #{processId}
+        <if test="technologyNumber != 0">
+            and a.layer = #{technologyNumber}
+        </if>
+        <if test="technologyNumber != 0">
+            and position(fc.technology_number in #{technologyNumber})
+        </if>
+        <if test="technologyNumber != 0">
+            group by fc.process_id, fc.order_number, fc.technology_number
+        </if>
+        <if test="technologyNumber == 0">
+            group by fc.process_id, fc.order_number
+        </if>
+        order by IF(sort != NULL || sort != '', sort, fc.order_number)
+
+    </select>
+
+    <select id="selectProject" resultType="java.util.Map">
+        select o.customer_name,
+               o.project,
+               (select process
+                from sd.order_glass_detail
+                where order_id = fc.order_id
+                  and order_number = fc.order_number
+                  and technology_number = fc.technology_number) as process,
+               od.edging_type,
+               (select glass_child
+                from sd.order_glass_detail
+                where order_id = fc.order_id
+                  and order_number = fc.order_number
+                  and technology_number = fc.technology_number) as glass_child,
+               od.product_name,
+               o.processing_note,
+               fc.process_id,
+               SUM(od.quantity)                                 as quantity,
+               round(SUM(ogd.total_area), 2)                    as gross_area,
+               sum(od.weight)                                   as weight,
+               1                                                as technologyNumber,
+               concat(fc.process_id, '/', 1)                    as processIdNumber,
+               concat('瀵瑰簲鎴戝徃鍗曞彿', o.batch)                        AS otherRemarks
+        from pp.flow_card as fc
+                 left join sd.order_glass_detail as ogd
+                           on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+                              fc.technology_number = ogd.technology_number
+                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+                 left join sd.`order` as o on o.order_id = fc.order_id
+                 left join sd.product as p on p.id = od.product_id
+                 left join (select ogd.order_id,
+                                   ogd.order_number,
+                                   ogd.technology_number,
+                                   ogd.glass_child,
+                                   GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+                            from sd.order_glass_detail as ogd
+                            where ogd.order_id = left (#{processId}
+                                , 10)
+                              and position(ogd.technology_number in #{technologyNumber})
+                            GROUP BY order_id, order_number) as ogdc
+                           on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
+                              ogdc.technology_number = ogd.technology_number
+        where fc.process_id = #{processId}
+          and position(fc.technology_number in #{technologyNumber})
+        group by fc.process_id
+    </select>
+
+    <select id="selectLabel" resultType="java.util.Map">
+        select fc.process_id,
+               o.order_id,
+               o.project,
+               o.customer_id,
+               ogd.child_width                as width,
+               ogd.child_height               as height,
+               od.quantity,
+               od.order_number                as orderNumber,
+               fc.technology_number           as technologyNumber,
+               ogd.glass_child,
+               ogd.process,
+               c.customer_abbreviation        as customer_name,
+               ifnull(od.processing_note, '') as processing_note,
+               bgt.type_name,
+               od.other_columns,
+               od.building_number,
+               od.bend_radius
+        from sd.order as o
+                 left join sd.order_detail as od on o.order_id = od.order_id
+                 left join sd.order_glass_detail as ogd
+                           on ogd.order_id = od.order_id and ogd.order_number = od.order_number
+                 left join pp.flow_card as fc on o.order_id = fc.order_id and
+                                                 od.order_number = fc.order_number and
+                                                 fc.technology_number = ogd.technology_number
+                 left join sd.product pt on pt.id = od.product_id
+                 left join sd.customer c on c.id = o.customer_id
+                 left join sd.basic_glass_type bgt on bgt.type_id = pt.type_id
+        where fc.process_id = #{processId}
+          and fc.technology_number = #{technologyNumber}
+        group by od.order_number, od.width, od.height
+    </select>
+
+    <select id="flowCardReportForms" resultType="com.mes.pp.entity.dto.FlowCardDTO">
+        select a.product_name,
+               b.glass_child,
+               d.order_type,
+               concat(c.process_id, '/', c.technology_number)                   as process_id,
+               c.order_number,
+               c.technology_number,
+               a.width,
+               a.height,
+               c.quantity,
+               e.reportWorkQuantity,
+               e.reportWorkQuantityCount,
+               e.reportWorkTime,
+               e.brokenNum ,
+               ifnull(f.inventory, 0)                                           as inventory,
+               round(ifnull(f.inventory, 0) * a.area, 2)                        as inventoryArea,
+               ifnull(dd.quantity, 0)                                           as shippedQuantity,
+               ifnull(JSON_UNQUOTE(JSON_EXTRACT(a.other_columns, '$.S01')), '') AS glassNumber
+        from pp.flow_card as c
+                 left join
+             sd.order_detail as a
+             on c.order_id = a.order_id
+                 and c.order_number = a.order_number
+                 left join sd.order_glass_detail as b
+                           on c.order_id = b.order_id
+                               and b.order_number = c.order_number
+                               and c.technology_number = b.technology_number
+                 left join sd.`order` as d
+                           on c.order_id = d.order_id
+                 left join mm.finished_goods_inventory as f
+                           on c.order_id = f.order_id and f.order_number = c.order_number
+                 left join sd.delivery_detail as dd on dd.order_id = a.order_id and dd.order_number = a.order_number
+                 left join (SELECT process_id,
+                                   order_number,
+                                   technology_number,
+                                   ifnull(sum(a.broken_num),0) as brokenNum,
+                                   concat('{',
+                                          GROUP_CONCAT(concat('"', process, '":"', reporting_work_num, '"')),
+                                          '}'
+                                       )             as reportWorkQuantity,
+                                   concat('{',
+                                          GROUP_CONCAT(concat('"', process, '":"', reporting_work_num_count, '"')),
+                                          '}'
+                                       )             as reportWorkQuantityCount,
+                                   concat('{',
+                                          GROUP_CONCAT(concat('"', process, '":"', '"')),
+                                          '}'
+                                       )             as reportWorkTime
+                            FROM sd.order_process_detail as a
+                            where a.order_id = #{orderId}
+                            GROUP BY process_id, a.order_number, a.technology_number) as e
+                           on e.process_id = c.process_id
+                               and e.technology_number = c.technology_number
+                               and e.order_number = c.order_number
+        where a.order_id = #{orderId}
+          and d.create_order > 0
+        group by c.order_number,
+                 c.technology_number,
+                 c.process_id
+        order by c.process_id, c.order_number, c.technology_number
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/GlassInfoMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/GlassInfoMapper.xml
new file mode 100644
index 0000000..5d27b6a
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/GlassInfoMapper.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.glassinfo.mapper.GlassInfoMapper">
+
+    <select id="listBySize" resultType="com.mes.glassinfo.entity.dto.HollowGlassInfoDTO">
+        with glass_list as (
+            SELECT flow_card_id,
+                   glass_type,
+                   GREATEST(width, height) as width,
+                   least(width, height)    as height,
+                   thickness,
+                   filmsid,
+                   total_layer,
+                   layer,
+                   ismultiple,
+                   max_width,
+                   max_height,
+                   tempering_layout_id,
+                   tempering_feed_sequence,
+                   engineer_id,
+                   glass_id
+            FROM glass_info
+            where engineer_id = #{engineerId}
+        )
+        select row_number()
+                       over (order by flow_card_id, height desc, width desc, tempering_layout_id, tempering_feed_sequence) as rn,
+               t.*
+        from glass_list t
+
+    </select>
+</mapper>
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/LargenScreenMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/LargenScreenMapper.xml
new file mode 100644
index 0000000..14a179a
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/LargenScreenMapper.xml
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.largenscreen.mapper.LargenScreenMapper">
+
+    <resultMap id="baseMap" type="com.mes.largenscreen.entity.DailyProductionVO">
+        <result column="date" property="date"/>
+        <result column="count_out_one" property="countOutOne"/>
+        <result column="total_area_out_one" property="totalAreaOutOne"/>
+        <result column="count_out_two" property="countOutTwo"/>
+        <result column="total_area_out_two" property="totalAreaOutTwo"/>
+        <result column="count_in" property="countIn"/>
+        <result column="total_area_in" property="totalAreaIn"/>
+        <result column="count_out" property="countOut"/>
+        <result column="total_area_out" property="totalAreaOut"/>
+        <result column="hollow_count_out_one" property="hollowCountOutOne"/>
+        <result column="hollow_total_area_out_one" property="hollowTotalAreaOutOne"/>
+        <result column="hollow_count_out_two" property="hollowCountOutTwo"/>
+        <result column="hollow_total_area_out_two" property="hollowTotalAreaOutTwo"/>
+    </resultMap>
+
+    <select id="queryDailyProduction" resultMap="baseMap">
+        WITH RECURSIVE
+            date_series AS (
+                SELECT #{beginDate} AS date
+                UNION ALL
+                SELECT DATE_ADD(date, INTERVAL 1 DAY)
+                FROM date_series
+                WHERE date &lt;= DATE_SUB(#{endDate}, INTERVAL 1 DAY)
+            ),
+            one_edg_temp as (
+                select STR_TO_DATE(t.create_time, '%Y-%m-%d')        as product_date,
+                       count(t.glass_id_out)                         as
+                                                                        count_out_one,
+                       round(sum(t1.width * t1.height) / 1000000, 2) as total_area_out_one
+                from edg_storage_device_task_history t
+                         inner join glass_info t1 on t.glass_id_out = t1.glass_id
+                where t.task_type in
+                      (2, 3)
+                  and STR_TO_DATE(t.create_time, '%Y-%m-%d') BETWEEN #{beginDate} and #{endDate}
+                  and device_id = 1
+                group by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+                order by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+            ),
+            two_edg_temp as (
+                select STR_TO_DATE(t.create_time, '%Y-%m-%d')        as product_date,
+                       count(t.glass_id_out)                         as
+                                                                        count_out_two,
+                       round(sum(t1.width * t1.height) / 1000000, 2) as total_area_out_two
+                from edg_storage_device_task_history t
+                         inner join glass_info t1 on t.glass_id_out = t1.glass_id
+                where t.task_type in
+                      (2, 3)
+                  and STR_TO_DATE(t.create_time, '%Y-%m-%d') BETWEEN #{beginDate} and #{endDate}
+                  and device_id = 2
+                group by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+                order by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+            ),
+            big_storage_in_temp as (
+                select STR_TO_DATE(t.create_time, '%Y-%m-%d')        as product_date,
+                       count(t.glass_id)                             as
+                                                                        count_in,
+                       round(sum(t1.width * t1.height) / 1000000, 2) as total_area_in
+                from big_storage_cage_history_task t
+                         INNER JOIN glass_info t1 on t.glass_id = t1.glass_id
+                where t.task_type = 1
+                  and STR_TO_DATE(t.create_time, '%Y-%m-%d')
+                    BETWEEN #{beginDate} and #{endDate}
+                group by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+                order by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+            ),
+            big_storage_out_temp as (
+                select STR_TO_DATE(t.create_time, '%Y-%m-%d')        as product_date,
+                       count(t.glass_id)                             as
+                                                                        count_out,
+                       round(sum(t1.width * t1.height) / 1000000, 2) as total_area_out
+                from big_storage_cage_history_task t
+                         INNER JOIN glass_info t1 on t.glass_id = t1.glass_id
+                where t.task_type = 2
+                  and STR_TO_DATE(t.create_time, '%Y-%m-%d')
+                    BETWEEN #{beginDate} and #{endDate}
+                group by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+                order by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+            ),
+            hollow_out_one_temp as (
+                select STR_TO_DATE(t.create_time, '%Y-%m-%d')        as product_date,
+                       count(t.glass_id)                             as
+                                                                        hollow_count_out_one,
+                       round(sum(t1.width * t1.height) / 1000000, 2) as hollow_total_area_out_one
+                from hollow_big_storage_cage_history_task t
+                         INNER JOIN glass_info t1 on t.glass_id = t1.glass_id
+                where t.task_type =
+                      5
+                  and t.target_slot = 930
+                  and STR_TO_DATE(t.create_time, '%Y-%m-%d') BETWEEN #{beginDate} and #{endDate}
+                group by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+                order by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+            ),
+            hollow_out_two_temp as (
+                select STR_TO_DATE(t.create_time, '%Y-%m-%d')        as product_date,
+                       count(t.glass_id)                             as
+                                                                        hollow_count_out_two,
+                       round(sum(t1.width * t1.height) / 1000000, 2) as hollow_total_area_out_two
+                from hollow_big_storage_cage_history_task t
+                         INNER JOIN glass_info t1 on t.glass_id = t1.glass_id
+                where t.task_type =
+                      5
+                  and t.target_slot = 931
+                  and STR_TO_DATE(t.create_time, '%Y-%m-%d') BETWEEN #{beginDate} and #{endDate}
+                group by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+                order by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+            )
+        select t.date,
+               ifnull(t1.count_out_one, 0)        count_out_one,
+               ifnull(t1.total_area_out_one, 0)   total_area_out_one,
+               ifnull(t2.count_out_two, 0)        count_out_two,
+               ifnull(t2.total_area_out_two, 0)   total_area_out_two,
+               ifnull(t3.count_in, 0)             count_in,
+               ifnull(t3.total_area_in, 0)        total_area_in,
+               ifnull(t4.count_out, 0)            count_out,
+               ifnull(t4.total_area_out, 0)       total_area_out,
+               ifnull(t5.hollow_count_out_one, 0) hollow_count_out_one,
+               ifnull(t5.hollow_total_area_out_one, 0)
+                                                  hollow_total_area_out_one,
+               ifnull(t6.hollow_count_out_two, 0) hollow_count_out_two,
+               ifnull(t6.hollow_total_area_out_two, 0)
+                                                  hollow_total_area_out_two
+        from date_series t
+                 left join one_edg_temp t1 on t.date = t1.product_date
+                 left join two_edg_temp t2 on t.date =
+                                              t2.product_date
+                 left join big_storage_in_temp t3 on t.date = t3.product_date
+                 left join big_storage_out_temp t4 on t.date =
+                                                      t4.product_date
+                 left join hollow_out_one_temp t5 on t.date = t5.product_date
+                 left join hollow_out_two_temp t6 on t.date =
+                                                     t6.product_date
+        order by t.date
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/LoadGlassDeviceTaskMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/LoadGlassDeviceTaskMapper.xml
new file mode 100644
index 0000000..2cdaece
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/LoadGlassDeviceTaskMapper.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.opctask.mapper.LoadGlassDeviceTaskMapper">
+
+    <resultMap id="baseMap" type="com.mes.opctask.entity.LoadGlassDeviceTask">
+        <id column="task_running" property="taskRunning"/>
+        <result column="raw_glass_width" property="rawGlassWidth"/>
+        <result column="raw_glass_height" property="rawGlassHeight"/>
+        <result column="slot" property="slot"/>
+        <result column="task_state" property="taskState"/>
+        <result column="inkage_state" property="inkageState"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="total_count" property="totalCount"/>
+        <result column="finish_count" property="finishCount"/>
+        <result column="damage_count" property="damageCount"/>
+    </resultMap>
+
+    <select id="queryTaskMessage" resultMap="baseMap">
+        select *
+        from ${tableName}
+        limit 1
+    </select>
+
+    <update id="updateTaskMessage">
+        UPDATE ${tableName}
+        SET task_running     = #{task.taskRunning},
+            raw_glass_width  = #{task.rawGlassWidth},
+            raw_glass_height = #{task.rawGlassHeight},
+            slot             = #{task.slot},
+            total_count      = #{task.totalCount}
+    </update>
+
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/OptimizeProjectMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/OptimizeProjectMapper.xml
new file mode 100644
index 0000000..0c7707c
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/OptimizeProjectMapper.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.pp.mapper.OptimizeProjectMapper">
+
+    <resultMap id="sequenceMap" type="com.mes.uppattenusage.entity.UpPattenUsage">
+        <result property="engineeringId" column="project_no"/>
+        <result property="filmsId" column="glass_type"/>
+        <result property="width" column="width"/>
+        <result property="height" column="height"/>
+        <result property="thickness" column="glass_thickness"/>
+        <result property="layoutSequence" column="heat_layout_sort"/>
+        <result property="state" column="state"/>
+
+    </resultMap>
+
+    <select id="saveProject" parameterType="com.mes.pp.entity.request.OptimizeRequest" resultMap="sequenceMap">
+        select a.project_no, 1 as glass_type, a.width, a.height, REGEXP_REPLACE(b.glass_thickness, '\\D', '')as glass_thickness, a.heat_layout_sort, 0 as state
+        from optimize_detail a
+                 left join optimize_project b on a.project_no = b.project_no
+        where a.project_no = #{projectNo}
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/OrderMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/OrderMapper.xml
new file mode 100644
index 0000000..521aeff
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/OrderMapper.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.order.mapper.OrdersMapper">
+    <resultMap id="baseMap" type="com.mes.order.entity.dto.OrderDTO">
+        <result column="order_id" property="orderId"/>
+        <result column="customer_name" property="customerName"/>
+        <result column="project" property="project"/>
+        <result column="area" property="area"/>
+        <result column="quantity" property="quantity"/>
+        <result column="create_time" property="createTime"/>
+        <result column="percent" property="percent"/>
+    </resultMap>
+    <select id="selectOrderPercent" resultMap="baseMap">
+        SELECT a.order_id,
+               a.customer_name,
+               a.project,
+               a.area,
+               a.quantity,
+               a.create_time,
+               round(ifnull(d.finishNum, 0) / a.quantity * 100) as 'percent'
+        from sd.`order` as a
+                 LEFT JOIN (
+            SELECT sum(c.reporting_work_num) as 'finishNum',order_id
+            from sd.order_process_detail as c
+            where c.id in (
+                SELECT max(id) from sd.order_process_detail as b GROUP BY b.process_id, order_number
+            )
+            GROUP BY c.order_id
+        ) as d
+                           on a.order_id = d.order_id
+        where a.warehousing != 2 and a.warehousing > 0
+    </select>
+</mapper>
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/RawGlassStorageDetailsMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/RawGlassStorageDetailsMapper.xml
new file mode 100644
index 0000000..e84942f
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/RawGlassStorageDetailsMapper.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.rawglassdetails.mapper.RawGlassStorageDetailsMapper">
+
+    <resultMap id="baseMap" type="com.mes.rawglassdetails.entity.RawGlassStorageDetails">
+        <result column="DEVICE_ID" property="deviceId"/>
+        <result column="SLOT" property="slot"/>
+    </resultMap>
+    <resultMap id="RawGlassStorageDetailsDTO" type="com.mes.rawglassdetails.entity.dto.RawGlassStorageDetailsDTO">
+        <result property="patternWidth" column="pattern_width"/>
+        <result property="patternHeight" column="pattern_height"/>
+        <result property="patternThickness" column="pattern_thickness"/>
+        <result property="filmsId" column="films_id"/>
+        <result property="count" column="count"/>
+        <result property="finishCount" column="finishCount"/>
+        <result property="damageCount" column="damageCount"/>
+        <!-- 濡傛灉鏈夊叾浠栧瓧娈碉紝璇风户缁坊鍔� -->
+    </resultMap>
+
+
+    <select id="listBySlotState" resultMap="baseMap">
+        SELECT
+        T.SLOT,
+        T.DEVICE_ID
+        FROM
+        RAW_GLASS_STORAGE_STATION T
+        LEFT JOIN RAW_GLASS_STORAGE_DETAILS AS T1 ON T.DEVICE_ID = T1.DEVICE_ID
+        AND T.SLOT = T1.SLOT
+        AND T1.STATE IN
+        <foreach collection="state" item="item" open='(' close=')' separator=','>
+            #{item}
+        </foreach>
+        WHERE
+        T.ENABLE_STATE = 1
+        AND T.DEVICE_ID IN
+        <foreach collection="leftingStation" item="item" open='(' close=')' separator=','>
+            #{item}
+        </foreach>
+        AND T1.SLOT IS NULL
+    </select>
+
+    <select id="patternUsage" resultMap="RawGlassStorageDetailsDTO">
+        select rgsd.pattern_width,
+        rgsd.pattern_height,
+        rgsd.pattern_thickness,
+        rgsd.films_id,
+        ifnull(rgsd.count,0) + ifnull(sum(lgdth.finish_count),0) + ifnull(sum(damage_count),0) as totalCount,
+        ifnull(rgsd.count,0) as count,
+        ifnull(sum(lgdth.finish_count),0) as finishCount,
+        ifnull(sum(damage_count),0) as damageCount
+        from (select pattern_width,
+        pattern_height,
+        pattern_thickness,
+        films_id,
+        sum(case when state = 100 then remain_quantity else 0 end) as count
+        from raw_glass_storage_details
+        group by pattern_width, pattern_height, pattern_thickness, films_id) as rgsd
+        left JOIN load_glass_device_task_history as lgdth
+        on rgsd.pattern_width = lgdth.raw_glass_width
+        and rgsd.pattern_height = lgdth.raw_glass_height
+        and rgsd.pattern_thickness = lgdth.raw_glass_thickness
+        and rgsd.films_id = lgdth.raw_glass_films_id
+        <where>
+            1=1
+            <if test="width != null and width != ''">
+                and rgsd.pattern_width like concat('%', #{width}, '%')
+            </if>
+            <if test="height != null and height != ''">
+                and rgsd.pattern_height like concat('%', #{height}, '%')
+            </if>
+            <if test="thickness != null and thickness != ''">
+                and rgsd.pattern_thickness like concat('%', #{thickness}, '%')
+            </if>
+            <if test="films != null and films != ''">
+                and rgsd.films_id like concat('%', #{films}, '%')
+            </if>
+        </where>
+        group by rgsd.pattern_width, rgsd.pattern_height, rgsd.pattern_thickness, rgsd.films_id
+    </select>
+</mapper>
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/RawGlassStorageStationMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/RawGlassStorageStationMapper.xml
new file mode 100644
index 0000000..56c2e88
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/RawGlassStorageStationMapper.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.rawglassstation.mapper.RawGlassStorageStationMapper">
+
+    <resultMap id="baseMap" type="com.mes.rawglassdetails.entity.RawGlassStorageDetails">
+        <result column="device_id" property="deviceId"/>
+        <result column="slot" property="slot"/>
+        <result column="pattern_width" property="patternWidth"/>
+        <result column="pattern_height" property="patternHeight"/>
+        <result column="pattern_thickness" property="patternThickness"/>
+        <result column="films_id" property="filmsId"/>
+        <result column="create_time" property="createTime"/>
+        <result column="remain_quantity" property="remainQuantity"/>
+        <result column="enable_state" property="state"/>
+    </resultMap>
+
+
+    <select id="listRawGlassDetails" resultMap="baseMap">
+        SELECT T.DEVICE_ID,
+               T.SLOT,
+               T1.PATTERN_WIDTH,
+               T1.PATTERN_HEIGHT,
+               T1.PATTERN_THICKNESS,
+               T1.FILMS_ID,
+               T1.CREATE_TIME,
+               T1.REMAIN_QUANTITY,
+               T.ENABLE_STATE
+        FROM RAW_GLASS_STORAGE_STATION T
+                 LEFT JOIN RAW_GLASS_STORAGE_DETAILS T1 ON T.DEVICE_ID = T1.DEVICE_ID
+            AND T.SLOT = T1.SLOT
+            AND T1.STATE = 100
+    </select>
+</mapper>
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml
new file mode 100644
index 0000000..55b503b
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.temperingglass.mapper.TemperingGlassInfoMapper">
+    <insert id="saveBatch">
+        INSERT INTO tempering_glass_info (glass_id, flow_card_id, glass_type, width, height, thickness, films_id,
+        ishorizontal, tempering_layout_id,
+        tempering_feed_sequence, x_coordinate, y_coordinate, angle, state, slot, engineer_id, deleted) VALUES
+        <foreach collection="list" item="item" separator=",">
+            (#{item.glassId}, #{item.flowCardId}, #{item.glassType}, #{item.width}, #{item.height}, #{item.thickness},
+            #{item.filmsId},#{item.ishorizontal},
+            #{item.temperingLayoutId}, #{item.temperingFeedSequence}, #{item.xCoordinate}, #{item.yCoordinate},
+            #{item.angle}, #{item.state}, #{item.slot}, #{item.engineerId}, 0)
+        </foreach>
+    </insert>
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/UpPattenUsageMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/UpPattenUsageMapper.xml
new file mode 100644
index 0000000..e19a528
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/UpPattenUsageMapper.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.uppattenusage.mapper.UpPattenUsageMapper">
+
+    <resultMap id="baseMap" type="com.mes.uppattenusage.entity.vo.UpPattenUsageVO">
+        <result column="id" property="id"/>
+        <result column="engineering_id" property="engineeringId"/>
+        <result column="films_id" property="filmsId"/>
+        <result column="width" property="width"/>
+        <result column="height" property="height"/>
+        <result column="thickness" property="thickness"/>
+        <result column="layout_sequence" property="layoutSequence"/>
+        <result column="state" property="state"/>
+        <result column="group_number" property="groupNumber"/>
+    </resultMap>
+    <select id="queryRawGlassByEngineeringId" resultMap="baseMap">
+        SET @prev_width := NULL;
+        SET @prev_height := NULL;
+        SET @counter := 0;
+        SELECT t.*,
+               @counter := IF(@prev_width = width and @prev_height = height, @counter, @counter + 1) AS group_number,
+               @prev_width := width,
+               @prev_height := height
+        FROM up_patten_usage t
+        where t.engineering_id = #{engineeringId}
+          and t.state = 0
+        ORDER BY t.layout_sequence
+    </select>
+    <select id="queryFinishByEngineering" resultType="java.lang.Integer">
+        SELECT id
+        FROM up_patten_usage
+        WHERE engineering_id IN (SELECT engineer_id FROM engineering WHERE station_cell = #{stationCell} AND state = 1)
+          and state = 0
+        order by id
+        LIMIT ${finishCount}
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/target/classes/application.yml b/hangzhoumesParent/common/servicebase/target/classes/application.yml
new file mode 100644
index 0000000..0edfb92
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/target/classes/application.yml
@@ -0,0 +1,8 @@
+mybatis-plus-join:
+  sub-table-logic: true
+mybatis-plus:
+  global-config:
+    db-config:
+      logic-delete-field: deleted
+      logic-delete-value: 1
+      logic-not-delete-value: 0
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/target/classes/banner.txt b/hangzhoumesParent/common/servicebase/target/classes/banner.txt
new file mode 100644
index 0000000..b4027f0
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/target/classes/banner.txt
@@ -0,0 +1,32 @@
+________                ________                 ___       _____________   ____
+`MMMMMMMb.          68b `MMMMMMMb.               `MMb     dMM'`MMMMMMMMM  6MMMMb\
+ MM    `Mb          Y89  MM    `Mb                MMM.   ,PMM  MM      \ 6M'    `
+ MM     MM   ____   ___  MM     MM   _____        M`Mb   d'MM  MM        MM
+ MM    .M9  6MMMMb  `MM  MM    .M9  6MMMMMb       M YM. ,P MM  MM    ,   YM.
+ MMMMMMM(  6M'  `Mb  MM  MMMMMMM(  6M'   `Mb      M `Mb d' MM  MMMMMMM    YMMMMb
+ MM    `Mb MM    MM  MM  MM    `Mb MM     MM      M  YM.P  MM  MM    `        `Mb
+ MM     MM MMMMMMMM  MM  MM     MM MM     MM      M  `Mb'  MM  MM              MM
+ MM     MM MM        MM  MM     MM MM     MM      M   YP   MM  MM              MM
+ MM    .M9 YM    d9  MM  MM    .M9 YM.   ,M9 68b  M   `'   MM  MM      / L    ,M9
+_MMMMMMM9'  YMMMM9  _MM__MMMMMMM9'  YMMMMM9  Y89 _M_      _MM__MMMMMMMMM MYMMMM9
+
+//                          _ooOoo_                               //
+//                         o8888888o                              //
+//                         88" . "88                              //
+//                         (| ^_^ |)                              //
+//                         O\  =  /O                              //
+//                      ____/`---'\____                           //
+//                    .'  \\|     |//  `.                         //
+//                   /  \\|||  :  |||//  \                        //
+//                  /  _||||| -:- |||||-  \                       //
+//                  |   | \\\  -  /// |   |                       //
+//                  | \_|  ''\---/''  |   |                       //
+//                  \  .-\__  `-`  ___/-. /                       //
+//                ___`. .'  /--.--\  `. . ___                     //
+//              ."" '<  `.___\_<|>_/___.'  >'"".                  //
+//            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //
+//            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //
+//      ========`-.____`-.___\_____/___.-`____.-'========         //
+//                           `=---='                              //
+//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //
+//            浣涚淇濅綉       姘镐笉瀹曟満      姘告棤BUG                銆�銆�//
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/target/classes/mapper/BigStorageCageTaskMapper.xml b/hangzhoumesParent/common/servicebase/target/classes/mapper/BigStorageCageTaskMapper.xml
new file mode 100644
index 0000000..ca5269d
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/target/classes/mapper/BigStorageCageTaskMapper.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.bigstoragecagetask.mapper.BigStorageCageTaskMapper">
+
+    <resultMap id="baseMap" type="com.mes.bigstoragecagetask.entity.BigStorageCageTask">
+        <result column="glass_id" property="glassId"/>
+        <result column="start_slot" property="startSlot"/>
+        <result column="target_slot" property="targetSlot"/>
+        <result column="task_state" property="taskState"/>
+    </resultMap>
+    <insert id="saveTaskMessage">
+        INSERT INTO ${tableName} (glass_id, start_slot, target_slot,task_state)
+        VALUES
+        <foreach collection="list" item="item" index="index" separator=",">
+            (#{item.glassId}, #{item.startSlot},#{item.targetSlot},#{item.taskState})
+        </foreach>
+    </insert>
+    <delete id="removeAll">
+        delete
+        from ${tableName}
+    </delete>
+
+    <select id="queryTaskMessage" resultMap="baseMap">
+        select *
+        from ${tableName}
+        where glass_id is not null
+          and glass_id != ''
+    </select>
+
+
+    <update id="updateTaskMessage">
+        UPDATE ${tableName}
+        SET target_slot = #{task.targetSlot}
+        where glass_id = #{task.glassId}
+    </update>
+
+    <update id="updateOutTaskMessage">
+        UPDATE ${tableName}
+        SET glass_id    = ''
+          , start_slot  = 0
+          , target_slot = 0
+          , task_state  = 0
+    </update>
+
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/target/classes/mapper/FlowCardMapper.xml b/hangzhoumesParent/common/servicebase/target/classes/mapper/FlowCardMapper.xml
new file mode 100644
index 0000000..62b8661
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/target/classes/mapper/FlowCardMapper.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.pp.mapper.FlowCardMapper">
+
+
+    <select id="selectFlowCard" resultType="java.util.Map">
+        select fc.order_number,
+        concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
+        od.quantity,
+        round(ogd.total_area, 2) as total_area,
+        od.perimeter,
+        od.bend_radius,
+        concat(IFNULL(od.processing_note,''), IFNULL(od.remarks,'')) as remarks,
+        od.other_columns,
+        round(ogd.child_width) as width,
+        round(ogd.child_height) as height,
+        pd.separation
+        <if test="technologyNumber != 0">
+            ,fc.technology_number
+        </if>
+        from pp.flow_card as fc
+        left join sd.order_glass_detail as ogd
+        on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+        fc.technology_number = ogd.technology_number
+        left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+        left join sd.product_detail as pd
+        on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
+        where fc.process_id = #{processId}
+        <if test="technologyNumber != 0">
+            and a.layer = #{technologyNumber}
+        </if>
+        <if test="technologyNumber != 0">
+            and position(fc.technology_number in #{technologyNumber})
+        </if>
+        <if test="technologyNumber != 0">
+            group by fc.process_id, fc.order_number, fc.technology_number
+        </if>
+        <if test="technologyNumber == 0">
+            group by fc.process_id, fc.order_number
+        </if>
+        order by IF(sort != NULL || sort != '', sort, fc.order_number)
+
+    </select>
+
+    <select id="selectProject" resultType="java.util.Map">
+        select o.customer_name,
+               o.project,
+               (select process
+                from sd.order_glass_detail
+                where order_id = fc.order_id
+                  and order_number = fc.order_number
+                  and technology_number = fc.technology_number) as process,
+               od.edging_type,
+               (select glass_child
+                from sd.order_glass_detail
+                where order_id = fc.order_id
+                  and order_number = fc.order_number
+                  and technology_number = fc.technology_number) as glass_child,
+               od.product_name,
+               o.processing_note,
+               fc.process_id,
+               SUM(od.quantity)                                 as quantity,
+               round(SUM(ogd.total_area), 2)                    as gross_area,
+               sum(od.weight)                                   as weight,
+               1                                                as technologyNumber,
+               concat(fc.process_id, '/', 1)                    as processIdNumber,
+               concat('瀵瑰簲鎴戝徃鍗曞彿', o.batch)                        AS otherRemarks
+        from pp.flow_card as fc
+                 left join sd.order_glass_detail as ogd
+                           on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+                              fc.technology_number = ogd.technology_number
+                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+                 left join sd.`order` as o on o.order_id = fc.order_id
+                 left join sd.product as p on p.id = od.product_id
+                 left join (select ogd.order_id,
+                                   ogd.order_number,
+                                   ogd.technology_number,
+                                   ogd.glass_child,
+                                   GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+                            from sd.order_glass_detail as ogd
+                            where ogd.order_id = left (#{processId}
+                                , 10)
+                              and position(ogd.technology_number in #{technologyNumber})
+                            GROUP BY order_id, order_number) as ogdc
+                           on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
+                              ogdc.technology_number = ogd.technology_number
+        where fc.process_id = #{processId}
+          and position(fc.technology_number in #{technologyNumber})
+        group by fc.process_id
+    </select>
+
+    <select id="selectLabel" resultType="java.util.Map">
+        select fc.process_id,
+               o.order_id,
+               o.project,
+               o.customer_id,
+               ogd.child_width                as width,
+               ogd.child_height               as height,
+               od.quantity,
+               od.order_number                as orderNumber,
+               fc.technology_number           as technologyNumber,
+               ogd.glass_child,
+               ogd.process,
+               c.customer_abbreviation        as customer_name,
+               ifnull(od.processing_note, '') as processing_note,
+               bgt.type_name,
+               od.other_columns,
+               od.building_number,
+               od.bend_radius
+        from sd.order as o
+                 left join sd.order_detail as od on o.order_id = od.order_id
+                 left join sd.order_glass_detail as ogd
+                           on ogd.order_id = od.order_id and ogd.order_number = od.order_number
+                 left join pp.flow_card as fc on o.order_id = fc.order_id and
+                                                 od.order_number = fc.order_number and
+                                                 fc.technology_number = ogd.technology_number
+                 left join sd.product pt on pt.id = od.product_id
+                 left join sd.customer c on c.id = o.customer_id
+                 left join sd.basic_glass_type bgt on bgt.type_id = pt.type_id
+        where fc.process_id = #{processId}
+          and fc.technology_number = #{technologyNumber}
+        group by od.order_number, od.width, od.height
+    </select>
+
+    <select id="flowCardReportForms" resultType="com.mes.pp.entity.dto.FlowCardDTO">
+        select a.product_name,
+               b.glass_child,
+               d.order_type,
+               concat(c.process_id, '/', c.technology_number)                   as process_id,
+               c.order_number,
+               c.technology_number,
+               a.width,
+               a.height,
+               c.quantity,
+               e.reportWorkQuantity,
+               e.reportWorkQuantityCount,
+               e.reportWorkTime,
+               e.brokenNum ,
+               ifnull(f.inventory, 0)                                           as inventory,
+               round(ifnull(f.inventory, 0) * a.area, 2)                        as inventoryArea,
+               ifnull(dd.quantity, 0)                                           as shippedQuantity,
+               ifnull(JSON_UNQUOTE(JSON_EXTRACT(a.other_columns, '$.S01')), '') AS glassNumber
+        from pp.flow_card as c
+                 left join
+             sd.order_detail as a
+             on c.order_id = a.order_id
+                 and c.order_number = a.order_number
+                 left join sd.order_glass_detail as b
+                           on c.order_id = b.order_id
+                               and b.order_number = c.order_number
+                               and c.technology_number = b.technology_number
+                 left join sd.`order` as d
+                           on c.order_id = d.order_id
+                 left join mm.finished_goods_inventory as f
+                           on c.order_id = f.order_id and f.order_number = c.order_number
+                 left join sd.delivery_detail as dd on dd.order_id = a.order_id and dd.order_number = a.order_number
+                 left join (SELECT process_id,
+                                   order_number,
+                                   technology_number,
+                                   ifnull(sum(a.broken_num),0) as brokenNum,
+                                   concat('{',
+                                          GROUP_CONCAT(concat('"', process, '":"', reporting_work_num, '"')),
+                                          '}'
+                                       )             as reportWorkQuantity,
+                                   concat('{',
+                                          GROUP_CONCAT(concat('"', process, '":"', reporting_work_num_count, '"')),
+                                          '}'
+                                       )             as reportWorkQuantityCount,
+                                   concat('{',
+                                          GROUP_CONCAT(concat('"', process, '":"', '"')),
+                                          '}'
+                                       )             as reportWorkTime
+                            FROM sd.order_process_detail as a
+                            where a.order_id = #{orderId}
+                            GROUP BY process_id, a.order_number, a.technology_number) as e
+                           on e.process_id = c.process_id
+                               and e.technology_number = c.technology_number
+                               and e.order_number = c.order_number
+        where a.order_id = #{orderId}
+          and d.create_order > 0
+        group by c.order_number,
+                 c.technology_number,
+                 c.process_id
+        order by c.process_id, c.order_number, c.technology_number
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/target/classes/mapper/GlassInfoMapper.xml b/hangzhoumesParent/common/servicebase/target/classes/mapper/GlassInfoMapper.xml
new file mode 100644
index 0000000..5d27b6a
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/target/classes/mapper/GlassInfoMapper.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.glassinfo.mapper.GlassInfoMapper">
+
+    <select id="listBySize" resultType="com.mes.glassinfo.entity.dto.HollowGlassInfoDTO">
+        with glass_list as (
+            SELECT flow_card_id,
+                   glass_type,
+                   GREATEST(width, height) as width,
+                   least(width, height)    as height,
+                   thickness,
+                   filmsid,
+                   total_layer,
+                   layer,
+                   ismultiple,
+                   max_width,
+                   max_height,
+                   tempering_layout_id,
+                   tempering_feed_sequence,
+                   engineer_id,
+                   glass_id
+            FROM glass_info
+            where engineer_id = #{engineerId}
+        )
+        select row_number()
+                       over (order by flow_card_id, height desc, width desc, tempering_layout_id, tempering_feed_sequence) as rn,
+               t.*
+        from glass_list t
+
+    </select>
+</mapper>
diff --git a/hangzhoumesParent/common/servicebase/target/classes/mapper/LargenScreenMapper.xml b/hangzhoumesParent/common/servicebase/target/classes/mapper/LargenScreenMapper.xml
new file mode 100644
index 0000000..14a179a
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/target/classes/mapper/LargenScreenMapper.xml
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.largenscreen.mapper.LargenScreenMapper">
+
+    <resultMap id="baseMap" type="com.mes.largenscreen.entity.DailyProductionVO">
+        <result column="date" property="date"/>
+        <result column="count_out_one" property="countOutOne"/>
+        <result column="total_area_out_one" property="totalAreaOutOne"/>
+        <result column="count_out_two" property="countOutTwo"/>
+        <result column="total_area_out_two" property="totalAreaOutTwo"/>
+        <result column="count_in" property="countIn"/>
+        <result column="total_area_in" property="totalAreaIn"/>
+        <result column="count_out" property="countOut"/>
+        <result column="total_area_out" property="totalAreaOut"/>
+        <result column="hollow_count_out_one" property="hollowCountOutOne"/>
+        <result column="hollow_total_area_out_one" property="hollowTotalAreaOutOne"/>
+        <result column="hollow_count_out_two" property="hollowCountOutTwo"/>
+        <result column="hollow_total_area_out_two" property="hollowTotalAreaOutTwo"/>
+    </resultMap>
+
+    <select id="queryDailyProduction" resultMap="baseMap">
+        WITH RECURSIVE
+            date_series AS (
+                SELECT #{beginDate} AS date
+                UNION ALL
+                SELECT DATE_ADD(date, INTERVAL 1 DAY)
+                FROM date_series
+                WHERE date &lt;= DATE_SUB(#{endDate}, INTERVAL 1 DAY)
+            ),
+            one_edg_temp as (
+                select STR_TO_DATE(t.create_time, '%Y-%m-%d')        as product_date,
+                       count(t.glass_id_out)                         as
+                                                                        count_out_one,
+                       round(sum(t1.width * t1.height) / 1000000, 2) as total_area_out_one
+                from edg_storage_device_task_history t
+                         inner join glass_info t1 on t.glass_id_out = t1.glass_id
+                where t.task_type in
+                      (2, 3)
+                  and STR_TO_DATE(t.create_time, '%Y-%m-%d') BETWEEN #{beginDate} and #{endDate}
+                  and device_id = 1
+                group by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+                order by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+            ),
+            two_edg_temp as (
+                select STR_TO_DATE(t.create_time, '%Y-%m-%d')        as product_date,
+                       count(t.glass_id_out)                         as
+                                                                        count_out_two,
+                       round(sum(t1.width * t1.height) / 1000000, 2) as total_area_out_two
+                from edg_storage_device_task_history t
+                         inner join glass_info t1 on t.glass_id_out = t1.glass_id
+                where t.task_type in
+                      (2, 3)
+                  and STR_TO_DATE(t.create_time, '%Y-%m-%d') BETWEEN #{beginDate} and #{endDate}
+                  and device_id = 2
+                group by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+                order by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+            ),
+            big_storage_in_temp as (
+                select STR_TO_DATE(t.create_time, '%Y-%m-%d')        as product_date,
+                       count(t.glass_id)                             as
+                                                                        count_in,
+                       round(sum(t1.width * t1.height) / 1000000, 2) as total_area_in
+                from big_storage_cage_history_task t
+                         INNER JOIN glass_info t1 on t.glass_id = t1.glass_id
+                where t.task_type = 1
+                  and STR_TO_DATE(t.create_time, '%Y-%m-%d')
+                    BETWEEN #{beginDate} and #{endDate}
+                group by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+                order by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+            ),
+            big_storage_out_temp as (
+                select STR_TO_DATE(t.create_time, '%Y-%m-%d')        as product_date,
+                       count(t.glass_id)                             as
+                                                                        count_out,
+                       round(sum(t1.width * t1.height) / 1000000, 2) as total_area_out
+                from big_storage_cage_history_task t
+                         INNER JOIN glass_info t1 on t.glass_id = t1.glass_id
+                where t.task_type = 2
+                  and STR_TO_DATE(t.create_time, '%Y-%m-%d')
+                    BETWEEN #{beginDate} and #{endDate}
+                group by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+                order by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+            ),
+            hollow_out_one_temp as (
+                select STR_TO_DATE(t.create_time, '%Y-%m-%d')        as product_date,
+                       count(t.glass_id)                             as
+                                                                        hollow_count_out_one,
+                       round(sum(t1.width * t1.height) / 1000000, 2) as hollow_total_area_out_one
+                from hollow_big_storage_cage_history_task t
+                         INNER JOIN glass_info t1 on t.glass_id = t1.glass_id
+                where t.task_type =
+                      5
+                  and t.target_slot = 930
+                  and STR_TO_DATE(t.create_time, '%Y-%m-%d') BETWEEN #{beginDate} and #{endDate}
+                group by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+                order by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+            ),
+            hollow_out_two_temp as (
+                select STR_TO_DATE(t.create_time, '%Y-%m-%d')        as product_date,
+                       count(t.glass_id)                             as
+                                                                        hollow_count_out_two,
+                       round(sum(t1.width * t1.height) / 1000000, 2) as hollow_total_area_out_two
+                from hollow_big_storage_cage_history_task t
+                         INNER JOIN glass_info t1 on t.glass_id = t1.glass_id
+                where t.task_type =
+                      5
+                  and t.target_slot = 931
+                  and STR_TO_DATE(t.create_time, '%Y-%m-%d') BETWEEN #{beginDate} and #{endDate}
+                group by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+                order by STR_TO_DATE(t.create_time, '%Y-%m-%d')
+            )
+        select t.date,
+               ifnull(t1.count_out_one, 0)        count_out_one,
+               ifnull(t1.total_area_out_one, 0)   total_area_out_one,
+               ifnull(t2.count_out_two, 0)        count_out_two,
+               ifnull(t2.total_area_out_two, 0)   total_area_out_two,
+               ifnull(t3.count_in, 0)             count_in,
+               ifnull(t3.total_area_in, 0)        total_area_in,
+               ifnull(t4.count_out, 0)            count_out,
+               ifnull(t4.total_area_out, 0)       total_area_out,
+               ifnull(t5.hollow_count_out_one, 0) hollow_count_out_one,
+               ifnull(t5.hollow_total_area_out_one, 0)
+                                                  hollow_total_area_out_one,
+               ifnull(t6.hollow_count_out_two, 0) hollow_count_out_two,
+               ifnull(t6.hollow_total_area_out_two, 0)
+                                                  hollow_total_area_out_two
+        from date_series t
+                 left join one_edg_temp t1 on t.date = t1.product_date
+                 left join two_edg_temp t2 on t.date =
+                                              t2.product_date
+                 left join big_storage_in_temp t3 on t.date = t3.product_date
+                 left join big_storage_out_temp t4 on t.date =
+                                                      t4.product_date
+                 left join hollow_out_one_temp t5 on t.date = t5.product_date
+                 left join hollow_out_two_temp t6 on t.date =
+                                                     t6.product_date
+        order by t.date
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/target/classes/mapper/LoadGlassDeviceTaskMapper.xml b/hangzhoumesParent/common/servicebase/target/classes/mapper/LoadGlassDeviceTaskMapper.xml
new file mode 100644
index 0000000..2cdaece
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/target/classes/mapper/LoadGlassDeviceTaskMapper.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.opctask.mapper.LoadGlassDeviceTaskMapper">
+
+    <resultMap id="baseMap" type="com.mes.opctask.entity.LoadGlassDeviceTask">
+        <id column="task_running" property="taskRunning"/>
+        <result column="raw_glass_width" property="rawGlassWidth"/>
+        <result column="raw_glass_height" property="rawGlassHeight"/>
+        <result column="slot" property="slot"/>
+        <result column="task_state" property="taskState"/>
+        <result column="inkage_state" property="inkageState"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="total_count" property="totalCount"/>
+        <result column="finish_count" property="finishCount"/>
+        <result column="damage_count" property="damageCount"/>
+    </resultMap>
+
+    <select id="queryTaskMessage" resultMap="baseMap">
+        select *
+        from ${tableName}
+        limit 1
+    </select>
+
+    <update id="updateTaskMessage">
+        UPDATE ${tableName}
+        SET task_running     = #{task.taskRunning},
+            raw_glass_width  = #{task.rawGlassWidth},
+            raw_glass_height = #{task.rawGlassHeight},
+            slot             = #{task.slot},
+            total_count      = #{task.totalCount}
+    </update>
+
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/target/classes/mapper/OptimizeProjectMapper.xml b/hangzhoumesParent/common/servicebase/target/classes/mapper/OptimizeProjectMapper.xml
new file mode 100644
index 0000000..0c7707c
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/target/classes/mapper/OptimizeProjectMapper.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.pp.mapper.OptimizeProjectMapper">
+
+    <resultMap id="sequenceMap" type="com.mes.uppattenusage.entity.UpPattenUsage">
+        <result property="engineeringId" column="project_no"/>
+        <result property="filmsId" column="glass_type"/>
+        <result property="width" column="width"/>
+        <result property="height" column="height"/>
+        <result property="thickness" column="glass_thickness"/>
+        <result property="layoutSequence" column="heat_layout_sort"/>
+        <result property="state" column="state"/>
+
+    </resultMap>
+
+    <select id="saveProject" parameterType="com.mes.pp.entity.request.OptimizeRequest" resultMap="sequenceMap">
+        select a.project_no, 1 as glass_type, a.width, a.height, REGEXP_REPLACE(b.glass_thickness, '\\D', '')as glass_thickness, a.heat_layout_sort, 0 as state
+        from optimize_detail a
+                 left join optimize_project b on a.project_no = b.project_no
+        where a.project_no = #{projectNo}
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/target/classes/mapper/OrderMapper.xml b/hangzhoumesParent/common/servicebase/target/classes/mapper/OrderMapper.xml
new file mode 100644
index 0000000..521aeff
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/target/classes/mapper/OrderMapper.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.order.mapper.OrdersMapper">
+    <resultMap id="baseMap" type="com.mes.order.entity.dto.OrderDTO">
+        <result column="order_id" property="orderId"/>
+        <result column="customer_name" property="customerName"/>
+        <result column="project" property="project"/>
+        <result column="area" property="area"/>
+        <result column="quantity" property="quantity"/>
+        <result column="create_time" property="createTime"/>
+        <result column="percent" property="percent"/>
+    </resultMap>
+    <select id="selectOrderPercent" resultMap="baseMap">
+        SELECT a.order_id,
+               a.customer_name,
+               a.project,
+               a.area,
+               a.quantity,
+               a.create_time,
+               round(ifnull(d.finishNum, 0) / a.quantity * 100) as 'percent'
+        from sd.`order` as a
+                 LEFT JOIN (
+            SELECT sum(c.reporting_work_num) as 'finishNum',order_id
+            from sd.order_process_detail as c
+            where c.id in (
+                SELECT max(id) from sd.order_process_detail as b GROUP BY b.process_id, order_number
+            )
+            GROUP BY c.order_id
+        ) as d
+                           on a.order_id = d.order_id
+        where a.warehousing != 2 and a.warehousing > 0
+    </select>
+</mapper>
diff --git a/hangzhoumesParent/common/servicebase/target/classes/mapper/RawGlassStorageDetailsMapper.xml b/hangzhoumesParent/common/servicebase/target/classes/mapper/RawGlassStorageDetailsMapper.xml
new file mode 100644
index 0000000..e84942f
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/target/classes/mapper/RawGlassStorageDetailsMapper.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.rawglassdetails.mapper.RawGlassStorageDetailsMapper">
+
+    <resultMap id="baseMap" type="com.mes.rawglassdetails.entity.RawGlassStorageDetails">
+        <result column="DEVICE_ID" property="deviceId"/>
+        <result column="SLOT" property="slot"/>
+    </resultMap>
+    <resultMap id="RawGlassStorageDetailsDTO" type="com.mes.rawglassdetails.entity.dto.RawGlassStorageDetailsDTO">
+        <result property="patternWidth" column="pattern_width"/>
+        <result property="patternHeight" column="pattern_height"/>
+        <result property="patternThickness" column="pattern_thickness"/>
+        <result property="filmsId" column="films_id"/>
+        <result property="count" column="count"/>
+        <result property="finishCount" column="finishCount"/>
+        <result property="damageCount" column="damageCount"/>
+        <!-- 濡傛灉鏈夊叾浠栧瓧娈碉紝璇风户缁坊鍔� -->
+    </resultMap>
+
+
+    <select id="listBySlotState" resultMap="baseMap">
+        SELECT
+        T.SLOT,
+        T.DEVICE_ID
+        FROM
+        RAW_GLASS_STORAGE_STATION T
+        LEFT JOIN RAW_GLASS_STORAGE_DETAILS AS T1 ON T.DEVICE_ID = T1.DEVICE_ID
+        AND T.SLOT = T1.SLOT
+        AND T1.STATE IN
+        <foreach collection="state" item="item" open='(' close=')' separator=','>
+            #{item}
+        </foreach>
+        WHERE
+        T.ENABLE_STATE = 1
+        AND T.DEVICE_ID IN
+        <foreach collection="leftingStation" item="item" open='(' close=')' separator=','>
+            #{item}
+        </foreach>
+        AND T1.SLOT IS NULL
+    </select>
+
+    <select id="patternUsage" resultMap="RawGlassStorageDetailsDTO">
+        select rgsd.pattern_width,
+        rgsd.pattern_height,
+        rgsd.pattern_thickness,
+        rgsd.films_id,
+        ifnull(rgsd.count,0) + ifnull(sum(lgdth.finish_count),0) + ifnull(sum(damage_count),0) as totalCount,
+        ifnull(rgsd.count,0) as count,
+        ifnull(sum(lgdth.finish_count),0) as finishCount,
+        ifnull(sum(damage_count),0) as damageCount
+        from (select pattern_width,
+        pattern_height,
+        pattern_thickness,
+        films_id,
+        sum(case when state = 100 then remain_quantity else 0 end) as count
+        from raw_glass_storage_details
+        group by pattern_width, pattern_height, pattern_thickness, films_id) as rgsd
+        left JOIN load_glass_device_task_history as lgdth
+        on rgsd.pattern_width = lgdth.raw_glass_width
+        and rgsd.pattern_height = lgdth.raw_glass_height
+        and rgsd.pattern_thickness = lgdth.raw_glass_thickness
+        and rgsd.films_id = lgdth.raw_glass_films_id
+        <where>
+            1=1
+            <if test="width != null and width != ''">
+                and rgsd.pattern_width like concat('%', #{width}, '%')
+            </if>
+            <if test="height != null and height != ''">
+                and rgsd.pattern_height like concat('%', #{height}, '%')
+            </if>
+            <if test="thickness != null and thickness != ''">
+                and rgsd.pattern_thickness like concat('%', #{thickness}, '%')
+            </if>
+            <if test="films != null and films != ''">
+                and rgsd.films_id like concat('%', #{films}, '%')
+            </if>
+        </where>
+        group by rgsd.pattern_width, rgsd.pattern_height, rgsd.pattern_thickness, rgsd.films_id
+    </select>
+</mapper>
diff --git a/hangzhoumesParent/common/servicebase/target/classes/mapper/RawGlassStorageStationMapper.xml b/hangzhoumesParent/common/servicebase/target/classes/mapper/RawGlassStorageStationMapper.xml
new file mode 100644
index 0000000..56c2e88
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/target/classes/mapper/RawGlassStorageStationMapper.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.rawglassstation.mapper.RawGlassStorageStationMapper">
+
+    <resultMap id="baseMap" type="com.mes.rawglassdetails.entity.RawGlassStorageDetails">
+        <result column="device_id" property="deviceId"/>
+        <result column="slot" property="slot"/>
+        <result column="pattern_width" property="patternWidth"/>
+        <result column="pattern_height" property="patternHeight"/>
+        <result column="pattern_thickness" property="patternThickness"/>
+        <result column="films_id" property="filmsId"/>
+        <result column="create_time" property="createTime"/>
+        <result column="remain_quantity" property="remainQuantity"/>
+        <result column="enable_state" property="state"/>
+    </resultMap>
+
+
+    <select id="listRawGlassDetails" resultMap="baseMap">
+        SELECT T.DEVICE_ID,
+               T.SLOT,
+               T1.PATTERN_WIDTH,
+               T1.PATTERN_HEIGHT,
+               T1.PATTERN_THICKNESS,
+               T1.FILMS_ID,
+               T1.CREATE_TIME,
+               T1.REMAIN_QUANTITY,
+               T.ENABLE_STATE
+        FROM RAW_GLASS_STORAGE_STATION T
+                 LEFT JOIN RAW_GLASS_STORAGE_DETAILS T1 ON T.DEVICE_ID = T1.DEVICE_ID
+            AND T.SLOT = T1.SLOT
+            AND T1.STATE = 100
+    </select>
+</mapper>
diff --git a/hangzhoumesParent/common/servicebase/target/classes/mapper/TemperingGlassInfoMapper.xml b/hangzhoumesParent/common/servicebase/target/classes/mapper/TemperingGlassInfoMapper.xml
new file mode 100644
index 0000000..55b503b
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/target/classes/mapper/TemperingGlassInfoMapper.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.temperingglass.mapper.TemperingGlassInfoMapper">
+    <insert id="saveBatch">
+        INSERT INTO tempering_glass_info (glass_id, flow_card_id, glass_type, width, height, thickness, films_id,
+        ishorizontal, tempering_layout_id,
+        tempering_feed_sequence, x_coordinate, y_coordinate, angle, state, slot, engineer_id, deleted) VALUES
+        <foreach collection="list" item="item" separator=",">
+            (#{item.glassId}, #{item.flowCardId}, #{item.glassType}, #{item.width}, #{item.height}, #{item.thickness},
+            #{item.filmsId},#{item.ishorizontal},
+            #{item.temperingLayoutId}, #{item.temperingFeedSequence}, #{item.xCoordinate}, #{item.yCoordinate},
+            #{item.angle}, #{item.state}, #{item.slot}, #{item.engineerId}, 0)
+        </foreach>
+    </insert>
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/target/classes/mapper/UpPattenUsageMapper.xml b/hangzhoumesParent/common/servicebase/target/classes/mapper/UpPattenUsageMapper.xml
new file mode 100644
index 0000000..e19a528
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/target/classes/mapper/UpPattenUsageMapper.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.uppattenusage.mapper.UpPattenUsageMapper">
+
+    <resultMap id="baseMap" type="com.mes.uppattenusage.entity.vo.UpPattenUsageVO">
+        <result column="id" property="id"/>
+        <result column="engineering_id" property="engineeringId"/>
+        <result column="films_id" property="filmsId"/>
+        <result column="width" property="width"/>
+        <result column="height" property="height"/>
+        <result column="thickness" property="thickness"/>
+        <result column="layout_sequence" property="layoutSequence"/>
+        <result column="state" property="state"/>
+        <result column="group_number" property="groupNumber"/>
+    </resultMap>
+    <select id="queryRawGlassByEngineeringId" resultMap="baseMap">
+        SET @prev_width := NULL;
+        SET @prev_height := NULL;
+        SET @counter := 0;
+        SELECT t.*,
+               @counter := IF(@prev_width = width and @prev_height = height, @counter, @counter + 1) AS group_number,
+               @prev_width := width,
+               @prev_height := height
+        FROM up_patten_usage t
+        where t.engineering_id = #{engineeringId}
+          and t.state = 0
+        ORDER BY t.layout_sequence
+    </select>
+    <select id="queryFinishByEngineering" resultType="java.lang.Integer">
+        SELECT id
+        FROM up_patten_usage
+        WHERE engineering_id IN (SELECT engineer_id FROM engineering WHERE station_cell = #{stationCell} AND state = 1)
+          and state = 0
+        order by id
+        LIMIT ${finishCount}
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/pom.xml b/hangzhoumesParent/common/springsecurity/pom.xml
new file mode 100644
index 0000000..9278822
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/pom.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>common</artifactId>
+        <groupId>com.mes</groupId>
+        <version>1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>springsecurity</artifactId>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.mes</groupId>
+            <artifactId>servicebase</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+
+        <!-- Spring Security渚濊禆 -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-security</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt</artifactId>
+            <version>0.9.0</version>
+        </dependency>
+    </dependencies>
+
+</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/RedisConfig.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/RedisConfig.java
new file mode 100644
index 0000000..f03aec7
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/RedisConfig.java
@@ -0,0 +1,59 @@
+package com.mes.common.config;
+
+
+import com.mes.common.utils.FastJsonRedisSerializer;
+import org.springframework.cache.CacheManager;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.cache.RedisCacheConfiguration;
+import org.springframework.data.redis.cache.RedisCacheManager;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
+import org.springframework.data.redis.serializer.RedisSerializationContext;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 19:13
+ * @Description:
+ */
+@Configuration
+@EnableCaching
+public class RedisConfig {
+
+    @Bean
+    @SuppressWarnings(value = {"unchecked", "rawtypes"})
+    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
+        RedisTemplate<Object, Object> template = new RedisTemplate<>();
+        template.setConnectionFactory(connectionFactory);
+
+        FastJsonRedisSerializer serializer = new FastJsonRedisSerializer(Object.class);
+
+        // 浣跨敤StringRedisSerializer鏉ュ簭鍒楀寲鍜屽弽搴忓垪鍖杛edis鐨刱ey鍊�
+        template.setKeySerializer(new StringRedisSerializer());
+        template.setValueSerializer(serializer);
+
+        // Hash鐨刱ey涔熼噰鐢⊿tringRedisSerializer鐨勫簭鍒楀寲鏂瑰紡
+        template.setHashKeySerializer(new StringRedisSerializer());
+        template.setHashValueSerializer(serializer);
+
+        template.afterPropertiesSet();
+        return template;
+    }
+
+
+    @Bean
+    public CacheManager cacheManager(RedisConnectionFactory factory) {
+        RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
+                .disableCachingNullValues()
+                .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer()));
+
+        RedisCacheManager redisCacheManager = RedisCacheManager.builder(factory)
+                .cacheDefaults(redisCacheConfiguration)
+                .build();
+
+        return redisCacheManager;
+    }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java
new file mode 100644
index 0000000..a130533
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java
@@ -0,0 +1,94 @@
+package com.mes.common.config;
+
+
+import com.mes.common.filter.JwtAuthenticationTokenFilter;
+import com.mes.common.handler.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+import org.springframework.security.config.http.SessionCreationPolicy;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.security.crypto.password.PasswordEncoder;
+import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
+
+@Configuration
+@EnableWebSecurity
+@EnableGlobalMethodSecurity(prePostEnabled = true)
+public class TokenWebSecurityConfig extends WebSecurityConfigurerAdapter {
+    @Autowired
+    private JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter;
+    @Autowired
+    LoginFailureHandler loginFailureHandler;
+
+    @Autowired
+    LoginSuccessHandler loginSuccessHandler;
+
+    @Autowired
+    JwtAuthenticationEntryPoint jwtAuthenticationEntryPoint;
+
+    @Autowired
+    JwtAccessDeniedHandler jwtAccessDeniedHandler;
+
+    @Autowired
+    JwtLogoutSuccessHandler jwtLogoutSuccessHandler;
+
+    @Bean
+    public PasswordEncoder passwordEncoder() {
+        return new BCryptPasswordEncoder();
+    }
+
+    /**
+     * 閰嶇疆杩囨护瑙勫垯
+     */
+    @Override
+    protected void configure(HttpSecurity http) throws Exception {
+
+        http.cors().and().csrf().disable()
+
+                // 鐧诲綍閰嶇疆
+                .formLogin()
+                .successHandler(loginSuccessHandler)
+                .failureHandler(loginFailureHandler)
+
+                .and()
+                .logout()
+                .logoutSuccessHandler(jwtLogoutSuccessHandler)
+
+                // 绂佺敤session
+                .and()
+                .sessionManagement()
+                .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
+
+                // 閰嶇疆鎷︽埅瑙勫垯
+                .and()
+                .authorizeRequests()
+                .antMatchers("/sys/user/login").anonymous()
+                .antMatchers("/swagger-ui.html").permitAll()
+                .antMatchers("/webjars/**").permitAll()
+                .antMatchers("/v2/**").permitAll()
+                .antMatchers("/swagger-resources/**").permitAll()
+                .antMatchers("/**").permitAll()
+                .anyRequest().authenticated()
+
+                // 寮傚父澶勭悊鍣�
+                .and()
+                .exceptionHandling()
+                .authenticationEntryPoint(jwtAuthenticationEntryPoint)
+                .accessDeniedHandler(jwtAccessDeniedHandler)
+
+                // 閰嶇疆鑷畾涔夌殑杩囨护鍣�
+                .and()
+                .addFilterBefore(jwtAuthenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
+    }
+
+    @Bean
+    @Override
+    public AuthenticationManager authenticationManagerBean() throws Exception {
+        return super.authenticationManagerBean();
+    }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java
new file mode 100644
index 0000000..bad55f9
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java
@@ -0,0 +1,80 @@
+package com.mes.common.filter;
+
+import com.mes.common.utils.JwtUtil;
+import com.mes.common.utils.UserInfoUtils;
+import com.mes.userinfo.entity.LoginUser;
+import com.mes.userinfo.service.SysUserService;
+import com.mes.utils.RedisUtil;
+import io.jsonwebtoken.Claims;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
+import org.springframework.web.filter.OncePerRequestFilter;
+
+import javax.annotation.Resource;
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/10 9:42
+ * @Description:
+ */
+@Component
+public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
+    // 姝ゅ瑙i噴涓轰粈涔堜笉鍘诲疄鐜癋ilter鎺ュ彛锛屽洜涓哄湪鏌愪簺鎯呭喌涓嬩細杩囨护涓ゆ锛屾墽琛屼袱娆ilter閲岄潰鐨勬柟娉曪紝鎵�浠ユ垜浠�夋嫨缁ф壙SpringSecurity涓殑OncePerRequestFilter
+    @Autowired
+    private RedisUtil redisUtil;
+
+    @Resource
+    private SysUserService sysUserService;
+
+    @Override
+    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
+        //鑾峰彇token
+        String token = request.getHeader("token");
+        if (!StringUtils.hasText(token)) {
+            //鏀捐
+            filterChain.doFilter(request, response);
+            return; // 姝ゅ鍔犱笂return濂藉鏄悗闈㈢粨鏋滆繑鍥炵殑鏃跺�欏氨涓嶄細鍐嶈蛋涓�閬嶆杩囨护鍣ㄧ殑鏂规硶浜�
+        }
+        //瑙f瀽token
+        String userid;
+        try {
+            Claims claims = JwtUtil.getClaimByToken(token);
+            userid = claims.getSubject();
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new RuntimeException("token闈炴硶");
+        }
+        //浠巖edis涓幏鍙栫敤鎴蜂俊鎭�
+        String redisKey = "login:" + userid;
+        LoginUser loginUser = redisUtil.getCacheObject(redisKey);
+        if (Objects.isNull(loginUser)) {
+            response.setHeader("token", "");
+            throw new RuntimeException("鐢ㄦ埛鏈櫥褰�");
+        }
+        //灏嗙敤鎴蜂俊鎭斁鍏ュ綋鍓嶇嚎绋�
+        UserInfoUtils.set(loginUser.getUser());
+        //瀛樺叆SecurityContextHolder锛屼互渚涘悗闈㈢殑杩囨护鍣ㄤ娇鐢�
+        List<String> permissionKeyList = sysUserService.getUserAuthorityInfo(Long.parseLong(userid));
+        List<GrantedAuthority> authorities = permissionKeyList.stream().
+                map(SimpleGrantedAuthority::new)
+                .collect(Collectors.toList());
+        UsernamePasswordAuthenticationToken authenticationToken =
+                new UsernamePasswordAuthenticationToken(loginUser, null, authorities);
+        SecurityContextHolder.getContext().setAuthentication(authenticationToken);
+        //鏀捐
+        filterChain.doFilter(request, response);
+    }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtAccessDeniedHandler.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtAccessDeniedHandler.java
new file mode 100644
index 0000000..aad53aa
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtAccessDeniedHandler.java
@@ -0,0 +1,35 @@
+package com.mes.common.handler;
+
+import cn.hutool.json.JSONUtil;
+import com.mes.utils.Result;
+import org.springframework.http.HttpStatus;
+import org.springframework.security.access.AccessDeniedException;
+import org.springframework.security.web.access.AccessDeniedHandler;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+@Component
+public class JwtAccessDeniedHandler implements AccessDeniedHandler {
+
+	@Override
+	public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException, ServletException {
+
+		response.setContentType("application/json;charset=UTF-8");
+		response.setStatus(HttpServletResponse.SC_FORBIDDEN);
+
+		ServletOutputStream outputStream = response.getOutputStream();
+
+		Result result = Result.error(HttpStatus.FORBIDDEN.value(), "鏉冮檺涓嶈冻");
+
+		outputStream.write(JSONUtil.toJsonStr(result).getBytes("UTF-8"));
+
+		outputStream.flush();
+		outputStream.close();
+
+	}
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtAuthenticationEntryPoint.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtAuthenticationEntryPoint.java
new file mode 100644
index 0000000..a95ca0c
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtAuthenticationEntryPoint.java
@@ -0,0 +1,33 @@
+package com.mes.common.handler;
+
+import cn.hutool.json.JSONUtil;
+import com.mes.utils.Result;
+import org.springframework.http.HttpStatus;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.web.AuthenticationEntryPoint;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+@Component
+public class JwtAuthenticationEntryPoint implements AuthenticationEntryPoint {
+
+	@Override
+	public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException {
+
+		response.setContentType("application/json;charset=UTF-8");
+		response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
+		ServletOutputStream outputStream = response.getOutputStream();
+
+		Result result = Result.error(HttpStatus.UNAUTHORIZED.value(), "璁よ瘉澶辫触璇烽噸鏂扮櫥褰�");
+
+		outputStream.write(JSONUtil.toJsonStr(result).getBytes("UTF-8"));
+
+		outputStream.flush();
+		outputStream.close();
+	}
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtLogoutSuccessHandler.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtLogoutSuccessHandler.java
new file mode 100644
index 0000000..3757d4d
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtLogoutSuccessHandler.java
@@ -0,0 +1,40 @@
+package com.mes.common.handler;
+
+import cn.hutool.json.JSONUtil;
+import com.mes.utils.Result;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.web.authentication.logout.LogoutSuccessHandler;
+import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+@Component
+public class JwtLogoutSuccessHandler implements LogoutSuccessHandler {
+
+	private static final String header = "Authorization";
+
+	@Override
+	public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
+
+		if (authentication != null) {
+			new SecurityContextLogoutHandler().logout(request, response, authentication);
+		}
+
+		response.setContentType("application/json;charset=UTF-8");
+		ServletOutputStream outputStream = response.getOutputStream();
+
+		response.setHeader(header, "");
+
+		Result result = Result.success("");
+
+		outputStream.write(JSONUtil.toJsonStr(result).getBytes("UTF-8"));
+
+		outputStream.flush();
+		outputStream.close();
+	}
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/LoginFailureHandler.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/LoginFailureHandler.java
new file mode 100644
index 0000000..72abdbe
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/LoginFailureHandler.java
@@ -0,0 +1,31 @@
+package com.mes.common.handler;
+
+import cn.hutool.json.JSONUtil;
+import com.mes.utils.Result;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.web.authentication.AuthenticationFailureHandler;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+@Component
+public class LoginFailureHandler implements AuthenticationFailureHandler {
+
+	@Override
+	public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException {
+
+		response.setContentType("application/json;charset=UTF-8");
+		ServletOutputStream outputStream = response.getOutputStream();
+
+		Result result = Result.error("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒");
+
+		outputStream.write(JSONUtil.toJsonStr(result).getBytes("UTF-8"));
+
+		outputStream.flush();
+		outputStream.close();
+	}
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/LoginSuccessHandler.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/LoginSuccessHandler.java
new file mode 100644
index 0000000..c5458bb
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/LoginSuccessHandler.java
@@ -0,0 +1,38 @@
+package com.mes.common.handler;
+
+import cn.hutool.json.JSONUtil;
+import com.mes.common.utils.JwtUtil;
+import com.mes.utils.Result;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+@Component
+public class LoginSuccessHandler implements AuthenticationSuccessHandler {
+
+	private static final String header = "Authorization";
+
+	@Override
+	public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
+		response.setContentType("application/json;charset=UTF-8");
+		ServletOutputStream outputStream = response.getOutputStream();
+
+		// 鐢熸垚jwt锛屽苟鏀剧疆鍒拌姹傚ご涓�
+		String jwt = JwtUtil.generateToken(authentication.getName());
+		response.setHeader(header, jwt);
+
+		Result result = Result.success("");
+
+		outputStream.write(JSONUtil.toJsonStr(result).getBytes("UTF-8"));
+
+		outputStream.flush();
+		outputStream.close();
+	}
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/FastJsonRedisSerializer.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/FastJsonRedisSerializer.java
new file mode 100644
index 0000000..f8ab417
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/FastJsonRedisSerializer.java
@@ -0,0 +1,55 @@
+package com.mes.common.utils;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.parser.ParserConfig;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.fasterxml.jackson.databind.JavaType;
+import com.fasterxml.jackson.databind.type.TypeFactory;
+import org.springframework.data.redis.serializer.RedisSerializer;
+import org.springframework.data.redis.serializer.SerializationException;
+
+import java.nio.charset.Charset;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/11 15:28
+ * @Description:
+ */
+public class FastJsonRedisSerializer<T> implements RedisSerializer<T> {
+
+    public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
+
+    private Class<T> clazz;
+
+    static {
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+    }
+
+    public FastJsonRedisSerializer(Class<T> clazz) {
+        super();
+        this.clazz = clazz;
+    }
+
+    @Override
+    public byte[] serialize(T t) throws SerializationException {
+        if (t == null) {
+            return new byte[0];
+        }
+        return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET);
+    }
+
+    @Override
+    public T deserialize(byte[] bytes) throws SerializationException {
+        if (bytes == null || bytes.length <= 0) {
+            return null;
+        }
+        String str = new String(bytes, DEFAULT_CHARSET);
+
+        return JSON.parseObject(str, clazz);
+    }
+
+
+    protected JavaType getJavaType(Class<?> clazz) {
+        return TypeFactory.defaultInstance().constructType(clazz);
+    }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java
new file mode 100644
index 0000000..f7af90a
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java
@@ -0,0 +1,55 @@
+package com.mes.common.utils;
+
+
+import io.jsonwebtoken.Claims;
+import io.jsonwebtoken.Jwts;
+import io.jsonwebtoken.SignatureAlgorithm;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 19:15
+ * @Description:
+ */
+@Data
+public class JwtUtil {
+
+    private static final long expire = 60 * 60 * 1000L;
+    private static final String secret = "beibo";
+    private static final String header = "Authorization";
+
+    // 鐢熸垚jwt
+    public static String generateToken(String username) {
+
+        Date nowDate = new Date();
+        Date expireDate = new Date(nowDate.getTime() + 1000 * expire);
+
+        return Jwts.builder()
+                .setHeaderParam("typ", "JWT")
+                .setSubject(username)
+                .setIssuedAt(nowDate)
+                .setExpiration(expireDate)// 7澶╅亷鏈�
+                .signWith(SignatureAlgorithm.HS512, secret)
+                .compact();
+    }
+
+    // 瑙f瀽jwt
+    public static Claims getClaimByToken(String jwt) {
+        try {
+            return Jwts.parser()
+                    .setSigningKey(secret)
+                    .parseClaimsJws(jwt)
+                    .getBody();
+        } catch (Exception e) {
+            return null;
+        }
+    }
+
+    // jwt鏄惁杩囨湡
+    public boolean isTokenExpired(Claims claims) {
+        return claims.getExpiration().before(new Date());
+    }
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/UserInfoUtils.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/UserInfoUtils.java
new file mode 100644
index 0000000..292797c
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/UserInfoUtils.java
@@ -0,0 +1,26 @@
+package com.mes.common.utils;
+
+import com.mes.userinfo.entity.SysUser;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/25 15:41
+ * @Description:
+ */
+public class UserInfoUtils {
+    private static InheritableThreadLocal<SysUser> tokenPool = new InheritableThreadLocal<SysUser>();
+
+    public static SysUser get() {
+        return tokenPool.get();
+    }
+
+    public static void set(SysUser user) {
+        tokenPool.set(user);
+    }
+
+    public static void remove() {
+        if (get() != null) {
+            tokenPool.remove();
+        }
+    }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/WebUtils.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/WebUtils.java
new file mode 100644
index 0000000..618144d
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/WebUtils.java
@@ -0,0 +1,30 @@
+package com.mes.common.utils;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 19:16
+ * @Description:
+ */
+public class WebUtils {
+    /**
+     * 灏嗗瓧绗︿覆娓叉煋鍒板鎴风
+     *
+     * @param response 娓叉煋瀵硅薄
+     * @param string   寰呮覆鏌撶殑瀛楃涓�
+     * @return null
+     */
+    public static String renderString(HttpServletResponse response, String string) {
+        try {
+            response.setStatus(200);
+            response.setContentType("application/json");
+            response.setCharacterEncoding("utf-8");
+            response.getWriter().print(string);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/controller/SysMenuController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/controller/SysMenuController.java
new file mode 100644
index 0000000..27eab58
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/controller/SysMenuController.java
@@ -0,0 +1,92 @@
+package com.mes.menu.controller;
+
+import com.mes.entity.request.GeneralRequest;
+import com.mes.menu.entity.SysMenu;
+import com.mes.menu.service.SysMenuService;
+import com.mes.tools.DateUtil;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.text.SimpleDateFormat;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Api(tags = "鑿滃崟绠$悊")
+@RestController
+@RequestMapping("/sys/menu")
+public class SysMenuController {
+
+    @Autowired
+    private SysMenuService sysMenuService;
+
+    @ApiOperation("鏂板鑿滃崟")
+    @PostMapping("/save")
+//    @PreAuthorize("hasAuthority('sys:menu:save')")
+    public Result save(@Validated @RequestBody SysMenu sysMenu) {
+        sysMenuService.save(sysMenu);
+        GeneralRequest request = new GeneralRequest();
+        return Result.success(sysMenuService.getMenuTree(request));
+
+    }
+
+    @ApiOperation("淇敼鑿滃崟淇℃伅")
+    @PostMapping("/updateMenu")
+//    @PreAuthorize("hasAuthority('sys:menu:update')")
+    public Result<List<SysMenu>> updateMenu(@Validated @RequestBody SysMenu sysMenu) {
+        //return Result.success(sysMenu);
+        sysMenuService.updateMenu(sysMenu);
+        GeneralRequest request = new GeneralRequest();
+        return Result.build(200, "淇敼鎴愬姛", sysMenuService.getMenuTree(request));
+    }
+
+    @ApiOperation("鑾峰彇鐢ㄦ埛鏈夋潈闄愮殑鎵�鏈夎彍鍗�")
+    @GetMapping("/getMenuTree")
+    public Result<List<SysMenu>> getMenuTree(GeneralRequest request) {
+        return Result.success(sysMenuService.getMenuTree(request));
+    }
+
+    @ApiOperation("鑾峰彇鐢ㄦ埛鐨勬潈闄�")
+    @GetMapping("/getAuthorityInfo")
+    public Result<List<String>> getAuthorityInfo() {
+        return Result.success(sysMenuService.getAuthorityInfo());
+    }
+
+
+    @ApiOperation("鐢ㄦ埛褰撳墠鐢ㄦ埛鐨勮彍鍗曞拰鏉冮檺淇℃伅")
+    @GetMapping("/nav")
+    public Result<Map<Object, Object>> nav() {
+        return Result.success(sysMenuService.nav());
+    }
+
+    @ApiOperation("鍒犻櫎鑿滃崟")
+    @PostMapping("/deleteMenu")
+//    @PreAuthorize("hasAuthority('sys:menu:delete')")
+    public Result<List<SysMenu>> deleteMenu(Long menuId) {
+        GeneralRequest request = new GeneralRequest();
+        return Result.build(200, sysMenuService.deleteMenu(menuId), sysMenuService.getMenuTree(request));
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎鑿滃崟")
+    @PostMapping("/batchDeleteMenu")
+//    @PreAuthorize("hasAuthority('sys:menu:delete')")
+    public Result<String> batchDeleteMenu(@RequestBody List<Long> menuIds) {
+        return Result.success(sysMenuService.batchDeleteMenu(menuIds));
+    }
+
+    @ApiOperation("鑾峰彇褰撳墠鏃堕棿")
+    @PostMapping("/getNowDate")
+//    @PreAuthorize("hasAuthority('sys:menu:delete')")
+    public Result getNowDate() {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        return Result.build(200, "鏌ヨ鎴愬姛", sdf.format(DateUtil.getEndDate()));
+    }
+}
+
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/entity/SysMenu.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/entity/SysMenu.java
new file mode 100644
index 0000000..37476c6
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/entity/SysMenu.java
@@ -0,0 +1,87 @@
+package com.mes.menu.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SysMenu implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鑷id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 鐖秈d
+     */
+    private Long parentId;
+
+    /**
+     * 妯″潡鍚嶇О
+     */
+    private String menuName;
+
+    /**
+     * 鍥炬爣
+     */
+    private String icon;
+
+    /**
+     * 鍦板潃
+     */
+    private String url;
+
+    /**
+     * 璇█绫诲瀷
+     */
+    private String languageType;
+
+    /**
+     * 鐘舵��
+     */
+    private Integer status;
+
+    /**
+     * 鎺掑簭
+     */
+    private String listSort;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+
+    /**
+     * 鏉冮檺
+     */
+    private String perms;
+
+    /**
+     * 瀛愯彍鍗�
+     */
+    @TableField(exist = false)
+    private List<SysMenu> children;
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java
new file mode 100644
index 0000000..ae06d40
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java
@@ -0,0 +1,20 @@
+package com.mes.menu.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.menu.entity.SysMenu;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鑿滃崟琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+
+public interface SysMenuMapper extends MPJBaseMapper<SysMenu> {
+
+    List<String> selectPermsByUserId(long parseLong);
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/SysMenuService.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/SysMenuService.java
new file mode 100644
index 0000000..014d1cd
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/SysMenuService.java
@@ -0,0 +1,66 @@
+package com.mes.menu.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.entity.request.GeneralRequest;
+import com.mes.menu.entity.SysMenu;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鑿滃崟琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysMenuService extends IService<SysMenu> {
+
+    /**
+     * 鏇存柊鑿滃崟淇℃伅
+     *
+     * @param menu
+     * @return
+     */
+    SysMenu updateMenu(SysMenu menu);
+
+    /**
+     * 鑾峰彇鐢ㄦ埛鏈夋潈闄愮殑鑿滃崟鏍�
+     *
+     * @return
+     */
+    List<SysMenu> getMenuTree(GeneralRequest request);
+
+    /**
+     * 鑾峰彇鐢ㄦ埛鐨勬潈闄�
+     *
+     * @return
+     */
+    List<String> getAuthorityInfo();
+
+
+    /**
+     * 鑾峰彇鐢ㄦ埛鑿滃崟鍙婃潈闄愪俊鎭�
+     *
+     * @return
+     */
+    Map<Object, Object> nav();
+
+    /**
+     * 鍒犻櫎鑿滃崟淇℃伅
+     *
+     * @param menuId
+     * @return
+     */
+    String deleteMenu(Long menuId);
+
+    /**
+     * 鎵归噺鍒犻櫎鑿滃崟淇℃伅
+     *
+     * @param menuIds
+     * @return
+     */
+    String batchDeleteMenu(List<Long> menuIds);
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java
new file mode 100644
index 0000000..597f93c
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java
@@ -0,0 +1,148 @@
+package com.mes.menu.service.impl;
+
+import cn.hutool.core.map.MapUtil;
+import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.common.utils.UserInfoUtils;
+import com.mes.entity.request.GeneralRequest;
+import com.mes.menu.entity.SysMenu;
+import com.mes.menu.mapper.SysMenuMapper;
+import com.mes.menu.service.SysMenuService;
+import com.mes.role.entity.SysRoleMenu;
+import com.mes.role.service.SysRoleMenuService;
+import com.mes.userinfo.entity.SysUser;
+import com.mes.userinfo.entity.SysUserRole;
+import com.mes.userinfo.mapper.SysUserRoleMapper;
+import com.mes.userinfo.service.SysUserService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 鑿滃崟琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Service
+@Slf4j
+public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> implements SysMenuService {
+
+    @Autowired
+    SysUserService sysUserService;
+
+    @Autowired
+    SysUserRoleMapper sysUserRoleMapper;
+
+    @Autowired
+    SysRoleMenuService sysRoleMenuService;
+
+    @Override
+    public SysMenu updateMenu(SysMenu menu) {
+        baseMapper.updateById(menu);
+        // 娓呴櫎鎵�鏈変笌璇ヨ彍鍗曠浉鍏崇殑鏉冮檺缂撳瓨
+        sysUserService.clearUserAuthorityInfoByMenuId(menu.getId());
+        return menu;
+    }
+
+    @Override
+    public List<SysMenu> getMenuTree(GeneralRequest request) {
+        //todo:闇�瑕佸厛鑾峰彇鐢ㄦ埛鐨勮鑹诧紝瑙掕壊涓嬬殑鑿滃崟鏉冮檺锛屾嬁鍒拌彍鍗昳d鑾峰彇鎵�鏈夎彍鍗�
+        SysUser user = UserInfoUtils.get();
+        MPJLambdaWrapper<SysUserRole> wrapper = new MPJLambdaWrapper<>();
+
+        wrapper.selectAll(SysMenu.class).distinct()
+                .innerJoin(SysUser.class, SysUser::getId, SysUserRole::getUserId)
+                .innerJoin(SysRoleMenu.class, SysRoleMenu::getRoleId, SysUserRole::getRoleId)
+                .innerJoin(SysMenu.class, SysMenu::getId, SysRoleMenu::getMenuId)
+                .eq(SysUser::getId, user.getId())
+                .like(StringUtils.isNotBlank(request.getKey()), SysMenu::getMenuName, request.getKey());
+
+        //
+        List<SysMenu> menuList = sysUserRoleMapper.selectJoinList(SysMenu.class, wrapper);
+        log.info("userinfos:{}",menuList);
+        return create(menuList);
+    }
+
+    @Override
+    public List<String> getAuthorityInfo() {
+        SysUser user = UserInfoUtils.get();
+        log.info("鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓簕}", user);
+        // 鑾峰彇鏉冮檺淇℃伅
+        // ROLE_admin,ROLE_normal,sys:user:list,....
+        return sysUserService.getUserAuthorityInfo(user.getId());
+    }
+
+    @Override
+    public Map<Object, Object> nav() {
+        List<SysMenu> menuTree = getMenuTree(new GeneralRequest());
+        List<String> authorityInfo = getAuthorityInfo();
+        return MapUtil.builder().put("authoritys", authorityInfo)
+                .put("tree", menuTree).map();
+    }
+
+    @Override
+    public String deleteMenu(Long menuId) {
+        int count = this.count(new LambdaQueryWrapper<SysMenu>().eq(SysMenu::getParentId, menuId));
+        if (count > 0) {
+            return "鏃犳硶鍒犻櫎,璇峰厛鍒犻櫎瀛愯彍鍗�";
+        }
+
+        // 娓呴櫎鎵�鏈変笌璇ヨ彍鍗曠浉鍏崇殑鏉冮檺缂撳瓨
+        sysUserService.clearUserAuthorityInfoByMenuId(menuId);
+
+        this.removeById(menuId);
+
+        // 鍚屾鍒犻櫎涓棿鍏宠仈琛�
+        sysRoleMenuService.remove(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getMenuId, menuId));
+        return "鍒犻櫎鎴愬姛";
+    }
+
+    @Override
+    public String batchDeleteMenu(List<Long> menuIds) {
+        menuIds.stream().forEach(e -> deleteMenu(e));
+        return "鎵归噺鍒犻櫎鎴愬姛";
+    }
+
+
+    /**
+     * 灏嗘暟鎹簱涓煡璇㈠嚭鏉ョ殑list闆嗗悎浼犲叆姝ゆ柟娉曞嵆鍙幏寰楁帓鎴愭爲褰㈢粨鏋勭殑list闆嗗悎
+     *
+     * @param lists
+     * @return
+     */
+    public List<SysMenu> create(List<SysMenu> lists) {
+        List<SysMenu> deptTreeList = lists.stream()
+                .filter(item -> item.getParentId() == 0)
+                .map(item -> {
+                    item.setChildren(getChildren(item, lists));
+                    return item;
+                }).collect(Collectors.toList());
+        return deptTreeList;
+    }
+
+    /**
+     * 姝ゆ柟娉曞皢琚�掑綊璋冪敤
+     *
+     * @param menu
+     * @param menus
+     * @return
+     */
+    private List<SysMenu> getChildren(SysMenu menu, List<SysMenu> menus) {
+        List<SysMenu> res = menus.stream()
+                .filter(item -> item.getParentId().equals(menu.getId()))
+                .collect(Collectors.toList());
+        log.info("鑿滃崟鏍�:{}", JSONUtil.toJsonStr(res));
+        return res;
+    }
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java
new file mode 100644
index 0000000..3a5d711
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java
@@ -0,0 +1,67 @@
+package com.mes.role.controller;
+
+
+import com.mes.entity.request.GeneralRequest;
+import com.mes.role.entity.SysRole;
+import com.mes.role.entity.vo.SysRoleVO;
+import com.mes.role.service.SysRoleService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Api(tags = "瑙掕壊绠$悊")
+@RestController
+@RequestMapping("/sys/role")
+public class SysRoleController {
+
+    @Autowired
+    private SysRoleService sysRoleService;
+
+    @ApiOperation("鏂板瑙掕壊鍙婅鑹蹭笅鐨勬潈闄愪俊鎭�")
+    @PostMapping("/saveRole")
+//    @PreAuthorize("hasAuthority('sys:role:save')")
+    public Result<SysRoleVO> saveRole(@Validated @RequestBody SysRoleVO sysRoleVO) {
+        //return Result.success(sysRoleService.saveRole(sysRoleVO));
+        sysRoleService.saveRole(sysRoleVO);
+        return Result.build(200,"鏂板鎴愬姛",sysRoleVO);
+    }
+
+    @ApiOperation("缂栬緫瑙掕壊鍙婅鑹蹭笅鐨勬潈闄愪俊鎭�")
+    @PostMapping("/updateRole")
+//    @PreAuthorize("hasAuthority('sys:role:save')")
+    public Result<SysRoleVO> updateRole(@Validated @RequestBody SysRoleVO sysRoleVO) {
+       // return Result.success(sysRoleService.updateRole(sysRoleVO));
+        sysRoleService.updateRole(sysRoleVO);
+        return Result.build(200,"鏂板鎴愬姛",sysRoleVO);
+    }
+
+    @ApiOperation("鏌ヨ瑙掕壊鍙婅鑹蹭笅鐨勬潈闄愪俊鎭�")
+    @PostMapping("/queryRole")
+//    @PreAuthorize("hasAuthority('sys:role:save')")
+    public Result<List<SysRoleVO>> queryRole(@Validated @RequestBody GeneralRequest request) {
+        return Result.success(sysRoleService.queryRole(request));
+    }
+
+
+    @ApiOperation("鍒犻櫎瑙掕壊鍙婅鑹蹭笅鐨勬潈闄愪俊鎭�")
+    @PostMapping("/delete")
+//    @PreAuthorize("hasAuthority('sys:role:delete')")
+    @Transactional
+    public Result<String> deleteRole(@RequestBody List<Long> ids) {
+        return Result.build(200,"鍒犻櫎鎴愬姛",sysRoleService.deleteRole(ids));
+    }
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRole.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRole.java
new file mode 100644
index 0000000..14fd4a3
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRole.java
@@ -0,0 +1,50 @@
+package com.mes.role.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 瑙掕壊琛�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SysRole implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    private String name;
+
+    /**
+     * 瑙掕壊鏉冮檺瀛楃涓�
+     */
+    private String roleKey;
+
+    /**
+     * 瑙掕壊鐘舵�侊紙0姝e父 1鍋滅敤锛�
+     */
+    private String status;
+
+    /**
+     * 鍒犻櫎鏍囧織
+     */
+    private Integer delFlag;
+
+    /**
+     * 澶囨敞
+     */
+    private String remark;
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRoleMenu.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRoleMenu.java
new file mode 100644
index 0000000..aae2aed
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRoleMenu.java
@@ -0,0 +1,36 @@
+package com.mes.role.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SysRoleMenu implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 瑙掕壊ID
+     */
+    @TableId(type = IdType.NONE)
+    private Long roleId;
+
+    /**
+     * 鑿滃崟id
+     */
+    private Long menuId;
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/vo/SysRoleVO.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/vo/SysRoleVO.java
new file mode 100644
index 0000000..45efd61
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/vo/SysRoleVO.java
@@ -0,0 +1,44 @@
+package com.mes.role.entity.vo;
+
+import com.mes.menu.entity.SysMenu;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/26 13:57
+ * @Description:
+ */
+@Api(description = "瑙掕壊淇℃伅")
+@Data
+public class SysRoleVO implements Serializable {
+
+    @ApiModelProperty(hidden = true)
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "瑙掕壊ID", position = 2)
+    private Long id;
+
+    @ApiModelProperty(value = "瑙掕壊鍚嶇О", position = 3)
+    private String name;
+
+    @ApiModelProperty(value = "瑙掕壊鏉冮檺瀛楃涓�", position = 4)
+    private String roleKey;
+
+    @ApiModelProperty(value = "瑙掕壊鐘舵�侊紙0姝e父 1鍋滅敤锛�", position = 5)
+    private String status;
+
+    @ApiModelProperty(value = "鍒犻櫎鏍囧織", position = 6)
+    private Integer delFlag;
+
+    @ApiModelProperty(value = "澶囨敞", position = 7)
+    private String remark;
+
+    @ApiModelProperty(value = "瑙掕壊鑿滃崟淇℃伅", position = 8)
+    private List<SysMenu> menuList;
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java
new file mode 100644
index 0000000..bf1bf6d
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java
@@ -0,0 +1,16 @@
+package com.mes.role.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.role.entity.SysRole;
+
+/**
+ * <p>
+ * 瑙掕壊琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysRoleMapper extends MPJBaseMapper<SysRole> {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMenuMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMenuMapper.java
new file mode 100644
index 0000000..0cfc7df
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMenuMapper.java
@@ -0,0 +1,17 @@
+package com.mes.role.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.role.entity.SysRoleMenu;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+
+public interface SysRoleMenuMapper extends BaseMapper<SysRoleMenu> {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMapper.xml b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMapper.xml
new file mode 100644
index 0000000..9a0cd27
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.role.mapper.SysRoleMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMenuMapper.xml b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMenuMapper.xml
new file mode 100644
index 0000000..af0749b
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMenuMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.role.mapper.SysRoleMenuMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleMenuService.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleMenuService.java
new file mode 100644
index 0000000..e4d23dc
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleMenuService.java
@@ -0,0 +1,16 @@
+package com.mes.role.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.role.entity.SysRoleMenu;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysRoleMenuService extends IService<SysRoleMenu> {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleService.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleService.java
new file mode 100644
index 0000000..9592106
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleService.java
@@ -0,0 +1,51 @@
+package com.mes.role.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.entity.request.GeneralRequest;
+import com.mes.role.entity.SysRole;
+import com.mes.role.entity.vo.SysRoleVO;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 瑙掕壊琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysRoleService extends IService<SysRole> {
+
+    /**
+     * 鍒涘缓瑙掕壊淇℃伅
+     *
+     * @param sysRoleVO
+     * @return
+     */
+    SysRole saveRole(SysRoleVO sysRoleVO);
+
+    /**
+     * 淇敼瑙掕壊淇℃伅鍙婃潈闄�
+     *
+     * @param sysRoleVO
+     * @return
+     */
+    String updateRole(SysRoleVO sysRoleVO);
+
+    /**
+     * 鎸夌収瑙掕壊鍚嶆煡璇㈣鑹蹭俊鎭�
+     *
+     * @param request
+     * @return
+     */
+    List<SysRoleVO> queryRole(GeneralRequest request);
+
+    /**
+     * 鏌ヨ瑙掕壊鍙婅鑹蹭笅鐨勬潈闄愪俊鎭�
+     *
+     * @param ids
+     * @return
+     */
+    String deleteRole(List<Long> ids);
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleMenuServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleMenuServiceImpl.java
new file mode 100644
index 0000000..4c8a475
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleMenuServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.role.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.role.entity.SysRoleMenu;
+import com.mes.role.mapper.SysRoleMenuMapper;
+import com.mes.role.service.SysRoleMenuService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Service
+public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRoleMenu> implements SysRoleMenuService {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java
new file mode 100644
index 0000000..a787182
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java
@@ -0,0 +1,139 @@
+package com.mes.role.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.entity.request.GeneralRequest;
+import com.mes.menu.entity.SysMenu;
+import com.mes.role.entity.SysRole;
+import com.mes.role.entity.SysRoleMenu;
+import com.mes.role.entity.vo.SysRoleVO;
+import com.mes.role.mapper.SysRoleMapper;
+import com.mes.role.service.SysRoleMenuService;
+import com.mes.role.service.SysRoleService;
+import com.mes.userinfo.entity.SysUserRole;
+import com.mes.userinfo.service.SysUserRoleService;
+import com.mes.userinfo.service.SysUserService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 瑙掕壊琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Service
+@Slf4j
+public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> implements SysRoleService {
+
+    @Autowired
+    SysRoleMenuService sysRoleMenuService;
+
+    @Autowired
+    SysUserService sysUserService;
+
+    @Autowired
+    SysUserRoleService sysUserRoleService;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public SysRole saveRole(SysRoleVO sysRoleVO) {
+        log.info("淇濆瓨瑙掕壊淇℃伅锛岀敓鎴愬搴旂殑瑙掕壊id");
+        SysRole sysRole = new SysRole();
+        BeanUtils.copyProperties(sysRoleVO, sysRole);
+        this.save(sysRole);
+        //淇濆瓨瑙掕壊鏉冮檺淇℃伅
+        saveRoleMenu(sysRole.getId(), sysRoleVO.getMenuList());
+        return sysRole;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String updateRole(SysRoleVO sysRoleVO) {
+        log.info("淇濆瓨瑙掕壊淇℃伅锛岀敓鎴愬搴旂殑瑙掕壊id");
+        SysRole sysRole = new SysRole();
+        BeanUtils.copyProperties(sysRoleVO, sysRole);
+        this.updateById(sysRole);
+        //淇濆瓨瑙掕壊鏉冮檺淇℃伅
+        return saveRoleMenu(sysRole.getId(), sysRoleVO.getMenuList());
+    }
+
+    @Override
+    public List<SysRoleVO> queryRole(GeneralRequest request) {
+        MPJLambdaWrapper<SysRole> wrapper = new MPJLambdaWrapper<>();
+        wrapper.selectAll(SysRole.class)
+                .selectCollection(SysMenu.class, SysRoleVO::getMenuList)
+                .leftJoin(SysRoleMenu.class, SysRoleMenu::getRoleId, SysRole::getId)
+                .leftJoin(SysMenu.class, SysMenu::getId, SysRoleMenu::getMenuId)
+                .like(StringUtils.hasText(request.getKey()), SysRole::getName, request.getKey());
+        return baseMapper.selectJoinList(SysRoleVO.class, wrapper);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String deleteRole(List<Long> ids) {
+        log.info("鍒犻櫎瑙掕壊淇℃伅");
+        this.removeByIds(ids);
+
+        log.info("鍒犻櫎涓棿琛ㄤ俊鎭�");
+        sysUserRoleService.remove(new LambdaQueryWrapper<SysUserRole>().in(SysUserRole::getRoleId, ids));
+        sysRoleMenuService.remove(new LambdaQueryWrapper<SysRoleMenu>().in(SysRoleMenu::getRoleId, ids));
+
+        log.info("娓呯┖缂撳瓨涓殑鏉冮檺淇℃伅");
+        ids.stream().forEach(id -> sysUserService.clearUserAuthorityInfoByRoleId(id));
+        return "success";
+    }
+
+    /**
+     * 淇濆瓨瑙掕壊鏉冮檺淇℃伅
+     *
+     * @param roleId
+     * @param menuList
+     * @return
+     */
+    private String saveRoleMenu(Long roleId, List<SysMenu> menuList) {
+        log.info("閰嶇疆瑙掕壊鑿滃崟鍏崇郴");
+        if (CollectionUtils.isEmpty(menuList)) {
+            // 鍏堝垹闄ゅ師鏉ョ殑璁板綍锛屽啀淇濆瓨鏂扮殑
+            sysRoleMenuService.remove(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, roleId));
+            // 鍒犻櫎缂撳瓨
+            sysUserService.clearUserAuthorityInfoByRoleId(roleId);
+            return "success";
+        }
+        List<SysRoleMenu> roleMenuList = menuList.stream().map(menu -> {
+            SysRoleMenu roleMenu = new SysRoleMenu();
+            roleMenu.setRoleId(roleId);
+            roleMenu.setMenuId(menu.getId());
+            return roleMenu;
+        }).collect(Collectors.toList());
+        // 浣跨敤娴佸鐞嗚彍鍗曞垪琛紝鎻愬彇 children 鐨� id锛屽苟璁剧疆鍒� SysRoleMenu 涓�
+        List<SysRoleMenu> childrenList = menuList.stream()
+                .flatMap(menu -> menu.getChildren().stream()) // 鎵佸钩鍖栧鐞� children 鍒楄〃
+                .map(child -> {
+                    SysRoleMenu roleMenu = new SysRoleMenu();
+                    roleMenu.setRoleId(roleId);
+                    roleMenu.setMenuId(child.getId()); // 璁剧疆 child 鐨� id 鍒� menuId
+                    return roleMenu;
+                })
+                .collect(Collectors.toList());
+        log.info("娓呯┖瑙掕壊鏉冮檺琛ㄤ腑璇ヨ鑹蹭俊鎭�");
+        // 鍏堝垹闄ゅ師鏉ョ殑璁板綍锛屽啀淇濆瓨鏂扮殑
+        sysRoleMenuService.remove(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, roleId));
+        sysRoleMenuService.saveBatch(roleMenuList);
+        sysRoleMenuService.saveBatch(childrenList);
+        // 鍒犻櫎缂撳瓨
+        sysUserService.clearUserAuthorityInfoByRoleId(roleId);
+        return "success";
+    }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java
new file mode 100644
index 0000000..a380ddf
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java
@@ -0,0 +1,93 @@
+package com.mes.userinfo.controller;
+
+
+import com.mes.entity.request.GeneralRequest;
+import com.mes.userinfo.entity.SysUser;
+import com.mes.userinfo.entity.vo.SysUserVO;
+import com.mes.userinfo.service.SysUserService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鐢ㄦ埛琛� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Api(tags = "鐢ㄦ埛绠$悊")
+@RestController
+@RequestMapping("/sys/user")
+public class SysUserController {
+
+    @Autowired
+    private SysUserService sysUserService;
+
+    @ApiOperation("鐢ㄦ埛鐧诲綍")
+    @PostMapping("/login")
+    public Result<Map<String, String>> login(@RequestBody SysUser user) {
+        return Result.success(sysUserService.login(user));
+    }
+
+    @ApiOperation("閫�鍑虹櫥褰�")
+    @PostMapping("/logout")
+    @PreAuthorize("hasAuthority('xt:yh')")
+    public Result<String> logout() {
+        return Result.success(sysUserService.logout());
+    }
+
+    @ApiOperation("鏂板鐢ㄦ埛淇℃伅")
+    @PostMapping("/saveUser")
+//    @PreAuthorize("hasAuthority('sys:user:save')")
+    public Result<String> saveUser(@Validated @RequestBody SysUserVO sysUser) {
+        return Result.success(sysUserService.saveUser(sysUser));
+    }
+
+
+    @ApiOperation("鏇存柊鐢ㄦ埛淇℃伅")
+    @PostMapping("/updateUser")
+//    @PreAuthorize("hasAuthority('sys:user:update')")
+    public Result<List<SysUserVO>> updateUser(@Validated @RequestBody SysUserVO sysUser) {
+        sysUserService.updateUser(sysUser);
+        GeneralRequest request=new GeneralRequest();
+        //request.setKey("");
+        return Result.success(sysUserService.listByUserName(request));
+        //鏇存敼浜嗕慨鏀逛箣鍚庤繑鍥炴墍鏈夌敤鎴峰垪琛�
+    }
+
+    @ApiOperation("閲嶇疆瀵嗙爜")
+    @PostMapping("/resetPassword")
+//    @PreAuthorize("hasAuthority('sys:user:resetPassword')")
+    public Result resetPassword(String userId) {
+        return Result.success(sysUserService.resetPassword(Long.parseLong(userId)));
+    }
+
+
+    @ApiOperation("鑾峰彇鐢ㄦ埛鍒楄〃")
+    @PostMapping("/listByUserName")
+//    @PreAuthorize("hasAuthority('sys:user:list')")
+    public Result<List<SysUserVO>> listByUserName(@RequestBody GeneralRequest request) {
+        return Result.success(sysUserService.listByUserName(request));
+    }
+
+    @ApiOperation("鍒犻櫎鐢ㄦ埛淇℃伅")
+    @PostMapping("/deleteUser")
+//    @PreAuthorize("hasAuthority('sys:user:delete')")
+    public Result<String> deleteUser(@RequestBody List<Long> ids) {
+        return Result.success(sysUserService.deleteUser(ids));
+    }
+
+}
+
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/LoginUser.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/LoginUser.java
new file mode 100644
index 0000000..d60a05f
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/LoginUser.java
@@ -0,0 +1,94 @@
+package com.mes.userinfo.entity;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
+import org.springframework.security.core.userdetails.UserDetails;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/11 15:46
+ * @Description:
+ */
+public class LoginUser implements UserDetails {
+
+
+    private SysUser user;
+
+    /**
+     * 瀛樺偍鏉冮檺淇℃伅
+     */
+    @JSONField(serialize = false)
+    private List<String> permissions;
+
+    /**
+     * 瀛樺偍SpringSecurity璋冪敤getAuthorities()鏂规硶鑾峰彇鐨勬潈闄愪俊鎭殑闆嗗悎
+     */
+    @JSONField(serialize = false)
+    private List<GrantedAuthority> authorities;
+
+
+    public LoginUser() {
+    }
+
+    public LoginUser(SysUser user, List<String> permissions) {
+        this.user = user;
+        this.permissions = permissions;
+    }
+
+    public SysUser getUser() {
+        return user;
+    }
+
+    public void setUser(SysUser user) {
+        this.user = user;
+    }
+
+    @Override
+    public Collection<? extends GrantedAuthority> getAuthorities() {
+
+        // 浼樺寲涓哄彧闇�瑕佺涓�娆¤幏鍙栫殑鏃跺�欒繘琛岄亶鍘嗭紝鍚庨潰鍐嶇敤灏变細浠巃uthorities杩欎釜鎴愬憳鍙橀噺涓幏鍙栦簡锛屼笉浼氬啀杩涜Stream寰幆閬嶅巻浜�
+        if (authorities != null) {
+            return authorities;
+        }
+        //鎶妏ermissions涓瓧绗︿覆绫诲瀷鐨勬潈闄愪俊鎭浆鎹㈡垚GrantedAuthority瀵硅薄瀛樺叆authorities涓�
+        authorities = permissions.stream().
+                map(SimpleGrantedAuthority::new)
+                .collect(Collectors.toList());
+        return authorities;
+    }
+
+    @Override
+    public String getPassword() {
+        return user.getPassword();
+    }
+
+    @Override
+    public String getUsername() {
+        return user.getUserName();
+    }
+
+    @Override
+    public boolean isAccountNonExpired() {
+        return true;
+    }
+
+    @Override
+    public boolean isAccountNonLocked() {
+        return true;
+    }
+
+    @Override
+    public boolean isCredentialsNonExpired() {
+        return true;
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return true;
+    }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUser.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUser.java
new file mode 100644
index 0000000..dcb8384
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUser.java
@@ -0,0 +1,66 @@
+package com.mes.userinfo.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 鐢ㄦ埛琛�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SysUser implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 涓婚敭
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 鐢ㄦ埛鍚�
+     */
+    private String userName;
+
+    /**
+     * 鏄电О
+     */
+    private String nickName;
+
+    /**
+     * 瀵嗙爜
+     */
+    private String password;
+
+    /**
+     * 璐﹀彿鐘舵�侊紙0姝e父 1鍋滅敤锛�
+     */
+    private String status;
+
+    /**
+     * 澶村儚
+     */
+    private String avatar;
+
+    /**
+     * 鐢ㄦ埛绫诲瀷锛�0绠$悊鍛橈紝1鏅�氱敤鎴凤級
+     */
+    private String userType;
+
+    /**
+     * 鍒犻櫎鏍囧織
+     */
+    private Integer delFlag;
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUserRole.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUserRole.java
new file mode 100644
index 0000000..9aa76b4
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUserRole.java
@@ -0,0 +1,38 @@
+package com.mes.userinfo.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@AllArgsConstructor
+public class SysUserRole implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鐢ㄦ埛id
+     */
+    @TableId(type = IdType.NONE)
+    private Long userId;
+
+    /**
+     * 瑙掕壊id
+     */
+    private Long roleId;
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/vo/SysUserVO.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/vo/SysUserVO.java
new file mode 100644
index 0000000..f43f8c7
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/vo/SysUserVO.java
@@ -0,0 +1,63 @@
+package com.mes.userinfo.entity.vo;
+
+import com.mes.role.entity.SysRole;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ * 鐢ㄦ埛琛�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Api(description = "鐢ㄦ埛淇℃伅")
+@Data
+public class SysUserVO implements Serializable {
+
+    @ApiModelProperty(hidden = true)
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 涓婚敭
+     */
+    @ApiModelProperty(value = "涓婚敭", position = 2)
+    private Long id;
+
+    /**
+     * 鐢ㄦ埛鍚�
+     */
+    @ApiModelProperty(value = "鐢ㄦ埛鍚�", position = 3)
+    private String userName;
+
+    /**
+     * 鏄电О
+     */
+    @ApiModelProperty(value = "鏄电О", position = 4)
+    private String nickName;
+
+    /**
+     * 瀵嗙爜
+     */
+    @ApiModelProperty(value = "瀵嗙爜", position = 5)
+    private String password;
+
+    /**
+     * 澶村儚
+     */
+    @ApiModelProperty(value = "澶村儚", position = 6)
+    private String avatar;
+
+    /**
+     * 鐢ㄦ埛鐨勮鑹蹭俊鎭�
+     */
+    @ApiModelProperty(value = "鐢ㄦ埛鐨勮鑹蹭俊鎭�", position = 7)
+    private List<SysRole> roleList;
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java
new file mode 100644
index 0000000..722aa3d
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java
@@ -0,0 +1,18 @@
+package com.mes.userinfo.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.userinfo.entity.SysUser;
+
+/**
+ * <p>
+ * 鐢ㄦ埛琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@DS("northGlassMes")
+public interface SysUserMapper extends MPJBaseMapper<SysUser> {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java
new file mode 100644
index 0000000..697ca74
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java
@@ -0,0 +1,17 @@
+package com.mes.userinfo.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.userinfo.entity.SysUserRole;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+
+public interface SysUserRoleMapper extends MPJBaseMapper<SysUserRole> {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserMapper.xml b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserMapper.xml
new file mode 100644
index 0000000..300e913
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.userinfo.mapper.SysUserMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserRoleMapper.xml b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserRoleMapper.xml
new file mode 100644
index 0000000..0fd2be9
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserRoleMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.userinfo.mapper.SysUserRoleMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserRoleService.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserRoleService.java
new file mode 100644
index 0000000..9351f47
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserRoleService.java
@@ -0,0 +1,17 @@
+package com.mes.userinfo.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.mes.userinfo.entity.SysUserRole;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysUserRoleService extends MPJBaseService<SysUserRole> {
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java
new file mode 100644
index 0000000..467a88a
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java
@@ -0,0 +1,110 @@
+package com.mes.userinfo.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.entity.request.GeneralRequest;
+import com.mes.userinfo.entity.SysUser;
+import com.mes.userinfo.entity.vo.SysUserVO;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鐢ㄦ埛琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysUserService extends IService<SysUser> {
+
+    /**
+     * 鐢ㄦ埛鐧诲綍
+     *
+     * @param user
+     * @return
+     */
+    Map<String, String> login(SysUser user);
+
+    /**
+     * 閫�鍑虹櫥褰�
+     *
+     * @return
+     */
+    String logout();
+
+    /**
+     * 鏂板鐢ㄦ埛淇℃伅
+     *
+     * @param user
+     * @return
+     */
+    String saveUser(SysUserVO user);
+
+    /**
+     * 鏇存柊鐢ㄦ埛淇℃伅
+     *
+     * @param sysUser
+     * @return
+     */
+    SysUserVO updateUser(SysUserVO sysUser);
+
+    /**
+     * 閲嶇疆瀵嗙爜
+     *
+     * @param userId
+     * @return
+     */
+    String resetPassword(Long userId);
+
+    /**
+     * 鎸夊悕绉拌幏鍙栫敤鎴蜂俊鎭�
+     *
+     * @param userName
+     * @return
+     */
+    SysUser queryByUserName(String userName);
+
+    /**
+     * 鎸夊叧閿瓧鑾峰彇鐢ㄦ埛淇℃伅鍒楄〃
+     *
+     * @param request
+     * @return
+     */
+    List<SysUserVO> listByUserName(GeneralRequest request);
+
+    /**
+     * 鍒犻櫎鐢ㄦ埛淇℃伅
+     *
+     * @param ids
+     * @return
+     */
+    String deleteUser(List<Long> ids);
+
+    /**
+     * 鑾峰彇鐢ㄦ埛瑙掕壊鏉冮檺淇℃伅
+     *
+     * @param userId
+     * @return
+     */
+    List<String> getUserAuthorityInfo(Long userId);
+
+    /**
+     * 娓呯┖鐢ㄦ埛鏉冮檺淇℃伅閫氳繃鐢ㄦ埛淇℃伅
+     */
+    void clearUserAuthorityInfo(String userName);
+
+    /**
+     * 娓呯┖鐢ㄦ埛鏉冮檺淇℃伅閫氳繃瑙掕壊id
+     *
+     * @param roleId
+     */
+    void clearUserAuthorityInfoByRoleId(Long roleId);
+
+    /**
+     * 娓呯┖鐢ㄦ埛鏉冮檺淇℃伅閫氳繃鑿滃崟id
+     *
+     * @param menuId
+     */
+    void clearUserAuthorityInfoByMenuId(Long menuId);
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserRoleServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserRoleServiceImpl.java
new file mode 100644
index 0000000..baa93c2
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserRoleServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.userinfo.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.userinfo.entity.SysUserRole;
+import com.mes.userinfo.mapper.SysUserRoleMapper;
+import com.mes.userinfo.service.SysUserRoleService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Service
+public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUserRole> implements SysUserRoleService {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java
new file mode 100644
index 0000000..f6447db
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java
@@ -0,0 +1,269 @@
+package com.mes.userinfo.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.common.config.Const;
+import com.mes.common.utils.JwtUtil;
+import com.mes.common.utils.UserInfoUtils;
+import com.mes.entity.request.GeneralRequest;
+import com.mes.menu.mapper.SysMenuMapper;
+import com.mes.role.entity.SysRole;
+import com.mes.role.entity.SysRoleMenu;
+import com.mes.role.service.SysRoleService;
+import com.mes.userinfo.entity.LoginUser;
+import com.mes.userinfo.entity.SysUser;
+import com.mes.userinfo.entity.SysUserRole;
+import com.mes.userinfo.entity.vo.SysUserVO;
+import com.mes.userinfo.mapper.SysUserMapper;
+import com.mes.userinfo.mapper.SysUserRoleMapper;
+import com.mes.userinfo.service.SysUserRoleService;
+import com.mes.userinfo.service.SysUserService;
+import com.mes.utils.RedisUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 鐢ㄦ埛琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Service
+@Slf4j
+public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements SysUserService, UserDetailsService {
+
+    @Autowired
+    private AuthenticationManager authenticationManager;
+
+    @Autowired
+    private RedisUtil redisUtil;
+
+    @Resource
+    private SysMenuMapper sysMenuMapper;
+
+    @Resource
+    private SysUserRoleService sysUserRoleService;
+
+    @Resource
+    private SysRoleService sysRoleService;
+
+    @Resource
+    BCryptPasswordEncoder passwordEncoder;
+    @Resource
+    private SysUserRoleMapper sysUserRoleMapper;
+
+    @Override
+    public Map<String, String> login(SysUser user) {
+        UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(user.getUserName(), user.getPassword());
+        Authentication authenticate = authenticationManager.authenticate(authenticationToken);
+        if (Objects.isNull(authenticate)) {
+            throw new RuntimeException("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒");
+        }
+        //浣跨敤userid鐢熸垚token
+        LoginUser loginUser = (LoginUser) authenticate.getPrincipal();
+        String userId = loginUser.getUser().getId().toString();
+        String jwt = JwtUtil.generateToken(userId);
+
+        //鏌ヨ鏉冮檺淇℃伅
+//        List<String> perms = sysMenuMapper.selectPermsByUserId(userId);
+        //authenticate瀛樺叆redis
+        redisUtil.setCacheObject("login:" + userId, loginUser);
+        //鎶妕oken鍝嶅簲缁欏墠绔�
+        HashMap<String, String> map = new HashMap<>();
+        map.put("token", jwt);
+        return map;
+    }
+
+    @Override
+    public String logout() {
+        log.info("鐢ㄦ埛閫�鍑�");
+        SysUser user = UserInfoUtils.get();
+        redisUtil.deleteObject("login:" + user.getId());
+        return "娉ㄩ攢鎴愬姛";
+    }
+
+    @Transactional
+    @Override
+    public String saveUser(SysUserVO user) {
+        log.info("淇濆瓨鐢ㄦ埛淇℃伅");
+        // 榛樿瀵嗙爜
+        String password = passwordEncoder.encode(Const.DEFULT_PASSWORD);
+        user.setPassword(password);
+        SysUser sysUser = new SysUser();
+        BeanUtils.copyProperties(user, sysUser);
+        this.save(sysUser);
+        saveUserRole(user.getRoleList(), sysUser.getId());
+        return "success";
+    }
+
+    @Transactional
+    @Override
+    public SysUserVO updateUser(SysUserVO user) {
+        log.info("鏇存柊鐢ㄦ埛淇℃伅");
+        SysUser sysUser = new SysUser();
+        BeanUtils.copyProperties(user, sysUser);
+        this.updateById(sysUser);
+        log.info("鍒犻櫎鐢ㄦ埛瑙掕壊淇℃伅");
+        List<Long> roleIds = user.getRoleList().stream().map(SysRole::getId).collect(Collectors.toList());
+//        sysUserRoleService.remove(new LambdaQueryWrapper<SysUserRole>()
+//                .eq(SysUserRole::getUserId, sysUser.getId()).in(CollectionUtil.isNotEmpty(roleIds), SysUserRole::getRoleId, roleIds));
+        SysUserRole sysUserRole = new SysUserRole(sysUser.getId(),roleIds.get(0));
+        sysUserRoleMapper.updateById(sysUserRole);
+//        log.info("淇濆瓨鐢ㄦ埛瑙掕壊淇℃伅");
+//        saveUserRole(user.getRoleList(), sysUser.getId());
+        return user;
+    }
+
+    @Override
+    public String resetPassword(Long userId) {
+        log.info("閲嶇疆瀵嗙爜涓簕}", Const.DEFULT_PASSWORD);
+        SysUser sysUser = new SysUser();
+        sysUser.setId(userId);
+        String password = passwordEncoder.encode(Const.DEFULT_PASSWORD);
+        sysUser.setPassword(password);
+        this.updateById(sysUser);
+        return "success";
+    }
+
+    @Override
+    public SysUser queryByUserName(String userName) {
+        return baseMapper.selectOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, userName));
+    }
+
+    @Override
+    public List<SysUserVO> listByUserName(GeneralRequest request) {
+        MPJLambdaWrapper<SysUser> wrapper = new MPJLambdaWrapper<>();
+        wrapper.selectAll(SysUser.class)
+                .selectCollection(SysRole.class, SysUserVO::getRoleList)
+                .leftJoin(SysUserRole.class, SysUserRole::getUserId, SysUser::getId)
+                .leftJoin(SysRole.class, SysRole::getId, SysUserRole::getRoleId)
+                .like(StringUtils.hasText(request.getKey()), SysUser::getUserName, request.getKey());
+        return baseMapper.selectJoinList(SysUserVO.class, wrapper);
+    }
+
+    @Transactional
+    @Override
+    public String deleteUser(List<Long> ids) {
+        this.removeByIds(ids);
+        sysUserRoleService.remove(new QueryWrapper<SysUserRole>().in("user_id", ids));
+        return "success";
+
+    }
+
+    @Override
+    public List<String> getUserAuthorityInfo(Long userId) {
+        SysUser sysUser = baseMapper.selectById(userId);
+
+        //  ROLE_admin,ROLE_normal,sys:user:list,....
+        String authority = "";
+        if (redisUtil.hasKey("GrantedAuthority:" + sysUser.getUserName())) {
+            authority = redisUtil.getCacheObject("GrantedAuthority:" + sysUser.getUserName());
+
+        } else {
+            // 鑾峰彇瑙掕壊缂栫爜
+            List<SysRole> roles = sysRoleService.list(new QueryWrapper<SysRole>()
+                    .inSql("id", "select role_id from sys_user_role where user_id = " + userId));
+
+            if (roles.size() > 0) {
+                String roleCodes = roles.stream().map(r -> "ROLE_" + r.getRoleKey()).collect(Collectors.joining(","));
+                authority = roleCodes.concat(",");
+            }
+
+            // 鑾峰彇鑿滃崟鎿嶄綔缂栫爜
+            List<String> perms = sysMenuMapper.selectPermsByUserId(userId);
+            if (perms.size() > 0) {
+                String menuPerms = String.join(",", perms);
+                authority = authority.concat(menuPerms);
+            }
+
+            redisUtil.setCacheObject("GrantedAuthority:" + sysUser.getUserName(), authority, 60 * 60, TimeUnit.SECONDS);
+        }
+        return Arrays.stream(authority.split(",")).collect(Collectors.toList());
+    }
+
+    @Override
+    public void clearUserAuthorityInfo(String userName) {
+        redisUtil.deleteObject("GrantedAuthority:" + userName);
+    }
+
+    @Override
+    public void clearUserAuthorityInfoByRoleId(Long roleId) {
+        List<SysUser> sysUsers = this.list(new QueryWrapper<SysUser>()
+                .inSql("id", "select user_id from sys_user_role where role_id = " + roleId));
+
+        sysUsers.forEach(u -> {
+            this.clearUserAuthorityInfo(u.getUserName());
+        });
+
+    }
+
+    @Override
+    public void clearUserAuthorityInfoByMenuId(Long menuId) {
+        MPJLambdaWrapper<SysUserRole> wrapper = new MPJLambdaWrapper<SysUserRole>().selectAll(SysUser.class).distinct()
+                .leftJoin(SysUser.class, SysUser::getId, SysUserRole::getUserId)
+                .leftJoin(SysRoleMenu.class, SysRoleMenu::getRoleId, SysUserRole::getRoleId)
+                .eq(SysRoleMenu::getMenuId, menuId);
+        List<SysUser> sysUsers = sysUserRoleService.selectJoinList(SysUser.class, wrapper);
+        sysUsers.forEach(u -> {
+            this.clearUserAuthorityInfo(u.getUserName());
+        });
+    }
+
+    /**
+     * 瀹炵幇UserDetailsService鎺ュ彛锛屼粠鏁版嵁搴撳唴鑾峰彇鐢ㄦ埛鍙婃潈闄愪俊鎭�
+     *
+     * @param username
+     * @return
+     * @throws UsernameNotFoundException
+     */
+    @Override
+    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
+        LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(SysUser::getUserName, username);
+        SysUser user = this.baseMapper.selectOne(lqw);
+        //鍒ゆ柇鏄惁涓虹┖
+        if (Objects.isNull(user)) {
+            throw new RuntimeException("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒");
+        }
+        //鏌ヨ鏉冮檺淇℃伅
+        List<String> perms = sysMenuMapper.selectPermsByUserId(user.getId());
+
+        return new LoginUser(user, perms);
+    }
+
+
+    private void saveUserRole(List<SysRole> roles, Long userId) {
+        log.info("淇濆瓨鐢ㄦ埛瑙掕壊淇℃伅");
+        List<SysUserRole> userRoles = new ArrayList<>();
+        if (CollectionUtils.isEmpty(roles)) {
+            log.info("淇濆瓨鐢ㄦ埛瑙掕壊淇℃伅涓虹┖锛岀粰榛樿鏅�氱敤鎴疯鑹�");
+            userRoles.add(new SysUserRole(userId, Const.DEFULT_ROLE));
+        } else {
+            log.info("淇濆瓨鐢ㄦ埛瑙掕壊淇℃伅");
+            userRoles = roles.stream().map(e -> new SysUserRole(userId, e.getId())).collect(Collectors.toList());
+        }
+        sysUserRoleService.saveBatch(userRoles);
+    }
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/resources/application-dev.yml b/hangzhoumesParent/common/springsecurity/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..56b0ecb
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/resources/application-dev.yml
@@ -0,0 +1,15 @@
+spring:
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    url: jdbc:mysql://10.153.19.150:3306/north_glass_mes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
+    username: root
+    password: beibo.123/
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 10.153.19.150:8848
+  redis:
+    database: 0
+    host: 10.153.19.150
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/src/main/resources/application-loc.yml b/hangzhoumesParent/common/springsecurity/src/main/resources/application-loc.yml
new file mode 100644
index 0000000..8068d08
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/resources/application-loc.yml
@@ -0,0 +1,15 @@
+spring:
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    url: jdbc:mysql://192.168.56.10:3306/north_glass_mes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
+    username: root
+    password: root
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/src/main/resources/application-prod.yml b/hangzhoumesParent/common/springsecurity/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..56b0ecb
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/resources/application-prod.yml
@@ -0,0 +1,15 @@
+spring:
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    url: jdbc:mysql://10.153.19.150:3306/north_glass_mes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
+    username: root
+    password: beibo.123/
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 10.153.19.150:8848
+  redis:
+    database: 0
+    host: 10.153.19.150
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/src/main/resources/mapper/SysMenuMapper.xml b/hangzhoumesParent/common/springsecurity/src/main/resources/mapper/SysMenuMapper.xml
new file mode 100644
index 0000000..38607e4
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/resources/mapper/SysMenuMapper.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.menu.mapper.SysMenuMapper">
+
+    <select id="selectPermsByUserId" resultType="java.lang.String">
+        SELECT DISTINCT m.perms
+        FROM sys_user_role ur
+                 LEFT JOIN sys_role r ON ur.role_id = r.id
+                 LEFT JOIN sys_role_menu rm ON ur.role_id = rm.role_id
+                 LEFT JOIN sys_menu m ON m.id = rm.menu_id
+        WHERE user_id = #{userid}
+          AND r.status = 0
+          AND m.status = 0
+    </select>
+</mapper>
diff --git a/hangzhoumesParent/common/springsecurity/target/classes/application-dev.yml b/hangzhoumesParent/common/springsecurity/target/classes/application-dev.yml
new file mode 100644
index 0000000..56b0ecb
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/target/classes/application-dev.yml
@@ -0,0 +1,15 @@
+spring:
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    url: jdbc:mysql://10.153.19.150:3306/north_glass_mes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
+    username: root
+    password: beibo.123/
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 10.153.19.150:8848
+  redis:
+    database: 0
+    host: 10.153.19.150
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/target/classes/application-loc.yml b/hangzhoumesParent/common/springsecurity/target/classes/application-loc.yml
new file mode 100644
index 0000000..8068d08
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/target/classes/application-loc.yml
@@ -0,0 +1,15 @@
+spring:
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    url: jdbc:mysql://192.168.56.10:3306/north_glass_mes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
+    username: root
+    password: root
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/target/classes/application-prod.yml b/hangzhoumesParent/common/springsecurity/target/classes/application-prod.yml
new file mode 100644
index 0000000..56b0ecb
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/target/classes/application-prod.yml
@@ -0,0 +1,15 @@
+spring:
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    url: jdbc:mysql://10.153.19.150:3306/north_glass_mes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
+    username: root
+    password: beibo.123/
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 10.153.19.150:8848
+  redis:
+    database: 0
+    host: 10.153.19.150
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/target/classes/mapper/SysMenuMapper.xml b/hangzhoumesParent/common/springsecurity/target/classes/mapper/SysMenuMapper.xml
new file mode 100644
index 0000000..38607e4
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/target/classes/mapper/SysMenuMapper.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.menu.mapper.SysMenuMapper">
+
+    <select id="selectPermsByUserId" resultType="java.lang.String">
+        SELECT DISTINCT m.perms
+        FROM sys_user_role ur
+                 LEFT JOIN sys_role r ON ur.role_id = r.id
+                 LEFT JOIN sys_role_menu rm ON ur.role_id = rm.role_id
+                 LEFT JOIN sys_menu m ON m.id = rm.menu_id
+        WHERE user_id = #{userid}
+          AND r.status = 0
+          AND m.status = 0
+    </select>
+</mapper>
diff --git a/hangzhoumesParent/gateway/pom.xml b/hangzhoumesParent/gateway/pom.xml
new file mode 100644
index 0000000..ec368a6
--- /dev/null
+++ b/hangzhoumesParent/gateway/pom.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>hangzhoumesParent</artifactId>
+        <groupId>com.mes</groupId>
+        <version>1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>gateway</artifactId>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+    <dependencies>
+        <!--        鏈嶅姟娉ㄥ唽/鍙戠幇-->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-gateway</artifactId>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/gateway/src/main/java/com/mes/GateWayApplication.java b/hangzhoumesParent/gateway/src/main/java/com/mes/GateWayApplication.java
new file mode 100644
index 0000000..f1b5399
--- /dev/null
+++ b/hangzhoumesParent/gateway/src/main/java/com/mes/GateWayApplication.java
@@ -0,0 +1,20 @@
+package com.mes;
+
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/3/28 11:21
+ * @Description:
+ */
+@SpringBootApplication
+@EnableDiscoveryClient
+public class GateWayApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(GateWayApplication.class, args);
+    }
+}
diff --git a/hangzhoumesParent/gateway/src/main/java/com/mes/config/MyCorsConfig.java b/hangzhoumesParent/gateway/src/main/java/com/mes/config/MyCorsConfig.java
new file mode 100644
index 0000000..f7f9f8d
--- /dev/null
+++ b/hangzhoumesParent/gateway/src/main/java/com/mes/config/MyCorsConfig.java
@@ -0,0 +1,34 @@
+package com.mes.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.reactive.CorsWebFilter;
+import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/3/25 14:13
+ * @Description:
+ */
+@Configuration
+public class MyCorsConfig {
+    @Bean
+    public CorsWebFilter corsFilter() {
+
+        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+        CorsConfiguration corsConfiguration = new CorsConfiguration();
+        //鍏佽鍝簺澶磋法鍩�
+        corsConfiguration.addAllowedHeader("*");
+        // 鍏佽鍝簺鏂瑰紡璺ㄥ煙   get  post  delete 绛夋柟寮�
+        corsConfiguration.addAllowedMethod("*");
+        //鍏佽鍝簺璇锋眰鏉ユ簮璺ㄥ煙    *  浠绘剰鏉ユ簮
+        corsConfiguration.addAllowedOrigin("*");
+        // 鏄惁鍏佽鎼哄甫cooker璺ㄥ煙
+        corsConfiguration.setAllowCredentials(true);
+        //娉ㄥ唽璺ㄨ秺閰嶇疆       /**閰嶇疆璇锋眰璺緞
+        source.registerCorsConfiguration("/**", corsConfiguration);
+        return new CorsWebFilter(source);
+    }
+
+}
diff --git a/hangzhoumesParent/gateway/src/main/resources/application.yml b/hangzhoumesParent/gateway/src/main/resources/application.yml
new file mode 100644
index 0000000..6cecd95
--- /dev/null
+++ b/hangzhoumesParent/gateway/src/main/resources/application.yml
@@ -0,0 +1,70 @@
+server:
+  port: 88
+spring:
+  application:
+    name: gateway
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+    gateway:
+      discovery:
+        locator:
+          enabled: true
+      routes:
+        - id: cacheGlass
+          uri: lb://cacheGlass
+          predicates:
+            - Path=/api/cacheGlass/**
+          filters:
+            - StripPrefix=2
+
+        - id: cacheVerticalGlass
+          uri: lb://cacheVerticalGlass
+          predicates:
+            - Path=/api/cacheVerticalGlass/**
+          filters:
+            - StripPrefix=2
+
+        - id: loadGlass
+          uri: lb://loadGlass
+          predicates:
+            - Path=/api/loadGlass/**
+          filters:
+            - StripPrefix=2
+
+        - id: temperingGlass
+          uri: lb://temperingGlass
+          predicates:
+            - Path=/api/temperingGlass/**
+          filters:
+            - StripPrefix=2
+
+        - id: unLoadGlass
+          uri: lb://unLoadGlass
+          predicates:
+            - Path=/api/unLoadGlass/**
+          filters:
+            - StripPrefix=2
+
+        - id: glassStorage
+          uri: lb://glassStorage
+          predicates:
+            - Path=/api/glassStorage/**
+          filters:
+            - StripPrefix=2
+
+        - id: hollowGlass
+          uri: lb://hollowGlass
+          predicates:
+            - Path=/api/hollowGlass/**
+          filters:
+            - StripPrefix=2
+
+#        - id: unLoadGlass
+#          uri: lb://unLoadGlass
+#          predicates:
+#            - Path=/unLoadGlass/**
+#          filters:
+#            - RewritePath=/unLoadGlass/(?<segment>.*), /$\{segment}
+
diff --git a/hangzhoumesParent/gateway/target/classes/application.yml b/hangzhoumesParent/gateway/target/classes/application.yml
new file mode 100644
index 0000000..6cecd95
--- /dev/null
+++ b/hangzhoumesParent/gateway/target/classes/application.yml
@@ -0,0 +1,70 @@
+server:
+  port: 88
+spring:
+  application:
+    name: gateway
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+    gateway:
+      discovery:
+        locator:
+          enabled: true
+      routes:
+        - id: cacheGlass
+          uri: lb://cacheGlass
+          predicates:
+            - Path=/api/cacheGlass/**
+          filters:
+            - StripPrefix=2
+
+        - id: cacheVerticalGlass
+          uri: lb://cacheVerticalGlass
+          predicates:
+            - Path=/api/cacheVerticalGlass/**
+          filters:
+            - StripPrefix=2
+
+        - id: loadGlass
+          uri: lb://loadGlass
+          predicates:
+            - Path=/api/loadGlass/**
+          filters:
+            - StripPrefix=2
+
+        - id: temperingGlass
+          uri: lb://temperingGlass
+          predicates:
+            - Path=/api/temperingGlass/**
+          filters:
+            - StripPrefix=2
+
+        - id: unLoadGlass
+          uri: lb://unLoadGlass
+          predicates:
+            - Path=/api/unLoadGlass/**
+          filters:
+            - StripPrefix=2
+
+        - id: glassStorage
+          uri: lb://glassStorage
+          predicates:
+            - Path=/api/glassStorage/**
+          filters:
+            - StripPrefix=2
+
+        - id: hollowGlass
+          uri: lb://hollowGlass
+          predicates:
+            - Path=/api/hollowGlass/**
+          filters:
+            - StripPrefix=2
+
+#        - id: unLoadGlass
+#          uri: lb://unLoadGlass
+#          predicates:
+#            - Path=/unLoadGlass/**
+#          filters:
+#            - RewritePath=/unLoadGlass/(?<segment>.*), /$\{segment}
+
diff --git a/hangzhoumesParent/mesHub/pom.xml b/hangzhoumesParent/mesHub/pom.xml
new file mode 100644
index 0000000..6e16f26
--- /dev/null
+++ b/hangzhoumesParent/mesHub/pom.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>hangzhoumesParent</artifactId>
+        <groupId>com.mes</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>mesHub</artifactId>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+    <dependencies>
+        <!--web 闇�瑕佸惎鍔ㄩ」鐩�-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+
+        <dependency>
+            <artifactId>servicebase</artifactId>
+            <groupId>com.mes</groupId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/mesHub/src/main/java/com/mes/MesHubApplication.java b/hangzhoumesParent/mesHub/src/main/java/com/mes/MesHubApplication.java
new file mode 100644
index 0000000..5463108
--- /dev/null
+++ b/hangzhoumesParent/mesHub/src/main/java/com/mes/MesHubApplication.java
@@ -0,0 +1,25 @@
+package com.mes;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/11/28 15:52
+ * @Description:
+ */
+@SpringBootApplication
+@EnableSwagger2WebMvc
+@EnableDiscoveryClient
+@MapperScan(basePackages = "com.mes.*.mapper")
+@EnableScheduling
+public class MesHubApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(MesHubApplication.class, args);
+    }
+
+}
diff --git a/hangzhoumesParent/mesHub/src/main/resources/application-dev.yml b/hangzhoumesParent/mesHub/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..2cbfe35
--- /dev/null
+++ b/hangzhoumesParent/mesHub/src/main/resources/application-dev.yml
@@ -0,0 +1,22 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  application:
+    name: cacheGlass
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/mesHub/src/main/resources/application.yml b/hangzhoumesParent/mesHub/src/main/resources/application.yml
new file mode 100644
index 0000000..18512da
--- /dev/null
+++ b/hangzhoumesParent/mesHub/src/main/resources/application.yml
@@ -0,0 +1,30 @@
+server:
+  port: 8180
+
+spring:
+  application:
+    name: mesHub
+  liquibase:
+    enabled: false
+  task:
+    scheduling:
+      pool:
+        size: 10
+      thread-name-prefix: mesHub
+  profiles:
+    active: dev
+mybatis-plus:
+  mapper-locations: classpath*:mapper/*.xml
+  configuration:
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+kangaroohy:
+  milo:
+    enabled: false
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://192.168.2.100:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
+
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/pom.xml b/hangzhoumesParent/moduleService/CacheGlassModule/pom.xml
new file mode 100644
index 0000000..974c18f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/pom.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>moduleService</artifactId>
+        <groupId>com.mes</groupId>
+        <version>1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>cacheGlass</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.samba.jcifs</groupId>
+            <artifactId>jcifs</artifactId>
+            <version>1.2.19</version>
+        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.github.yulichang</groupId>-->
+<!--            <artifactId>mybatis-plus-join-boot-starter</artifactId>-->
+<!--            <version>1.4.12</version>-->
+<!--        </dependency>-->
+    </dependencies>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+
+</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/AppRunnerConfig.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/AppRunnerConfig.java
new file mode 100644
index 0000000..1800c86
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/AppRunnerConfig.java
@@ -0,0 +1,22 @@
+package com.mes;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+@Order(1)
+
+public class AppRunnerConfig implements ApplicationRunner {
+
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+        // TODO Auto-generated method stub
+        log.info("鍚姩瀹屾垚");
+//        S7object.getinstance().start();
+
+    }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/CacheGlassModuleApplication.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/CacheGlassModuleApplication.java
new file mode 100644
index 0000000..b3de82f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/CacheGlassModuleApplication.java
@@ -0,0 +1,32 @@
+package com.mes;
+
+import lombok.extern.slf4j.Slf4j;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/3/25 10:49
+ * @Description:
+ */
+@Slf4j
+@SpringBootApplication
+@MapperScan("com.mes.*.mapper")
+@EnableDiscoveryClient
+@EnableSwagger2WebMvc
+@EnableScheduling
+public class CacheGlassModuleApplication {
+
+    public static void main(String[] args) {
+        try {
+            SpringApplication.run(CacheGlassModuleApplication.class, args);
+        } catch (Exception e) {
+            log.error(e.getMessage());
+        }
+
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/S7object.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/S7object.java
new file mode 100644
index 0000000..f63bc63
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/S7object.java
@@ -0,0 +1,61 @@
+package com.mes.common;
+
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.mes.device.PlcParameterObject;
+import com.mes.tools.InitUtil;
+import com.mes.tools.S7control;
+
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 15:13
+ * @Description:
+ */
+public class S7object extends Thread {
+    public S7control plccontrol; // PLC閫氳绫诲疄渚�
+    private EPlcType plcType = EPlcType.S1200; // 瑗块棬瀛怭LC绫诲瀷
+    private String ip = "192.168.10.11"; // plc ip鍦板潃
+    private int port = 102; // plc 绔彛鍙�
+
+
+    public PlcParameterObject PlcMesObject;
+    private static volatile S7object instance = null;
+
+    private S7object() {
+        if (plccontrol == null) {
+            plccontrol = new S7control(plcType, ip, port, 0, 0);
+            String PlcLoadGlass = System.getProperty("user.dir") + "/JsonFile/PlcCacheGlass.json";
+//            String PlcLoadGlass=S7object.class.getResource("/JsonFile/PlcCacheGlass.json").getPath();
+            PlcMesObject = InitUtil.initword(PlcLoadGlass);
+        }
+    }
+
+    // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
+    public static S7object getinstance() {
+        if (instance == null) {
+            synchronized (S7object.class) {
+                if (instance == null) {
+                    instance = new S7object();
+                }
+            }
+        }
+        return instance;
+    }
+
+    @Override
+    public void run() {
+        while (this != null) {
+            try {
+                Thread.sleep(100);
+
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+
+            byte[] getplcvlues = plccontrol.readByte(PlcMesObject.getPlcAddressBegin(), PlcMesObject.getPlcAddressLength());
+            if (getplcvlues != null) {
+                PlcMesObject.setPlcParameterList(getplcvlues);
+            }
+        }
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/SmbTool.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/SmbTool.java
new file mode 100644
index 0000000..2b5c9d5
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/SmbTool.java
@@ -0,0 +1,71 @@
+package com.mes.common;
+
+import jcifs.smb.NtlmPasswordAuthentication;
+import jcifs.smb.SmbFile;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class SmbTool {
+    public static  String USER_DOMAIN=null;//鍏变韩璁$畻鏈篿p   "192.168.3.102";
+    public  static  String USER_ACCOUNT=null;//鐧诲綍鍏变韩鏂囦欢澶� 鐢ㄦ埛鍚� "aaa"锛屽鏋滄槸鍏变韩鏄棤瀵嗙爜妯″紡 姝ゅ鍊艰缃负 null;
+    public  static  String USER_PWS=null;//鐧诲綍鍏变韩鏂囦欢澶�  瀵嗙爜"guoyujie"锛屽鏋滄槸鍏变韩鏄棤瀵嗙爜妯″紡 姝ゅ鍊艰缃负 null;
+
+    /**
+     *  test 娴嬭瘯绀轰緥
+     */
+    private void test()
+    {
+        int index= SmbTool.getDescriptionIndex("log","P20240522");//杈撳叆鍒囧壊鏈哄叡浜枃浠跺す鍚嶅瓧銆佸伐绋嬪彿锛岃繑鍥炲綋鍓嶅伐绋嬫鍦ㄥ垏鍓茬殑鐗堝浘鍙�
+        System.out.print(index);
+    }
+    /**
+     *  smbGetall 杩斿洖鎸囧畾鐩綍涓嬬殑鏂囦欢鍚嶅瓧
+     * @param   GoalUrl 杩滅鐩綍锛�"smb://192.168.2.100//ceshi//"锛�
+     */
+    public static String[] smbGetallFilenames(String GoalUrl) {
+        NtlmPasswordAuthentication auth=new NtlmPasswordAuthentication(USER_DOMAIN,USER_ACCOUNT,USER_PWS);
+        List<String> filenames=new ArrayList<>();
+        try {
+            SmbFile remoteFile = new SmbFile(GoalUrl,auth);
+            if (remoteFile == null) {
+                return filenames.toArray(new String[]{});
+            }
+            if (remoteFile.exists())
+            {
+                SmbFile[] listFiles = remoteFile.listFiles();
+                for(int i = 0; i < listFiles.length; i++) {
+                    filenames.add(listFiles[i].getName());
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return filenames.toArray(new String[]{});
+    }
+    /**
+     *  getDescriptionIndex 鏍规嵁宸ョ▼鍙凤紝杩斿洖褰撳墠姝e湪鍒囧壊鐨勭増鍥惧彿
+     * @param   folderName 鍏变韩鏂囦欢澶瑰悕瀛�
+     * @param   project_no 宸ョ▼鍙�
+     */
+    public static int getDescriptionIndex(String folderName,String project_no)
+    {
+        SimpleDateFormat formatter= new SimpleDateFormat("yyyyMMdd");
+        Date date = new Date(System.currentTimeMillis());
+        System.out.println(formatter.format(date));
+        String[] getfilenames= smbGetallFilenames("smb://"+USER_DOMAIN+"/"+folderName+"/"+formatter.format(date)+"/");
+        for (int i = 0; i < getfilenames.length; i++) {
+            String[] splitvalues= getfilenames[i].split("_");
+            if (splitvalues.length>=3&&splitvalues[1].trim().equals(project_no))
+            {
+                String[] indexstr= splitvalues[2].trim().split("\\.");
+                if (indexstr.length>1) {
+                    return  Integer.parseInt(indexstr[0]);
+                }
+            }
+        }
+        return -1;
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/config/S7ConfigWL1.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/config/S7ConfigWL1.java
new file mode 100644
index 0000000..b0d33b5
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/config/S7ConfigWL1.java
@@ -0,0 +1,21 @@
+package com.mes.config;
+
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer;
+import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/4/30 13:50
+ * @Description:
+ */
+@Configuration
+public class S7ConfigWL1 {
+    @Bean
+    public S7Serializer s7Serializer() {
+        S7PLC s7PLC = new S7PLC(EPlcType.S1200, "192.169.10.100");
+        return S7Serializer.newInstance(s7PLC);
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java
new file mode 100644
index 0000000..ac27238
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java
@@ -0,0 +1,45 @@
+package com.mes.edgglasstask.controller;
+
+
+import com.mes.edgglasstask.entity.request.EdgGlassInfoRequest;
+import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-05-11
+ */
+@Api(tags = "纾ㄨ竟闃熷垪淇℃伅")
+@RestController
+@RequestMapping("/edgGlassTaskInfo")
+public class EdgGlassTaskInfoController {
+
+    @Autowired
+    EdgGlassTaskInfoService edgGlassTaskInfoService;
+
+    /**
+     * 璁剧疆纾ㄨ竟闃熷垪鏌ヨ鍙傛暟
+     *
+     * @param request
+     * @return
+     */
+    @PostMapping("/setEdgGlassInfoRequest")
+    @ApiOperation(value = "璁剧疆纾ㄨ竟闃熷垪鏌ヨ鍙傛暟", notes = "璁剧疆纾ㄨ竟闃熷垪鏌ヨ鍙傛暟")
+    public Result<String> setEdgGlassInfoRequest(@RequestBody EdgGlassInfoRequest request) {
+        edgGlassTaskInfoService.setEdgGlassInfoRequest(request);
+        return Result.build(200, "鏌ヨ鎴愬姛", "1");
+    }
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java
new file mode 100644
index 0000000..3d5c70c
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java
@@ -0,0 +1,88 @@
+package com.mes.edgglasstask.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author wu
+ * @since 2024-05-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class EdgGlassTaskInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 纾ㄨ竟浠诲姟id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * 鐜荤拑id
+     */
+    @ApiModelProperty(value = "鐜荤拑id", position = 2)
+    private String glassId;
+
+    /**
+     * 瀹�
+     */
+    @ApiModelProperty(value = "瀹�", position = 3)
+    private Integer width;
+
+    /**
+     * 楂�
+     */
+    @ApiModelProperty(value = "楂�", position = 4)
+    private Integer height;
+
+    /**
+     * 鍘氬害
+     */
+    @ApiModelProperty(value = "鍘氬害", position = 5)
+    private Integer thickness;
+
+    /**
+     * 鑶滅郴
+     */
+    @ApiModelProperty(value = "鑶滅郴", position = 6)
+    private String filmsid;
+
+    /**
+     * 鐘舵��
+     */
+    @ApiModelProperty(value = "鐘舵��", position = 7)
+    private Integer state;
+
+    /**
+     * 绾胯矾
+     */
+    @ApiModelProperty(value = "绾胯矾", position = 8)
+    private Integer line;
+
+    /**
+     * 绾胯矾
+     */
+    @ApiModelProperty(value = "寮�濮嬫椂闂�", position = 9)
+    private Date createTime;
+    /**
+     * 绾胯矾
+     */
+    @ApiModelProperty(value = "鏇存柊鏃堕棿", position = 10)
+    private Date updateTime;
+
+    @TableLogic
+    private int deleted;
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/request/EdgGlassInfoRequest.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/request/EdgGlassInfoRequest.java
new file mode 100644
index 0000000..973b4c2
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/request/EdgGlassInfoRequest.java
@@ -0,0 +1,40 @@
+package com.mes.edgglasstask.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/8/7 16:16
+ * @Description:
+ */
+@Data
+public class EdgGlassInfoRequest {
+
+    /**
+     * 纾ㄨ竟绾� 2001   2002
+     */
+    private List<Integer> cellList;
+    /**
+     * 鐘舵��  0 寰呭鐞�  1 澶勭悊涓�  2 澶勭悊瀹屾垚
+     */
+    private List<Integer> stateList;
+
+    /**
+     * 寮�濮嬫椂闂�
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date beginDate;
+
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date endDate;
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/mapper/EdgGlassTaskInfoMapper.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/mapper/EdgGlassTaskInfoMapper.java
new file mode 100644
index 0000000..f14819b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/mapper/EdgGlassTaskInfoMapper.java
@@ -0,0 +1,18 @@
+package com.mes.edgglasstask.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-05-11
+ */
+@DS("salve_northGlassMes")
+public interface EdgGlassTaskInfoMapper extends BaseMapper<EdgGlassTaskInfo> {
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java
new file mode 100644
index 0000000..45651a3
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java
@@ -0,0 +1,28 @@
+package com.mes.edgglasstask.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+import com.mes.edgglasstask.entity.request.EdgGlassInfoRequest;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-05-11
+ */
+public interface EdgGlassTaskInfoService extends IService<EdgGlassTaskInfo> {
+
+    List<EdgGlassTaskInfo> selectEdgInfo();
+
+    String setEdgGlassInfoRequest(EdgGlassInfoRequest request);
+    /**
+     * 鏌ヨ鍒ゆ柇纾ㄨ竟绾挎槸鍚︽湁鐜荤拑杩愯
+     * @param
+     * @return
+     */
+    List<EdgGlassTaskInfo> selectTaskCacheIsRun();
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java
new file mode 100644
index 0000000..c1a12a5
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java
@@ -0,0 +1,92 @@
+package com.mes.edgglasstask.service.impl;
+
+import cn.smallbun.screw.core.util.CollectionUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.common.config.ConstSysConfig;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+import com.mes.edgglasstask.entity.request.EdgGlassInfoRequest;
+import com.mes.edgglasstask.mapper.EdgGlassTaskInfoMapper;
+import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
+import com.mes.sysconfig.service.SysConfigService;
+import com.mes.tools.DateUtil;
+import com.mes.utils.RedisUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-05-11
+ */
+@Service
+public class EdgGlassTaskInfoServiceImpl extends ServiceImpl<EdgGlassTaskInfoMapper, EdgGlassTaskInfo> implements EdgGlassTaskInfoService {
+
+    @Autowired
+    RedisUtil redisUtil;
+    @Resource
+    SysConfigService sysConfigService;
+
+//    @Value("${mes.ratio}")
+//    private int ratio;
+
+
+    @Override
+    public List<EdgGlassTaskInfo> selectEdgInfo() {
+        int ratio = sysConfigService.queryConfigValue(ConstSysConfig.CACHE_RATIO);
+        EdgGlassInfoRequest request = redisUtil.getCacheObject("edgGlassRequest");
+
+        if (null == request) {
+            request = new EdgGlassInfoRequest();
+        }
+        if (null == request.getBeginDate()) {
+            request.setBeginDate(DateUtil.getBeginDate());
+            request.setEndDate(DateUtil.getEndDate());
+        }
+        LambdaQueryWrapper<EdgGlassTaskInfo> edgGlassWrapper = new LambdaQueryWrapper<EdgGlassTaskInfo>()
+                .in(CollectionUtils.isNotEmpty(request.getCellList()), EdgGlassTaskInfo::getLine, request.getCellList())
+                .in(CollectionUtils.isNotEmpty(request.getStateList()), EdgGlassTaskInfo::getState, request.getStateList())
+                .between(null != request.getBeginDate(), EdgGlassTaskInfo::getCreateTime, request.getBeginDate(), request.getEndDate())
+                .orderByDesc(EdgGlassTaskInfo::getCreateTime);
+        List<EdgGlassTaskInfo> list = this.list(edgGlassWrapper);
+        list.stream().forEach(e -> {
+            e.setWidth(e.getWidth() / ratio);
+            e.setHeight(e.getHeight() / ratio);
+            e.setThickness(e.getThickness() / ratio);
+        });
+        return list;
+    }
+
+    @Override
+    public String setEdgGlassInfoRequest(EdgGlassInfoRequest request) {
+        if (request == null) {
+            redisUtil.deleteObject("edgGlassRequest");
+        } else {
+            redisUtil.setCacheObject("edgGlassRequest", request);
+        }
+        return "success";
+    }
+
+    /**
+     * 鏌ヨ鍒ゆ柇纾ㄨ竟绾挎槸鍚︽湁鐜荤拑杩愯
+     *
+     * @param
+     * @return
+     */
+    @Override
+    public List<EdgGlassTaskInfo> selectTaskCacheIsRun() {
+        QueryWrapper<EdgGlassTaskInfo> wrapper = new QueryWrapper<EdgGlassTaskInfo>()
+                .select("line")
+                .eq("state", 1)
+                .groupBy("line");
+
+        return this.list(wrapper);
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
new file mode 100644
index 0000000..b1ac0a5
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
@@ -0,0 +1,59 @@
+package com.mes.edgstoragecage.controller;
+
+import com.mes.damage.entity.request.DamageRequest;
+import com.mes.edgstoragecage.entity.EdgStorageCage;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
+import com.mes.edgstoragecage.service.EdgStorageCageService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Api(tags = "鐞嗙墖绗肩紦瀛�")
+@RestController
+@RequestMapping("/edgStorageCage")
+public class EdgStorageCageController {
+
+    @Autowired
+    private EdgStorageCageService edgStorageCageService;
+
+    @Autowired
+    private EdgStorageCageDetailsService edgStorageCageDetailsService;
+
+    @ApiOperation("淇敼纾ㄨ竟缂撳瓨鐞嗙墖绗间俊鎭�   鍔熻兘锛氬绗煎唴鏍呮牸杩涜銆愬惎鐢�/绂佺敤銆�")
+    @PostMapping("/updateEdgStorageCage")
+    public Result updateEdgStorageCage(@RequestBody EdgStorageCage edgStorageCage) {
+        String isSucess = edgStorageCageService.updateEdgStorageCage(edgStorageCage) ? "鎴愬姛" : "澶辫触";
+        return Result.build(200, "銆愬惎鐢�/绂佺敤銆�" + isSucess, 1);
+    }
+
+    @ApiOperation("纾ㄨ竟缂撳瓨鐞嗙墖绗间俊鎭�   鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑杩涜銆愭竻闄�/鏇存崲/缁戝畾銆� EdgStorageCage鏍煎瓙淇℃伅,EdgStorageCageDetails 鐜荤拑淇℃伅 ")
+    @PostMapping("/edgStorageCageGlass")
+    public Result edgStorageCageGlass(@RequestBody EdgStorageCageDetails edgStorageCageDetails, int edgStorageCageId) {
+
+        String isSucess = edgStorageCageService.updateEdgStorageCageDetails(edgStorageCageId, edgStorageCageDetails) ? "鎴愬姛" : "澶辫触";
+        return Result.build(200, "銆愭竻闄�/鏇存崲/缁戝畾銆�" + isSucess, 1);
+    }
+
+    @ApiOperation("纾ㄨ竟妯″潡姹囨姤鐜荤拑鐘舵��   鍔熻兘锛氬纾ㄨ竟闃熷垪鐜荤拑杩涜銆愮牬鎹�/鎷胯蛋銆�  ")
+    @PostMapping("/edgReportStatus")
+    public Result edgReportStatus(@RequestBody @Validated DamageRequest request) {
+        return Result.build(200, "銆愮牬鎹�/鎷胯蛋銆�" + edgStorageCageDetailsService.edgReportStatus(request), 1);
+    }
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageDetailsController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageDetailsController.java
new file mode 100644
index 0000000..496b6e7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageDetailsController.java
@@ -0,0 +1,47 @@
+package com.mes.edgstoragecage.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.mes.damage.entity.request.DamageRequest;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Api(tags = "鐞嗙墖绗艰鎯�")
+@RestController
+@RequestMapping("/edgStorageCageDetails")
+public class EdgStorageCageDetailsController {
+
+    @Resource
+    EdgStorageCageDetailsService edgStorageCageDetailsService;
+    @ApiOperation("鍗х悊璇︽儏鍔熻兘锛氬鍗х悊鐜荤拑杩涜銆愮牬鎹�/鎷胯蛋銆�")
+    @PostMapping("/edgDetailsOperate")
+    public Result edgDetailsOperate(@RequestBody @Validated DamageRequest request) {
+        return Result.build(200, "銆愮牬鎹�/鎷胯蛋銆�" + edgStorageCageDetailsService.edgDetailsOperate(request), 1);
+    }
+
+    @ApiOperation("鍗х悊璇︽儏鍔熻兘锛氬鍗х悊鐜荤拑杩涜銆愬垹闄ゆ搷浣溿��")
+    @PostMapping("/removeEdgDetails")
+    public Result removeEdgDetails(String glassId) {
+        return Result.build(200, "銆愮牬鎹�/鎷胯蛋銆�" +
+                edgStorageCageDetailsService.remove(new LambdaQueryWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getGlassId,glassId)), 1);
+    }
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCage.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCage.java
new file mode 100644
index 0000000..57b807d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCage.java
@@ -0,0 +1,52 @@
+package com.mes.edgstoragecage.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class EdgStorageCage implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 纾ㄨ竟鍓嶇悊鐗囩琛╥d
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 璁惧id
+     */
+    private Integer deviceId;
+
+    /**
+     * 鏍呮牸鍙�
+     */
+    private Integer slot;
+
+    /**
+     * 鍚敤鐘舵��
+     */
+    private Integer enableState;
+
+    /**
+     * 鍓╀綑
+     */
+    private Integer remainWidth;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCageDetails.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCageDetails.java
new file mode 100644
index 0000000..6798cbb
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCageDetails.java
@@ -0,0 +1,127 @@
+package com.mes.edgstoragecage.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class EdgStorageCageDetails implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 纾ㄨ竟鍓嶇悊鐗囩璇︽儏琛╥d
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 宸ョ▼id
+     */
+    private String engineerId;
+
+    /**
+     * 璁惧id
+     */
+    private Integer deviceId;
+
+    /**
+     * 鏍呮牸鍙�
+     */
+    private Integer slot;
+
+    /**
+     * 鐜荤拑id
+     */
+    private String glassId;
+
+    /**
+     * 灏忕墖鍦ㄦ牸鍐呯殑椤哄簭
+     */
+    private Integer sequence;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String flowCardId;
+
+    /**
+     * 鐜荤拑绫诲瀷
+     */
+    private Integer glassType;
+
+    /**
+     * 瀹�
+     */
+    private double width;
+
+    /**
+     * 楂�
+     */
+    private double height;
+
+    /**
+     * 鍘氬害
+     */
+    private double thickness;
+
+    /**
+     * 鑶滅郴
+     */
+    private String filmsid;
+
+    /**
+     * 纾ㄥ墠瀹�
+     */
+    private double edgWidth;
+
+    /**
+     * 纾ㄥ墠楂�
+     */
+    private double edgHeight;
+
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+
+    /**
+     * 閽㈠寲鐗堝浘鐗囧簭
+     */
+    private Integer temperingFeedSequence;
+
+    /**
+     * 鍘熺墖椤哄簭
+     */
+    private Integer patternSequence;
+
+    /**
+     * 鐘舵��  锛堣瘑鍒悗鎴愬姛鐘舵��100锛屽嚭鐗囦换鍔�101锛� 鎷胯蛋200锛岀牬鎹�201锛�
+     */
+    private Integer state;
+
+    /**
+     * 鐜荤拑闂撮殭
+     */
+    private Integer gap;
+    /**
+     * 鐜荤拑闂撮殭
+     */
+    @TableField(exist = false)
+    private Integer count;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/CutDrawingVO.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/CutDrawingVO.java
new file mode 100644
index 0000000..76770f5
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/CutDrawingVO.java
@@ -0,0 +1,19 @@
+package com.mes.edgstoragecage.entity.vo;
+
+import com.mes.edgstoragecage.entity.EdgStorageCage;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.glassinfo.entity.GlassInfo;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/12/18 20:00
+ * @Description:
+ */
+@Data
+public class CutDrawingVO extends GlassInfo {
+
+    private int state;
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/EdgSlotRemainVO.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/EdgSlotRemainVO.java
new file mode 100644
index 0000000..98c9eb4
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/EdgSlotRemainVO.java
@@ -0,0 +1,18 @@
+package com.mes.edgstoragecage.entity.vo;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/3/9 23:18
+ * @Description:
+ */
+@Data
+public class EdgSlotRemainVO {
+
+    private int deviceId;
+
+    private int slot;
+
+    private int remainWidth;
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/EdgStorageCageVO.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/EdgStorageCageVO.java
new file mode 100644
index 0000000..760a44d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/EdgStorageCageVO.java
@@ -0,0 +1,18 @@
+package com.mes.edgstoragecage.entity.vo;
+
+import com.mes.edgstoragecage.entity.EdgStorageCage;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/12/18 20:00
+ * @Description:
+ */
+@Data
+public class EdgStorageCageVO extends EdgStorageCage {
+
+    List<EdgStorageCageDetails> details;
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java
new file mode 100644
index 0000000..a141d91
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java
@@ -0,0 +1,37 @@
+package com.mes.edgstoragecage.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.entity.vo.CutDrawingVO;
+import com.mes.edgstoragecage.entity.vo.EdgSlotRemainVO;
+import com.mes.largenscreen.entity.PieChartVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface EdgStorageCageDetailsMapper extends MPJBaseMapper<EdgStorageCageDetails> {
+
+    EdgStorageCageDetails queryEdgStorageDetailsBySize(@Param("deviceId") int deviceId, @Param("currentSlot") int currentSlot, @Param("width") double width,
+                                                       @Param("height") double height, @Param("cell") int cell, @Param("maxThickness") int maxThickness);
+
+    EdgStorageCageDetails queryEdgStorageDetailsByLimitSize(@Param("deviceId") int deviceId, @Param("currentCell") Integer currentCell,
+                                                            @Param("width") double width, @Param("height") double height, @Param("cell") int cell,
+                                                            @Param("minOneFirstLength") int minOneFirstLength, @Param("minOneSecondLength") int minOneSecondLength,
+                                                            @Param("maxTwoFirstLength") int maxTwoFirstLength, @Param("maxTwoSecondLength") int maxTwoSecondLength,
+                                                            @Param("maxThickness") int maxThickness);
+
+    List<CutDrawingVO> queryCutDrawingByEngineerId(@Param("engineerId") String engineerId, @Param("patternSequence") int patternSequence, @Param("isAll") int isAll);
+
+    List<EdgSlotRemainVO> querySlotRemainWidth(@Param("cellLength") int cellLength, @Param("glassGap") int glassGap);
+
+
+    List<PieChartVO> queryPieChart();
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageMapper.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageMapper.java
new file mode 100644
index 0000000..b88c071
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageMapper.java
@@ -0,0 +1,32 @@
+package com.mes.edgstoragecage.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.edgstoragecage.entity.EdgStorageCage;
+import com.mes.edgstoragecage.entity.vo.EdgSlotRemainVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface EdgStorageCageMapper extends MPJBaseMapper<EdgStorageCage> {
+
+    /**
+     * 鐩稿悓灏哄鍙互鏀句笅鐨勬牸瀛�
+     *
+     * @param deviceId
+     * @param width
+     * @param height
+     * @param slot
+     * @return
+     */
+    EdgStorageCage getEdgStorageCageBySize(@Param("deviceId") int deviceId, @Param("width") double width, @Param("height") double height, @Param("slot") int slot);
+
+    void resetSlotRemainWidth(@Param("list") List<EdgSlotRemainVO> list);
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
new file mode 100644
index 0000000..046d2bb
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
@@ -0,0 +1,117 @@
+package com.mes.edgstoragecage.service;
+
+import cn.hutool.json.JSONObject;
+import com.github.yulichang.base.MPJBaseService;
+import com.mes.damage.entity.request.DamageRequest;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.entity.vo.EdgSlotRemainVO;
+import com.mes.largenscreen.entity.PieChartVO;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface EdgStorageCageDetailsService extends MPJBaseService<EdgStorageCageDetails> {
+
+    /**
+     * 鎸夌収璁惧鍙婄嚎璺紝鑾峰彇褰撳墠绾胯矾姝e湪鍒囧壊鐨勭増鍥句俊鎭�
+     * @param deviceId
+     * @param stationCell
+     * @return
+     */
+    JSONObject queryCurrentCutDrawing(int deviceId, int stationCell);
+
+    /**
+     * 鎸夌収宸ョ▼id鍙婄増搴忚幏鍙栧垏鍓茬増鍥� 榛樿鐗堝簭涓�1
+     * @param engineerId
+     * @param patternSequence
+     * @return
+     */
+    Map<String, Object> queryCutDrawingByEngineerId(String engineerId, int patternSequence);
+
+    /**
+     * 鑾峰彇 宸ョ▼涓嬬殑閽㈠寲鐗堝浘
+     *
+     * @param current
+     * @return
+     */
+    List<Map<String, Object>> selectTemperingTerritory(String current);
+
+    /**
+     * 鏌ヨ绗煎唴鐗堝浘宸�艰寖鍥村唴鐨�  姝ゅ昂瀵哥幓鐠�  濡傛棤鍒欐寜鐓� 閽㈠寲鐗堝浘搴忓彿 浠ュ強鐜荤拑搴忓彿
+     *
+     * @param glassId
+     * @param threshold
+     * @return
+     */
+    EdgStorageCageDetails selectConformGlass(String glassId, int threshold);
+
+    /**
+     * 鑾峰彇鍑虹墖淇℃伅鏁版嵁
+     *
+     * @param glassId
+     * @param threshold
+     * @return
+     */
+    EdgStorageCageDetails selectOutGlass(String glassId, int threshold);
+
+    /**
+     * 璇嗗埆   鎷胯蛋:9/鐮存崯:8
+     *
+     * @param request
+     * @return
+     */
+    String identControls(DamageRequest request);
+
+    /**
+     * 纾ㄨ竟妯″潡姹囨姤鐜荤拑鐘舵��   鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑杩涜銆愮牬鎹�/鎷胯蛋銆�
+     *
+     * @param request
+     * @return
+     */
+    String edgReportStatus(DamageRequest request);
+
+    /**
+     * 杩涚墖  鎵爜ID楠岃瘉閲嶅
+     *
+     * @param glassId
+     * @return
+     */
+    boolean inToVerify(String glassId);
+
+    /**
+     * 鎸夌収灏哄
+     *
+     * @param deviceId
+     * @param width
+     * @param height
+     * @param cell
+     * @param maxThickness
+     * @return
+     */
+    EdgStorageCageDetails queryEdgStorageDetailsBySize(int deviceId, int currentSlot, double width, double height, int cell, int maxThickness);
+
+    /**
+     * 鎸夌収灏哄,绾胯矾銆佺嚎璺渶澶ф渶灏忓昂瀵歌幏鍙栫鍚堣姹傜殑鐜荤拑灏忕墖鏁版嵁
+     *
+     * @param deviceId
+     * @param width
+     * @param height
+     * @param maxThickness
+     * @return
+     */
+    EdgStorageCageDetails queryEdgStorageDetailsByLimitSize(int deviceId, Integer currentCell, double width, double height, int cell, int minOneFirstLength, int minOneSecondLength, int maxTwoFirstLength, int maxTwoSecondLength, int maxThickness);
+
+    String edgDetailsOperate(DamageRequest request);
+
+    List<EdgSlotRemainVO> querySlotRemainWidth(int cellLength, int glassGap);
+
+    List<PieChartVO> queryPieChart();
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageService.java
new file mode 100644
index 0000000..2c89397
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageService.java
@@ -0,0 +1,66 @@
+package com.mes.edgstoragecage.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.mes.edgstoragecage.entity.EdgStorageCage;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.entity.vo.EdgSlotRemainVO;
+import com.mes.edgstoragecage.entity.vo.EdgStorageCageVO;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface EdgStorageCageService extends MPJBaseService<EdgStorageCage> {
+
+    /**
+     * 鏌ヨ绗煎唴绂绘寚瀹氭牸瀛愭渶杩戠┖鏍�
+     * flag :鏄惁涓虹洿閫�
+     *
+     * @return
+     */
+    EdgStorageCage selectNearestEmpty(Integer currentCell, int deviceId, boolean flag);
+
+    /**
+     * 鎸夌収璁惧鍙疯繑鍥炲搴旂殑绗煎唴璇︽儏鏁版嵁
+     * @param deviceId
+     * @return
+     */
+    List<EdgStorageCageVO> selectEdgStorageCagesByDeviceId(int deviceId);
+
+
+    /**
+     * 淇敼鐞嗙墖绗间俊鎭�
+     *
+     * @param edgStorageCage
+     * @return
+     */
+    boolean updateEdgStorageCage(EdgStorageCage edgStorageCage);
+
+    /**
+     * 鏇存柊鐞嗙墖绗艰鎯呬俊鎭�
+     *
+     * @param edgStorageCageId
+     * @param edgStorageCageDetails
+     * @return
+     */
+    boolean updateEdgStorageCageDetails(int edgStorageCageId, EdgStorageCageDetails edgStorageCageDetails);
+
+    /**
+     * 鐩稿悓灏哄鍙互鏀句笅鐨勬牸瀛�
+     *
+     * @param deviceId
+     * @param width
+     * @param height
+     * @param slot
+     * @return
+     */
+    EdgStorageCage getEdgStorageCageBySize(int deviceId, double width, double height, int slot);
+
+    void resetSlotRemainWidth(List<EdgSlotRemainVO> edgSlotRemainVOS);
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
new file mode 100644
index 0000000..1d944e7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
@@ -0,0 +1,383 @@
+package com.mes.edgstoragecage.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.lang.Assert;
+import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.query.MPJLambdaQueryWrapper;
+import com.github.yulichang.toolkit.JoinWrappers;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.entity.request.DamageRequest;
+import com.mes.damage.service.DamageService;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
+import com.mes.edgstoragecage.entity.EdgStorageCage;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.entity.vo.CutDrawingVO;
+import com.mes.edgstoragecage.entity.vo.EdgSlotRemainVO;
+import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
+import com.mes.edgstoragecage.mapper.EdgStorageCageMapper;
+import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
+import com.mes.engineering.entity.Engineering;
+import com.mes.engineering.mapper.EngineeringMapper;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.largenscreen.entity.PieChartVO;
+import com.mes.pp.entity.OptimizeHeatDetail;
+import com.mes.pp.entity.OptimizeHeatLayout;
+import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.mapper.OptimizeHeatDetailMapper;
+import com.mes.taskcache.entity.TaskCache;
+import com.mes.taskcache.service.TaskCacheService;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Service
+@Slf4j
+public class EdgStorageCageDetailsServiceImpl extends MPJBaseServiceImpl<EdgStorageCageDetailsMapper, EdgStorageCageDetails> implements EdgStorageCageDetailsService {
+
+    @Resource
+    EngineeringMapper engineeringMapper;
+
+    @Resource
+    OptimizeHeatDetailMapper optimizeHeatDetailMapper;
+
+    @Resource
+    EdgStorageCageMapper edgStorageCageMapper;
+
+    @Resource
+    GlassInfoService glassInfoService;
+
+    @Autowired
+    TaskCacheService taskCacheService;
+
+    @Autowired
+    DamageService damageService;
+
+    @Resource
+    UpPattenUsageMapper upPattenUsageMapper;
+
+    @Autowired
+    EdgGlassTaskInfoService edgGlassTaskInfoService;
+
+    @Override
+    public JSONObject queryCurrentCutDrawing(int deviceId, int stationCell) {
+//         鑾峰彇鏈潯绾垮綋鍓嶆鍦ㄦ墽琛岀殑宸ョ▼
+        Engineering engineering = engineeringMapper.selectOne(new LambdaQueryWrapper<Engineering>()
+                .eq(Engineering::getState, 1).eq(Engineering::getStationCell, stationCell));
+        if (null == engineering) {
+            log.info("褰撳墠绾胯矾娌℃湁闇�瑕佹墽琛岀殑宸ョ▼");
+            return null;
+        }
+        List<EdgStorageCageDetails> edgStorageCageDetailsList = this.list(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                .eq(EdgStorageCageDetails::getDeviceId, deviceId)
+                .eq(EdgStorageCageDetails::getEngineerId, engineering.getEngineerId())
+                .orderByDesc(EdgStorageCageDetails::getId));
+        //鎸夌収褰撳墠宸ョ▼鍘荤悊鐗囩鎼滄渶鍚庝竴鍧楃幓鐠� 鑾峰彇宸ョ▼鍙�  鐗堝浘鍙� 娌℃湁鐩存帴鏄剧ず绗竴寮犵増鍥�
+        int patternSequence = 0;
+        if (CollectionUtil.isEmpty(edgStorageCageDetailsList)) {
+            patternSequence = 1;
+        } else {
+            EdgStorageCageDetails lastGlass = edgStorageCageDetailsList.get(0);
+            log.info("鑾峰彇鏈�鍚庝竴鍧楄繘绗肩殑鐜荤拑涓猴細{}", lastGlass);
+            List<CutDrawingVO> drawingVOList = baseMapper.queryCutDrawingByEngineerId(lastGlass.getEngineerId(), lastGlass.getPatternSequence(), 1);
+            if (CollectionUtil.isEmpty(drawingVOList)) {
+                //鏃犲墿浣� 鏄剧ず褰撳墠鐗堝浘鍔�1鐨勫叏閲忕増鍥�
+                patternSequence = lastGlass.getPatternSequence() + 1;
+            } else {
+                //褰撳墠鐗堝浘鏄惁鏈夊墿浣欙紝鏈夊墿浣欐樉绀哄綋鍓嶇増鍥�
+                patternSequence = lastGlass.getPatternSequence();
+            }
+        }
+        JSONObject jsonObject = new JSONObject();
+        List<CutDrawingVO> currentCutDrawings = baseMapper.queryCutDrawingByEngineerId(engineering.getEngineerId(), patternSequence, 0);
+        jsonObject.append("currentCutTerritory", currentCutDrawings);
+        if (CollectionUtil.isNotEmpty(currentCutDrawings)) {
+            jsonObject.append("engineer", engineering.getEngineerId());
+            jsonObject.append("sequence", patternSequence);
+            UpPattenUsage upPattenUsage = upPattenUsageMapper.selectOne(new LambdaQueryWrapper<UpPattenUsage>()
+                    .eq(UpPattenUsage::getEngineeringId, engineering.getEngineerId())
+                    .eq(UpPattenUsage::getLayoutSequence, patternSequence));
+            jsonObject.append("upPattenUsage", upPattenUsage);
+        }
+        return jsonObject;
+    }
+
+    @Override
+    public Map<String, Object> queryCutDrawingByEngineerId(String engineerId, int patternSequence) {
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("currentCutDrawing", baseMapper.queryCutDrawingByEngineerId(engineerId, patternSequence, 0));
+        List<GlassInfo> glassInfoList = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getEngineerId, engineerId));
+        long totalPatternSequence = glassInfoList.stream().map(GlassInfo::getPatternSequence).distinct().count();
+        map.put("totalPatternSequence", totalPatternSequence);
+        UpPattenUsage upPattenUsage = upPattenUsageMapper.selectOne(new LambdaQueryWrapper<UpPattenUsage>().eq(UpPattenUsage::getEngineeringId, engineerId)
+                .eq(UpPattenUsage::getLayoutSequence, patternSequence));
+        map.put("upPattenUsage", upPattenUsage);
+        return map;
+
+    }
+
+
+    /**
+     * 鑾峰彇 宸ョ▼涓嬬殑閽㈠寲鐗堝浘
+     *
+     * @param current
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> selectTemperingTerritory(String current) {
+        //姝ゅ伐绋嬬殑鎵�鏈変紭鍖栨暟鎹�
+        List<Map<String, Object>> resultCutTerritory = optimizeHeatDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeHeatDetail.class)
+                .selectAll(OptimizeHeatDetail.class)
+                .selectAs(OptimizeProject::getLoadWidth, "olWidth")
+                .selectAs(OptimizeProject::getLoadLength, "olHeight")
+                .selectAs(OptimizeHeatLayout::getLayoutRate, "olLayoutRate")
+                .leftJoin(OptimizeHeatLayout.class, on -> on
+                        .eq(OptimizeHeatLayout::getProjectNo, OptimizeHeatDetail::getProjectNo)
+                        .eq(OptimizeHeatLayout::getLayoutId, OptimizeHeatDetail::getLayoutId))
+                .leftJoin(OptimizeProject.class, on -> on
+                        .eq(OptimizeProject::getProjectNo, OptimizeHeatLayout::getProjectNo))
+                .eq(OptimizeHeatDetail::getProjectNo, current)
+                .gt(OptimizeHeatDetail::getLayoutId, 0)
+        );
+        //杩欓噷灏辨槸 鎸夌増鍥惧彿鍒嗙粍  [{layout_id:"1",width:200,height:300...},{layout_id:"2",width:300,height:300...}]
+        Map<String, List<Map<String, Object>>> groupBy = resultCutTerritory.stream().collect(Collectors.groupingBy(item -> item.get("layout_id").toString()));
+        //鎸夌増鍥惧彿鎺掑簭
+
+        List<Map<String, Object>> result = new ArrayList<>();//杩斿洖缁撴灉
+        for (int i = 1; i <= groupBy.keySet().size(); i++) {
+            String key = i + "";
+            if (key != null) {
+                List<Map<String, Object>> galssInfo = groupBy.get(key);//褰撳墠閽㈠寲鐗堝浘鍐呯幓鐠冨皬鐗囬泦鍚�
+                if (!galssInfo.isEmpty()) {
+                    Map<String, Object> item = new HashMap<>();//鏂版牸寮忕紪鎺�
+                    //浠ヤ笅涓哄悓灞�  {key:"groupBy.get(key)",olLayoutRate:"灏忕墖闆嗗悎"}
+                    //          {key:"groupBy.get(key)",olLayoutRate:[{},{},{},{}]}
+
+
+                    item.put("listGlass", groupBy.get(key));
+                    item.put("LayoutId", key);
+                    item.put("olWidth", galssInfo.get(0).get("olWidth").toString());
+                    item.put("olHeight", galssInfo.get(0).get("olHeight").toString());
+                    item.put("olLayoutRate", galssInfo.get(0).get("olLayoutRate").toString());
+                    result.add(item);
+                } else {
+                    log.info("褰撳墠閽㈠寲鐗堝浘涓嶅瓨鍦ㄥ皬鐗囨暟鎹妫�鏌ワ紝鐗堝浘鍙�:{}" + key);
+                    return null;
+                }
+            }
+        }
+//        List<List<Map<String, Object>>> result = new ArrayList<>();//杩斿洖缁撴灉
+//
+//        for (int i = 1; i <= groupBy.keySet().size(); i++) {
+//            String key = i + "";
+//            if (key != null) {
+//                result.add(groupBy.get(key));
+//            }
+//        }
+        return result;
+    }
+
+    /**
+     * 鏌ヨ绗煎唴鐗堝浘宸�艰寖鍥村唴鐨�  姝ゅ昂瀵哥幓鐠�  濡傛棤鍒欐寜鐓� 閽㈠寲鐗堝浘搴忓彿 浠ュ強鐜荤拑搴忓彿
+     *
+     * @param glassId
+     * @param threshold
+     * @return
+     */
+    @Override
+    public EdgStorageCageDetails selectConformGlass(String glassId, int threshold) {
+        //1.鍘荤鍐呮煡璇㈡灏哄鐨勭幓鐠� 鐩墠鐗堝浘宸�煎唴鐨勭幓鐠�  鏄惁鏈夊悓灏哄鐨�
+        //1.1 鏈夊悓灏哄鐨� 鍒欑敓鎴愬悓灏哄鐨勪换鍔�
+        //1.2 鏃犲悓灏哄鐨� 鍒欑敓鎴愮増鍥鹃『搴忔渶灏忕殑鍑虹墖
+        EdgStorageCageDetails edgStorageCageDetails = baseMapper.selectOne(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
+                .selectAll(EdgStorageCageDetails.class)
+                .eq(EdgStorageCageDetails::getGlassId, glassId)
+        );
+        List<EdgStorageCageDetails> listEdgStorageCageDetails = baseMapper.selectList(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                .lt(EdgStorageCageDetails::getState, 200)
+                .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId, EdgStorageCageDetails::getTemperingFeedSequence)
+        );
+        EdgStorageCageDetails minTemperingLayoutId = new EdgStorageCageDetails();
+        if (!listEdgStorageCageDetails.isEmpty()) {
+            minTemperingLayoutId = listEdgStorageCageDetails.get(0);
+        }
+        EdgStorageCageDetails result = new EdgStorageCageDetails();
+        if (edgStorageCageDetails != null && minTemperingLayoutId != null) {
+            result = edgStorageCageMapper.selectJoinOne(EdgStorageCageDetails.class, new MPJLambdaWrapper<EdgStorageCage>()
+                    .selectAll(EdgStorageCageDetails.class)
+                    .leftJoin(EdgStorageCageDetails.class, on -> on
+                            .eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId)
+                            .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot))
+                    .isNotNull(EdgStorageCageDetails::getSlot)
+                    .eq(EdgStorageCageDetails::getWidth, edgStorageCageDetails.getWidth())
+                    .eq(EdgStorageCageDetails::getHeight, edgStorageCageDetails.getHeight())
+                    .ge(EdgStorageCageDetails::getTemperingLayoutId, minTemperingLayoutId.getTemperingLayoutId())
+                    .le(EdgStorageCageDetails::getTemperingLayoutId, minTemperingLayoutId.getTemperingLayoutId() + threshold)
+                    .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId, EdgStorageCageDetails::getTemperingFeedSequence)
+            );
+        }
+
+        if (result == null) {
+            result = edgStorageCageMapper.selectJoinOne(EdgStorageCageDetails.class, new MPJLambdaWrapper<EdgStorageCage>()
+                    .selectAll(EdgStorageCageDetails.class)
+                    .leftJoin(EdgStorageCageDetails.class, on -> on
+                            .eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId)
+                            .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot))
+                    .isNotNull(EdgStorageCageDetails::getSlot)
+                    .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId, EdgStorageCageDetails::getTemperingFeedSequence)
+            );
+        }
+        return result;
+    }
+
+    /**
+     * 鏌ヨ绗煎唴鐗堝浘宸�艰寖鍥村唴鐨�  姝ゅ昂瀵哥幓鐠�  濡傛棤鍒欐寜鐓� 閽㈠寲鐗堝浘搴忓彿 浠ュ強鐜荤拑搴忓彿
+     *
+     * @param glassId
+     * @param threshold
+     * @return
+     */
+    @Override
+    public EdgStorageCageDetails selectOutGlass(String glassId, int threshold) {
+        EdgStorageCageDetails oldEdgStorageCageDetails = null;
+        if (StringUtils.isNotEmpty(glassId)) {
+            oldEdgStorageCageDetails = baseMapper.selectOne(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
+                    .selectAll(EdgStorageCageDetails.class)
+                    .eq(EdgStorageCageDetails::getGlassId, glassId));
+        }
+        log.info("鎸夌収鐜荤拑id锛歿}鑾峰彇鐜荤拑淇℃伅{}", glassId, oldEdgStorageCageDetails);
+
+        LambdaQueryWrapper<TaskCache> wrapper = new LambdaQueryWrapper<TaskCache>().select(TaskCache::getGlassId).eq(TaskCache::getTaskType, "2");
+        List<TaskCache> taskCacheList = taskCacheService.list(wrapper);
+        List<String> glassIds = taskCacheList.stream().map(TaskCache::getGlassId).collect(Collectors.toList());
+        log.info("鑾峰彇绗煎唴鎵�鏈夊凡鍑虹墖鐨勭幓鐠僫d淇℃伅:{}", glassIds);
+
+        //鑾峰彇绗煎唴鏈�灏忕増鍥緄d鍙婄増搴忎负鏈�灏忕殑鐜荤拑淇℃伅锛堢幓鐠僫d涓嶅湪浠诲姟琛ㄤ腑鐨勫嚭鐗囪褰曚腑锛�
+        EdgStorageCageDetails minTemperingLayoutId = baseMapper.selectOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                .eq(EdgStorageCageDetails::getState, 100)
+                .notIn(CollectionUtils.isNotEmpty(glassIds), EdgStorageCageDetails::getGlassId, glassIds)
+                .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId, EdgStorageCageDetails::getTemperingFeedSequence)
+                .last("limit 1"));
+        Assert.isTrue(minTemperingLayoutId != null, "绗煎唴鏃犵鍚堣姹傜殑鐜荤拑");
+        log.info("鑾峰彇绗煎唴鏈�灏忕増鍥緄d{}鍙婄増搴忎负{}鐨勭幓鐠冧俊鎭瘂}", minTemperingLayoutId.getTemperingLayoutId(),
+                minTemperingLayoutId.getTemperingFeedSequence(), minTemperingLayoutId);
+
+        EdgStorageCageDetails outEdgStorageCageDetails = null;
+
+//        if (queryMaxMinDiff(threshold))
+        //todo:閫昏緫1锛氳幏鍙栦袱鏉$嚎宸插嚭鏈�鍚庝竴鍧楃幓鐠冨湪绗煎唴鐩稿悓灏哄鎵�鍓╂暟閲忥紝浼樺厛璧版暟閲忓皯鐨勭嚎
+        //todo:闇�瑕佸湪鍗у紡鐞嗙墖绗艰鎯呰〃涓柊澧炵姸鎬侊紝鐢ㄦ潵琛ㄧず鐜荤拑杩涘嚭鐞嗙墖绗兼儏鍐�
+        if (oldEdgStorageCageDetails != null && minTemperingLayoutId != null) {
+            log.info("鎸夌収涓婁竴鐗囧凡鍑虹幓鐠冨搴}锛岄珮搴}锛屽強鐗堝浘id鍖洪棿{}鍒皗}鑾峰彇鍑虹墖浠诲姟鐜荤拑淇℃伅", oldEdgStorageCageDetails.getWidth()
+                    , oldEdgStorageCageDetails.getHeight(), minTemperingLayoutId.getTemperingLayoutId(), minTemperingLayoutId.getTemperingLayoutId() + threshold);
+            outEdgStorageCageDetails = this.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                    .notIn(CollectionUtils.isNotEmpty(glassIds), EdgStorageCageDetails::getGlassId, glassIds)
+                    .eq(EdgStorageCageDetails::getWidth, oldEdgStorageCageDetails.getWidth())
+                    .eq(EdgStorageCageDetails::getHeight, oldEdgStorageCageDetails.getHeight())
+                    .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId, EdgStorageCageDetails::getTemperingFeedSequence)
+                    .last("limit 1"));
+            log.info("鍑虹墖浠诲姟鐨勭幓鐠冧俊鎭細{}", outEdgStorageCageDetails);
+        }
+        if (outEdgStorageCageDetails == null) {
+            outEdgStorageCageDetails = minTemperingLayoutId;
+        }
+        return outEdgStorageCageDetails;
+    }
+
+
+    @Override
+    public String identControls(DamageRequest request) {
+        //灏嗚瘑鍒牬鎹熺殑鐜荤拑鐩存帴鍔犲叆鐮存崯琛�
+        damageService.autoSubmitReport(request.getGlassId(), request.getLine(), request.getWorkingProcedure(), "鎺扮墖璇嗗埆", request.getState());
+        return "success";
+    }
+
+    @Override
+    public String edgReportStatus(DamageRequest request) {
+        //灏嗙(杈归槦鍒楃牬鎹熺殑鐜荤拑鐩存帴鍔犲叆鐮存崯琛�
+        damageService.autoSubmitReport(request.getGlassId(), request.getLine(), request.getWorkingProcedure(), "纾ㄨ竟娓呮礂", request.getState());
+
+        //淇敼纾ㄨ竟闃熷垪鏁版嵁鐘舵��
+        edgGlassTaskInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskInfo>()
+                .set(EdgGlassTaskInfo::getState, request.getState()).eq(EdgGlassTaskInfo::getGlassId, request.getGlassId()));
+        return "success";
+    }
+
+    /**
+     * 杩涚墖  鎵爜ID楠岃瘉閲嶅
+     *
+     * @param glassId
+     * @return
+     */
+    @Override
+    public boolean inToVerify(String glassId) {
+        List<EdgStorageCageDetails> listEdgStorageCageDetails = baseMapper.selectList(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                .eq(EdgStorageCageDetails::getGlassId, glassId)
+        );
+        if (listEdgStorageCageDetails.isEmpty()) {
+            //璇存槑姝ょ幓鐠冩病鏈夎繘杩囩悊鐗�
+            return true;
+        } else {
+            List<Damage> damage = damageService.list(new LambdaQueryWrapper<Damage>()
+                    .eq(Damage::getGlassId, glassId)
+                    .and(wrapper -> wrapper.eq(Damage::getType, 8).or().eq(Damage::getType, 9))
+            );
+            if (!damage.isEmpty()) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    @Override
+    public EdgStorageCageDetails queryEdgStorageDetailsBySize(int deviceId, int currentSlot, double width, double height, int cell, int maxThickness) {
+        return baseMapper.queryEdgStorageDetailsBySize(deviceId, currentSlot, width, height, cell, maxThickness);
+    }
+
+    @Override
+    public EdgStorageCageDetails queryEdgStorageDetailsByLimitSize(int deviceId, Integer currentCell, double width, double height, int cell, int minOneFirstLength, int minOneSecondLength, int maxTwoFirstLength, int maxTwoSecondLength, int maxThickness) {
+        return baseMapper.queryEdgStorageDetailsByLimitSize(deviceId, currentCell, width, height, cell, minOneFirstLength, minOneSecondLength, maxTwoFirstLength, maxTwoSecondLength, maxThickness);
+    }
+
+    @Override
+    public String edgDetailsOperate(DamageRequest request) {
+        //鍗у紡鐞嗙墖绗肩垎鐮存崯
+        damageService.autoSubmitReport(request.getGlassId(), request.getLine(), request.getWorkingProcedure(), "鍗у紡鐞嗙墖绗�", request.getState());
+        this.remove(new LambdaQueryWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getGlassId, request.getGlassId()));
+        return "success";
+    }
+
+    @Override
+    public List<EdgSlotRemainVO> querySlotRemainWidth(int cellLength, int glassGap) {
+        return this.baseMapper.querySlotRemainWidth(cellLength, glassGap);
+    }
+
+    @Override
+    public List<PieChartVO> queryPieChart() {
+        return this.baseMapper.queryPieChart();
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
new file mode 100644
index 0000000..2911bc8
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
@@ -0,0 +1,153 @@
+package com.mes.edgstoragecage.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.common.config.Const;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
+import com.mes.edgstoragecage.entity.EdgStorageCage;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.entity.vo.EdgSlotRemainVO;
+import com.mes.edgstoragecage.entity.vo.EdgStorageCageVO;
+import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
+import com.mes.edgstoragecage.mapper.EdgStorageCageMapper;
+import com.mes.edgstoragecage.service.EdgStorageCageService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Slf4j
+@Service
+public class EdgStorageCageServiceImpl extends MPJBaseServiceImpl<EdgStorageCageMapper, EdgStorageCage> implements EdgStorageCageService {
+
+    @Resource
+    EdgStorageCageDetailsMapper edgStorageCageDetailsMapper;
+    @Autowired
+    DamageService damageService;
+
+    @Override
+    public EdgStorageCage selectNearestEmpty(Integer currentSlot, int deviceId, boolean flag) {
+        List<EdgStorageCage> emptyList = this.selectJoinList(EdgStorageCage.class, new MPJLambdaWrapper<EdgStorageCage>()
+                .selectAll(EdgStorageCage.class)
+                .leftJoin(EdgStorageCageDetails.class, on -> on
+                        .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot)
+                        .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN))
+                .isNull(EdgStorageCageDetails::getSlot)
+                .eq(EdgStorageCage::getEnableState, Const.SLOT_ON)
+                .eq(EdgStorageCage::getDeviceId, deviceId)
+                .last("order by abs(t.slot - " + currentSlot + ")  asc limit 2")
+        );
+        if (flag && CollectionUtil.isNotEmpty(emptyList)) {
+            return emptyList.get(0);
+        }
+        if (CollectionUtil.isEmpty(emptyList) || emptyList.size() == 1) {
+            return null;
+        }
+        return emptyList.get(0);
+    }
+
+    /**
+     * 鎸夌収璁惧鍙疯繑鍥炲搴旂殑绗煎唴璇︽儏鏁版嵁
+     *
+     * @return
+     */
+    @Override
+    public List<EdgStorageCageVO> selectEdgStorageCagesByDeviceId(int deviceId) {
+        List<EdgStorageCageVO> storageCageVOS = this.selectJoinList(EdgStorageCageVO.class, new MPJLambdaWrapper<EdgStorageCage>()
+                .selectAll(EdgStorageCage.class)
+                .selectCollection(EdgStorageCageDetails.class, EdgStorageCageVO::getDetails)
+                .leftJoin(EdgStorageCageDetails.class, on -> on
+                        .eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId)
+                        .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot)
+                        .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN))
+                .eq(EdgStorageCage::getDeviceId, deviceId)
+                .orderByAsc(EdgStorageCage::getSlot)
+                .orderByAsc(EdgStorageCageDetails::getId)
+        );
+        return storageCageVOS;
+    }
+
+
+    /**
+     * 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愬惎鐢�/绂佺敤銆�
+     *
+     * @param edgStorageCage
+     * @return
+     */
+    @Override
+    public boolean updateEdgStorageCage(EdgStorageCage edgStorageCage) {
+        EdgStorageCage edgItem = baseMapper.selectById(edgStorageCage.getId());
+        if (edgItem != null) {
+            edgItem.setEnableState(edgStorageCage.getEnableState());
+            baseMapper.updateById(edgItem);
+            log.info("鍗у缂撳瓨锛氥�愬惎鐢�/绂佺敤銆� 鍙傛暟:{} 缁撴灉:鎴愬姛", edgStorageCage);
+            return true;
+        }
+        log.info("鍗у缂撳瓨锛氥�愬惎鐢�/绂佺敤銆� 鍙傛暟:{} 缁撴灉:澶辫触", edgStorageCage);
+        return false;
+    }
+
+    /**
+     * 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
+     *
+     * @param edgStorageCageId
+     * @param edgStorageCageDetails
+     * @return
+     */
+    @Override
+    public boolean updateEdgStorageCageDetails(int edgStorageCageId, EdgStorageCageDetails edgStorageCageDetails) {
+        EdgStorageCage edgItem = baseMapper.selectById(edgStorageCageId);
+        log.info("姝e父" + edgItem);
+        EdgStorageCageDetails edgDItem = edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId());
+        if (edgItem != null) {
+            //绉婚櫎  锛堢牬鎹�,鐩墠涓や釜姒傚康娣峰悎鍦ㄤ竴璧�,寤鸿鎷嗗紑锛�
+            EdgStorageCageDetails result = edgStorageCageDetailsMapper.selectOne(
+                    new MPJLambdaWrapper<EdgStorageCageDetails>()
+                            .eq(EdgStorageCageDetails::getSlot, edgStorageCageId)
+                            .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+            );
+            if (result != null) {
+                result.setSlot(0);
+                result.setState(201);
+                Damage damage = new Damage();
+                damage.setGlassId(edgStorageCageDetails.getGlassId());
+                damage.setLine(2001);
+                damage.setWorkingProcedure("纾ㄨ竟");
+                damage.setStatus(1);
+                damage.setType(8);
+                damageService.insertDamage(damage);
+                edgStorageCageDetailsMapper.updateById(result);
+            }
+            //娣诲姞
+            if (edgDItem != null) {
+                //鍙紶鏍煎瓙  锛氱Щ闄ょ幓鐠�
+                EdgStorageCageDetails newresult = edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId());
+                newresult.setSlot(edgItem.getSlot());
+                edgStorageCageDetailsMapper.updateById(newresult);
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public EdgStorageCage getEdgStorageCageBySize(int deviceId, double width, double height, int slot) {
+        return baseMapper.getEdgStorageCageBySize(deviceId, width, height, slot);
+    }
+
+    @Override
+    public void resetSlotRemainWidth(List<EdgSlotRemainVO> edgSlotRemainVOS) {
+        baseMapper.resetSlotRemainWidth(edgSlotRemainVOS);
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
new file mode 100644
index 0000000..1adb3e3
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
@@ -0,0 +1,873 @@
+//package com.mes.job;
+//
+//import cn.hutool.core.collection.CollectionUtil;
+//import cn.hutool.core.lang.Assert;
+//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+//import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+//import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+//import com.github.yulichang.query.MPJQueryWrapper;
+//import com.github.yulichang.wrapper.MPJLambdaWrapper;
+//import com.mes.common.S7object;
+//import com.mes.common.config.Const;
+//import com.mes.damage.entity.Damage;
+//import com.mes.damage.service.DamageService;
+//import com.mes.device.PlcParameterObject;
+//import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+//import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
+//import com.mes.edgstoragecage.entity.EdgStorageCage;
+//import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+//import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
+//import com.mes.edgstoragecage.service.EdgStorageCageService;
+//import com.mes.glassinfo.entity.GlassInfo;
+//import com.mes.glassinfo.service.GlassInfoService;
+//import com.mes.taskcache.entity.TaskCache;
+//import com.mes.taskcache.service.TaskCacheService;
+//import com.mes.tools.WebSocketServer;
+//import lombok.extern.slf4j.Slf4j;
+//import org.apache.commons.lang.StringUtils;
+//import org.springframework.beans.BeanUtils;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.beans.factory.annotation.Value;
+//import org.springframework.stereotype.Component;
+//
+//import java.util.ArrayList;
+//import java.util.Date;
+//import java.util.List;
+//import java.util.stream.Collectors;
+//
+///**
+// * @Author : zhoush
+// * @Date: 2024/5/8 8:17
+// * @Description:
+// */
+//@Component
+//@Slf4j
+//public class CacheGlassTask {
+//
+//    @Autowired
+//    TaskCacheService taskCacheService;
+//    @Autowired
+//    GlassInfoService glassInfoService;
+//    @Autowired
+//    EdgStorageCageService edgStorageCageService;
+//    @Autowired
+//    EdgStorageCageDetailsService edgStorageCageDetailsService;
+//
+//    @Autowired
+//    EdgGlassTaskInfoService edgGlassTaskInfoService;
+//
+//    @Autowired
+//    WebSocketServer webServerService;
+//    @Autowired
+//    DamageService damageService;
+//
+//    @Value("${mes.threshold}")
+//    private int threshold;
+//
+//    @Value("${mes.ratio}")
+//    private int ratio;
+//
+//    @Value("${mes.sequence.order}")
+//    private boolean sequenceOrder;
+//
+//    @Value("${mes.max.firstLength}")
+//    private String firstLength;
+//
+//    @Value("${mes.max.secondLength}")
+//    private String secondLength;
+//
+//    @Value("${mes.cache.cacheWidth}")
+//    private double cacheWidth;
+//
+//    @Value("${mes.cache.cacheHeight}")
+//    private double cacheHeight;
+//
+//    @Value("${mes.min.one.firstLength}")
+//    private String minOneFirstLength;
+//
+//    @Value("${mes.min.one.secondLength}")
+//    private String minOneSecondLength;
+//
+//    @Value("${mes.min.two.firstLength}")
+//    private String minTwoFirstLength;
+//
+//    @Value("${mes.min.two.secondLength}")
+//    private String minTwoSecondLength;
+//
+//    public static String engineerId = "";
+//
+//    //    @Scheduled(fixedDelay = 1000)
+//    public void plcHomeEdgTask() {
+//        Date startDate = new Date();
+//        log.info("鏈浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+//        PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+//        String taskRequestTypeValue = plcParameterObject.getPlcParameter("A06_request_word").getValue();
+//        String glassIdeValue = plcParameterObject.getPlcParameter("A05_scanning_ID").getValue();
+//        String confirmationWrodValue = plcParameterObject.getPlcParameter("MES_confirmation_word").getValue();
+//        //A08  A09琛ㄧず绾胯矾鐩稿悓  鍙仛绛変环  鏃犳暟鎹浆int寮傚父
+//        String out08Glassstate = plcParameterObject.getPlcParameter("A08_glass_status").getValue();
+//        String out10Glassstate = plcParameterObject.getPlcParameter("A10_glass_status").getValue();
+//        String confirmationWrodAddress = plcParameterObject.getPlcParameter("MES_confirmation_word").getAddress();
+//        String currentSlot = plcParameterObject.getPlcParameter("Current_slot").getValue();
+//
+////        taskRequestTypeValue = "2";
+////        out08Glassstate = "1";
+////        out10Glassstate = "1";
+////        currentSlot = "5";
+////        confirmationWrodValue = "0";
+////        glassIdeValue = "P24092706|15|5";
+//
+//        log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{}锛岃幏鍙栧埌鐨勭‘璁ゅ瓧涓猴細{}锛岃幏鍙栧埌鐨勫嚭鐗囩姸鎬佸垎鍒负锛欰09:{}銆丄10:{},褰撳墠鏍煎瓙鍙蜂负锛歿}",
+//                taskRequestTypeValue, glassIdeValue, confirmationWrodValue, out08Glassstate, out10Glassstate, currentSlot);
+//
+//        if ("0".equals(taskRequestTypeValue)) {
+//            if ("0".equals(confirmationWrodValue)) {
+//                log.info("2銆佽幏鍙栧埌鐨勮姹傚瓧涓�0锛屼笖纭瀛椾负0锛屼笉鎵ц浠诲姟");
+//                return;
+//            }
+//            log.info("2銆佽幏鍙栧埌鐨勮姹傚瓧涓�0锛屽皢纭瀛楁敼涓�0");
+//            S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, 0);
+//            return;
+//        }
+//        if (!"0".equals(confirmationWrodValue)) {
+//            log.info("2銆佽幏鍙栧埌鐨勮姹傚瓧涓嶄负0锛屽皢纭瀛椾笉涓�0锛岀洿鎺ョ粨鏉�");
+//            return;
+//        }
+//        boolean result = edgStorageCageDetailsService.inToVerify(glassIdeValue);
+//        if ("1".equals(taskRequestTypeValue) && result) {
+//            log.info("2銆佽繘鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�,鎵爜閲嶅ID楠岃瘉銆愭湁閲嶅=false,鏃犻噸澶�=true銆戯細{}", result);
+////            inTo(glassIdeValue, confirmationWrodAddress, currentSlot);
+//        } else if ("2".equals(taskRequestTypeValue)) {
+//            //09绌洪棽 锛�1      10绌洪棽 锛�2        閮界┖闂诧細3    鍏朵粬0
+//            log.info("2銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛屽嚭鐗囦换鍔�");
+//            outTo(Integer.parseInt(out08Glassstate),
+//                    Integer.parseInt(out10Glassstate), confirmationWrodAddress, "", Integer.parseInt(currentSlot));
+//        } else if ("3".equals(taskRequestTypeValue)) {
+//            log.info("2銆佽繘鐗囧拰鍑虹墖閮界┖闂诧紝鎵ц鍑虹墖浠诲姟");
+//            //鍔犵瀛愰噷闈㈡槸鍚︽湁鐜荤拑锛屾湁鍏堝嚭锛屾棤鐜荤拑鍏堣繘
+//            boolean outFlase = outTo(Integer.parseInt(out08Glassstate),
+//                    Integer.parseInt(out10Glassstate), confirmationWrodAddress, glassIdeValue, Integer.parseInt(currentSlot));
+//            log.info("鍑虹墖浠诲姟鏄惁瀹屾垚锛歿},涓旂幓鐠僫d:{}涓嶄负绌哄垯鎵ц杩涚墖浠诲姟,鎵爜閲嶅ID楠岃瘉銆愭湁閲嶅=false,鏃犻噸澶�=true銆戯細{}", outFlase, glassIdeValue, result);
+//            if (!outFlase && StringUtils.isNotBlank(glassIdeValue) && result) {
+////                inTo(glassIdeValue, confirmationWrodAddress, currentSlot);
+//            }
+//        }
+//        Date endDate = new Date();
+//        log.info("鏈浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime());
+//    }
+//
+//
+//    //    @Scheduled(fixedDelay = 1000)
+//    public void dealDamageTask() {
+//        Date startDate = new Date();
+//        log.info("鍗у紡鐞嗙墖鐮存崯鐜荤拑娓呴櫎浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+//        List<TaskCache> taskCacheList = taskCacheService.list(new LambdaQueryWrapper<TaskCache>().in(TaskCache::getTaskStatus, Const.GLASS_STATE_DAMAGE_TAKE)
+//                .in(TaskCache::getTaskType, Const.GLASS_CACHE_TYPE_OUT_ALL));
+//        if (CollectionUtils.isNotEmpty(taskCacheList)) {
+//            //鑾峰彇鐮存崯/鎷胯蛋鐜荤拑id
+//            List<String> glassList = taskCacheList.stream().map(TaskCache::getGlassId).collect(Collectors.toList());
+//            //灏嗙(杈归槦鍒楃殑鏁版嵁鍒犻櫎
+//            edgGlassTaskInfoService.remove(new LambdaQueryWrapper<EdgGlassTaskInfo>().in(EdgGlassTaskInfo::getGlassId, glassList));
+//            //灏嗕换鍔¤〃涓殑鏁版嵁鍒犻櫎
+//            taskCacheService.remove(new LambdaQueryWrapper<TaskCache>().in(TaskCache::getGlassId, glassList).in(TaskCache::getTaskType, Const.GLASS_CACHE_TYPE_OUT_ALL));
+//            List<Damage> damageList = taskCacheList.stream().map(e -> {
+//                Damage damage = new Damage();
+//                damage.setGlassId(e.getGlassId());
+//                damage.setLine(e.getEndCell());
+//                damage.setWorkingProcedure("纾ㄨ竟");
+//                damage.setRemark("纾ㄨ竟鍓嶅崸寮忕悊鐗�");
+//                damage.setStatus(1);
+//                damage.setType(e.getTaskStatus());
+//                return damage;
+//            }).collect(Collectors.toList());
+//            damageService.batchInsertDamage(damageList);
+//        }
+//        Date endDate = new Date();
+//        log.info("鏈浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime());
+//    }
+//
+//
+//    /**
+//     * 杩涚墖浠诲姟
+//     *
+//     * @param glassId
+//     * @param confirmationWrodAddress
+//     * @param currentSlot
+//     */
+////    public void inTo(String glassId, String confirmationWrodAddress, String currentSlot) {
+////        log.info("1銆佹寜鐓х幓鐠僫d:{}鑾峰彇鐜荤拑灏忕墖淇℃伅,褰撳墠鏍煎瓙涓�:{}", glassId, currentSlot);
+////
+////        GlassInfo feedGlassInfo = glassInfoService.getOne(
+////                new LambdaQueryWrapper<GlassInfo>()
+////                        .eq(GlassInfo::getGlassId, glassId)
+////        );
+////        if (Math.max(feedGlassInfo.getWidth(), feedGlassInfo.getHeight()) > cacheWidth || Math.min(feedGlassInfo.getWidth(), feedGlassInfo.getHeight()) > cacheHeight) {
+////            log.info("1.1銆佺幓鐠冭秴杩囧崸寮忕悊鐗囨渶澶у昂瀵�:{}", feedGlassInfo);
+////            return;
+////        }
+////
+////        //娣诲姞杩涚墖浠诲姟  鏌ユ壘绌烘牸
+////        EdgStorageCage nearestEmpty = edgStorageCageService.selectNearestEmpty(task.getCurrentCell(), Integer.parseInt(currentSlot), Boolean.FALSE);
+////        Assert.isTrue(null != nearestEmpty, "鏍煎瓙宸叉弧");
+////        log.info("2銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", nearestEmpty);
+////
+////        //鏌ヨ鐜荤拑淇℃伅
+////        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
+////        if (glassInfo == null) {
+////            return;
+////        }
+////        if ((glassInfo.getWidth() < Double.parseDouble(minTwoFirstLength) && glassInfo.getHeight() < Double.parseDouble(minTwoSecondLength)) || (glassInfo.getWidth() < Double.parseDouble(minTwoSecondLength) && glassInfo.getHeight() < Double.parseDouble(minTwoFirstLength))) {
+////            log.info("3銆佺幓鐠冧俊鎭笉绗﹀悎杩涘叆鐞嗙墖绗兼渶灏忓昂瀵革紝鐜荤拑淇℃伅涓簕}", glassInfo);
+////            return;
+////        }
+////        log.info("4銆佸皢鐜荤拑淇℃伅鎻掑叆鍗у紡鐞嗙墖绗�,褰撳墠鐜荤拑淇℃伅:{}", glassInfo);
+////        EdgStorageCageDetails details = new EdgStorageCageDetails();
+////        BeanUtils.copyProperties(glassInfo, details);
+////        details.setState(Const.GLASS_STATE_IN);
+////        details.setSlot(nearestEmpty.getSlot());
+////        details.setDeviceId(nearestEmpty.getDeviceId());
+////        edgStorageCageDetailsService.save(details);
+////        damageService.deleteByGlassId(glassId);
+////        log.info("5銆佺幓鐠冧俊鎭凡瀛樺叆鐞嗙墖绗艰鎯呰〃锛岀幓鐠冧俊鎭负{}", details);
+////        //娣诲姞杩涚墖浠诲姟
+////        boolean taskCache = saveTaskCache(details.getGlassId(), 0, nearestEmpty.getSlot(), Const.GLASS_CACHE_TYPE_IN);
+////        log.info("6銆佺敓鎴愯繘鐗囦换鍔′俊鎭瓨鍏ヤ换鍔¤〃鏄惁瀹屾垚锛歿}", taskCache);
+////
+////        S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, 1);
+////        log.info("7銆佸彂閫佺‘璁ゅ瓧瀹屾垚");
+////
+////    }
+//
+//    /**
+//     * 鏌ヨ鐜荤拑骞惰繘琛屼氦鎹�
+//     *
+//     * @param glassId
+//     * @return
+//     */
+//    public String queryAndChangeGlass(String glassId) {
+//        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
+////                .inSql(GlassInfo::getEngineerId, "select engineer_id from engineering where state = 1"));
+//        Assert.isFalse(null == glassInfo, "鐜荤拑淇℃伅涓嶅瓨鍦�");        //鎸夌収鐜荤拑灏哄
+//        LambdaQueryWrapper<GlassInfo> queryWrapper = new LambdaQueryWrapper<GlassInfo>()
+//                .eq(GlassInfo::getWidth, glassInfo.getWidth())
+//                .eq(GlassInfo::getHeight, glassInfo.getHeight())
+//                .eq(GlassInfo::getThickness, glassInfo.getThickness())
+//                .eq(GlassInfo::getFilmsid, glassInfo.getFilmsid())
+//                .eq(GlassInfo::getFlowCardId, glassInfo.getFlowCardId())
+//                .eq(GlassInfo::getTotalLayer, glassInfo.getTotalLayer())
+//                .eq(GlassInfo::getLayer, glassInfo.getLayer())
+//                .eq(GlassInfo::getEngineerId, glassInfo.getEngineerId())
+//                .notInSql(GlassInfo::getGlassId, "select distinct glass_id from edg_storage_cage_details " +
+//                        "where engineer_id = '" + glassInfo.getEngineerId() + "' and width = " + glassInfo.getWidth() + " and height = " + glassInfo.getHeight()
+//                        + " and state != 100")
+//                .orderByAsc(GlassInfo::getTemperingLayoutId)
+//                .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence)
+//                .last("Limit 1");
+//        GlassInfo swapGlassInfo = glassInfoService.getOne(queryWrapper);
+//        if (swapGlassInfo != null && !glassInfo.getGlassId().equals(swapGlassInfo.getGlassId())) {
+//            String swapGlassId = swapGlassInfo.getGlassId();
+//            log.info("灏嗙幓鐠儃}鍜岀幓鐠儃}锛屼俊鎭簰鎹�,杩涚幓鐠� {}", glassInfo, swapGlassInfo, swapGlassInfo);
+//            swapGlassInfo.setGlassId(glassId);
+//            glassInfo.setGlassId(swapGlassId);
+//            glassInfoService.updateById(swapGlassInfo);
+//            glassInfoService.updateById(glassInfo);
+//            return swapGlassId;
+//        }
+//        return "";
+//    }
+//
+//
+//    /**
+//     * 鏌ヨ鍗у紡鐞嗙墖鐜荤拑骞惰繘琛屼氦鎹�
+//     *
+//     * @param glassId
+//     * @return
+//     */
+//    public void queryEdgAndChangeGlass(String glassId, String swapGlassId) {
+//        if (StringUtils.isBlank(swapGlassId)) {
+//            log.info("褰撳墠鍑虹鐜荤拑涓嶅瓨鍦ㄩ渶瑕佹浛鎹㈢殑鐜荤拑");
+//            return;
+//        }
+//        //鑾峰彇寰呭嚭绗肩殑鐜荤拑
+//        EdgStorageCageDetails glassInfo = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+//                .eq(EdgStorageCageDetails::getGlassId, glassId).eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN));
+////        鑾峰彇寰呭嚭绗肩殑鐜荤拑闇�瑕佹浛鎹㈢殑鐜荤拑淇℃伅
+//        EdgStorageCageDetails swapGlassDetailInfo = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+//                .eq(EdgStorageCageDetails::getGlassId, swapGlassId).eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN));
+//
+////      鐜荤拑灏忕墖琛ㄤ腑鐜荤拑宸茬粡鏇挎崲锛屾洿鏂板崸鐞嗙鍐呯幇鏈夌殑鍑嗗鍑虹鐨勭幓鐠冧俊鎭紝
+//        if (null == swapGlassDetailInfo) {
+//            GlassInfo glassInfoBase = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
+//                    .eq(GlassInfo::getGlassId, glassId));
+//            //闇�瑕佹浛鎹㈢殑鐜荤拑涓哄瓨杩涘崸鐞嗭紝浠呴渶鏇存柊褰撳墠闇�瑕佸嚭绗肩殑鐜荤拑淇℃伅鍗冲彲
+//            edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>()
+//                    .eq(EdgStorageCageDetails::getGlassId, glassId)
+//                    .set(EdgStorageCageDetails::getTemperingLayoutId, glassInfoBase.getTemperingLayoutId())
+//                    .set(EdgStorageCageDetails::getTemperingFeedSequence, glassInfoBase.getTemperingFeedSequence()));
+//        } else {
+//            //闇�瑕佹浛鎹㈢殑鐜荤拑閮藉湪鍗х悊鍐咃紝鎸夌収鐜荤拑id瀵硅皟鐜荤拑淇℃伅锛氬璋冪幓鐠僫d鍗冲彲
+//            edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>()
+//                    .eq(EdgStorageCageDetails::getId, glassInfo.getId())
+//                    .set(EdgStorageCageDetails::getTemperingLayoutId, swapGlassDetailInfo.getTemperingLayoutId())
+//                    .set(EdgStorageCageDetails::getTemperingFeedSequence, swapGlassDetailInfo.getTemperingFeedSequence())
+//            );
+//            edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>()
+//                    .eq(EdgStorageCageDetails::getId, swapGlassDetailInfo.getId())
+//                    .set(EdgStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
+//                    .set(EdgStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence())
+//            );
+//        }
+//    }
+//
+//    /**
+//     * 鍑虹墖浠诲姟
+//     *
+//     * @param out08Glassstate
+//     * @param out10Glassstate
+//     * @param confirmationWrodAddress
+//     * @param glassId
+//     * @param currentSlot
+//     */
+//    public boolean outTo(int out08Glassstate, int out10Glassstate, String confirmationWrodAddress, String glassId, int currentSlot) {
+//        //閫昏緫姝ラ锛�
+////        0銆丄09銆丄10鏄惁绌洪棽锛屾槸鍚﹀彲浠ユ墽琛屽嚭鐗囦换鍔�
+////        1銆佽幏鍙栭挗鍖栫増鍥炬槸鍚﹁秴杩囬槇鍊�
+////        1.1銆佽秴杩囬槇鍊硷細鑾峰彇褰撳墠鏈�灏忕増鍥鹃渶瑕佸嚭鐗囩殑鐜荤拑淇℃伅
+////        1.1.1銆佽幏鍙栦袱鏉$嚎鏈�鍚庝竴娆″嚭鐗囩殑浠诲姟淇℃伅
+////        1.1.2銆佹寜鐓у嚭鐗囦俊鎭幓璇︽儏琛ㄦ煡璇㈡牸瀛愬湪绗煎瓙閲岄潰鍓╀綑鐩稿悓灏哄鐨勭幓鐠冩暟鎹�
+////        1.1.3銆佸垽鏂摢鏉$嚎鐜荤拑鏁伴噺鍦ㄧ悊鐗囩鍐呯殑鏁版嵁鏈�灏戯紝鍐冲畾鏈�灏忕増鍥捐蛋璇ユ潯绾匡紙闂锛氬鏋滆繖鏉$嚎闈炵┖闂诧紝鐩存帴缁撴潫锛�
+////        1.2銆佹湭瓒呰繃闃堝�硷細
+////        1.2.1銆佽幏鍙栫▼搴忛偅鏉$嚎绌洪棽
+////        1.2.2銆佽幏鍙栬鏉$嚎鏈�鍚庝竴娆″嚭鐗囩殑浠诲姟淇℃伅
+////        1.2.3銆佹寜鐓у嚭鐗囦俊鎭幓璇︽儏琛ㄦ煡璇㈡牸瀛愬湪绗煎瓙閲岄潰鍓╀綑鐩稿悓灏哄鐨勭幓鐠冩暟鎹笖浠ョ増鍥緄d銆佺増搴忓崌搴忔帓搴�  鍙栫涓�鍧楃幓鐠冨嚭鐗�
+////        2銆佸鏋滄病鏈夊巻鍙插嚭鐗囦换鍔�
+////        2.1銆佸嚭褰撳墠鐗堝浘id鏈�灏忕増搴忔渶灏忕殑鐜荤拑锛堥棶棰橈細涓ゆ潯绾块兘娌℃湁鍘嗗彶浠诲姟锛屽嚭鐗囨椂涓ゆ潯绾跨殑鐜荤拑灏哄鐩稿悓锛屾槸鍚︽壘灏哄涓嶅悓鐨勶級
+//        if ((out08Glassstate == 2 && out10Glassstate == 2) || (out08Glassstate == 0 && out10Glassstate == 0)) {
+//            log.info("A09銆丄10涓簕},{}闈炶嚜鍔ㄧ姸鎬侊紝鏃犳硶鍑虹墖", out08Glassstate, out10Glassstate);
+//            return Boolean.FALSE;
+//        }
+//        log.info("0銆佸嚭鐗囦换鍔″嚭鐨勭姸鎬�:A09:銆恵}銆�;A10:銆恵}銆�)", out08Glassstate, out10Glassstate);
+//        //瀹氫箟鍑虹墖鐜荤拑淇℃伅
+//        int endcell = 0;
+//        EdgStorageCageDetails glassInfo = null;
+//
+//
+//        boolean flag = queryMaxMinDiff(threshold);
+//        log.info("1銆佽幏鍙栭挗鍖栫増鍥炬槸鍚﹁秴杩囬槇鍊�:{}", flag);
+//        if (flag) {
+//            //鑾峰彇褰撳墠鏈�灏忕増鍥鹃渶瑕佸嚭鐗囩殑鐜荤拑淇℃伅
+//            glassInfo = queryMinGlass(0.0, 0.0, glassId);
+//            log.info("1.1銆佽秴杩囬槇鍊硷細鑾峰彇褰撳墠鏈�灏忕増鍥鹃渶瑕佸嚭鐗囩殑鐜荤拑淇℃伅:{}", glassInfo);
+//            if (glassInfo == null) {
+//                log.info("绗煎瓙鍐呭拰寰呰繘鐗囨病鏈夌幓鐠�");
+//                return Boolean.FALSE;
+//            }
+//            EdgStorageCageDetails a09EdgGlass = queryGlassByTaskCache(Const.A09_OUT_TARGET_POSITION, Const.GLASS_CACHE_TYPE_OUT_ALL);
+//            EdgStorageCageDetails a10EdgGlass = queryGlassByTaskCache(Const.A10_OUT_TARGET_POSITION, Const.GLASS_CACHE_TYPE_OUT_ALL);
+//            endcell = queryLineByGlassInfo(a09EdgGlass, a10EdgGlass, glassInfo, out08Glassstate, out10Glassstate);
+//        } else {
+//            //鎸夌収鐘舵�佸垽鏂袱鏉$嚎璧伴偅鏉$嚎
+//            endcell = computerLineByState(out08Glassstate, out10Glassstate);
+//
+//            if (out08Glassstate == 1 && out10Glassstate == 1) {
+//                EdgStorageCageDetails a09EdgGlass = queryGlassByTaskCache(Const.A09_OUT_TARGET_POSITION, Const.GLASS_CACHE_TYPE_OUT_ALL);
+//                EdgStorageCageDetails a10EdgGlass = queryGlassByTaskCache(Const.A10_OUT_TARGET_POSITION, Const.GLASS_CACHE_TYPE_OUT_ALL);
+//                if (a09EdgGlass == null && a10EdgGlass == null) {
+//                    MPJQueryWrapper<EdgStorageCageDetails> wrapper = new MPJQueryWrapper<>();
+//                    wrapper.select("count(t.glass_id), t.width, t.height")
+//                            .eq("t.state", Const.GLASS_STATE_IN)
+//                            .inSql("t.slot", "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON)
+//                            .groupBy("t.width, t.height");
+//                    if (endcell == Const.A10_OUT_TARGET_POSITION) {
+//                        wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
+//                                "case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
+//                                "on t.glass_id = t1.glass_id and (t1.first_length between " + minTwoFirstLength + " and " + firstLength
+//                                + " and t1.second_length between " + minTwoSecondLength + " and " + secondLength + ") ");
+//                    } else {
+//                        wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
+//                                "case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
+//                                "on t.glass_id = t1.glass_id and (t1.first_length >=" + minOneFirstLength + " and t1.second_length>=" + minOneSecondLength + ") ");
+//                    }
+//                    wrapper.last("order by count(t.glass_id) desc  limit 2");
+//                    List<EdgStorageCageDetails> list = edgStorageCageDetailsService.list(wrapper);
+//                    if (CollectionUtil.isEmpty(list)) {
+//                        MPJQueryWrapper<GlassInfo> queryWrapper = new MPJQueryWrapper<GlassInfo>()
+//                                .selectAll(GlassInfo.class).eq("t.glass_id", glassId);
+//                        if (endcell == Const.A10_OUT_TARGET_POSITION) {
+//                            queryWrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
+//                                    "case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
+//                                    "on t.glass_id = t1.glass_id and (t1.first_length between " + minTwoFirstLength + " and " + firstLength
+//                                    + " and t1.second_length between " + minTwoSecondLength + " and " + secondLength + ") ");
+//                        } else {
+//                            queryWrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
+//                                    "case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
+//                                    "on t.glass_id = t1.glass_id and (t1.first_length >=" + minOneFirstLength + " and t1.second_length>=" + minOneSecondLength + ") ");
+//                        }
+//                        GlassInfo one = glassInfoService.getOne(queryWrapper);
+//                        if (one != null) {
+//                            EdgStorageCageDetails resultDetails = new EdgStorageCageDetails();
+//                            BeanUtils.copyProperties(one, resultDetails);
+//                            glassInfo = resultDetails;
+//                        } else {
+//                            log.info("鑾峰彇绗煎唴鐜荤拑鍜屽緟杩涚墖鐜荤拑涓虹┖鎴栬�呬笉绗﹀悎纾ㄨ竟灏哄");
+//                        }
+//                    } else {
+//                        glassInfo = queryMinGlass(list.get(0).getWidth(), list.get(0).getHeight(), glassId);
+//                    }
+//                } else if (a09EdgGlass != null && a10EdgGlass != null) {
+//                    List<EdgStorageCageDetails> a09Count = queryGlassByTaskLine(Const.A09_OUT_TARGET_POSITION);
+//                    List<EdgStorageCageDetails> a10Count = queryGlassByTaskLine(Const.A10_OUT_TARGET_POSITION);
+//                    endcell = a09Count.size() > a10Count.size() ? Const.A09_OUT_TARGET_POSITION : Const.A10_OUT_TARGET_POSITION;
+//                    glassInfo = a09Count.size() > a10Count.size() ? queryMinGlass(a09EdgGlass.getWidth(), a09EdgGlass.getHeight(), glassId)
+//                            : queryMinGlass(a10EdgGlass.getWidth(), a10EdgGlass.getHeight(), glassId);
+//                } else {
+//                    //鎸夌収鍘嗗彶浠诲姟鑾峰彇闇�瑕佹墽琛岀殑璺嚎锛屽鏋滆鏉$嚎绗煎唴鏃犵幓鐠� 璧板叾浠栭�昏緫
+//                    endcell = a09EdgGlass == null ? Const.A09_OUT_TARGET_POSITION : Const.A10_OUT_TARGET_POSITION;
+//                    List<EdgStorageCageDetails> details = queryGlassByTaskLine(endcell);
+//                    if (CollectionUtil.isEmpty(details)) {
+//                        int othercell = endcell == Const.A10_OUT_TARGET_POSITION ? Const.A09_OUT_TARGET_POSITION : Const.A10_OUT_TARGET_POSITION;
+//                        glassInfo = queryChangeGlassInfo(othercell, glassId);
+//                    } else {
+//                        glassInfo = a09EdgGlass != null ? queryMinGlass(a09EdgGlass.getWidth(), a09EdgGlass.getHeight(), glassId)
+//                                : queryMinGlass(a10EdgGlass.getWidth(), a10EdgGlass.getHeight(), glassId);
+//                    }
+//                }
+//            } else {
+//                List<EdgStorageCageDetails> edgStorageCageDetails = queryGlassByTaskLine(endcell);
+//                if (CollectionUtil.isNotEmpty(edgStorageCageDetails)) {
+//                    glassInfo = edgStorageCageDetails.get(0);
+//                } else {
+//                    //鑾峰彇绗煎唴鎵�鏈夌幓鐠冧俊鎭紝鍖呮嫭寰呰繘鐗囩殑
+//                    List<EdgStorageCageDetails> glassList = queryEdgAllGlass(glassId);
+//                    if (CollectionUtil.isEmpty(glassList)) {
+//                        log.info("绗煎唴鍜屽緟杩涚墖閮芥病鏈夌幓鐠�");
+//                        return Boolean.FALSE;
+//                    }
+//                    if (glassList.size() == 1 && glassId.equals(glassList.get(0).getGlassId())) {
+//                        glassInfo = glassList.get(0);
+//                    } else {
+//                        int othercell = endcell == Const.A10_OUT_TARGET_POSITION ? Const.A09_OUT_TARGET_POSITION : Const.A10_OUT_TARGET_POSITION;
+//                        glassInfo = queryChangeGlassInfo(othercell, glassId);
+//                    }
+//                }
+//            }
+//        }
+//        return saveOutGlassMessageBySlot(glassInfo, endcell, confirmationWrodAddress, glassId, currentSlot);
+//    }
+//
+//    /**
+//     * 鑾峰彇绗煎瓙鍐呮墍鏈夌幓鐠冧俊鎭紝鍖呮嫭寰呰繘鐗囩殑
+//     *
+//     * @param glassId
+//     */
+//    private List<EdgStorageCageDetails> queryEdgAllGlass(String glassId) {
+//        List<EdgStorageCageDetails> glassList = new ArrayList<>();
+//        //鑾峰彇寰呰繘鐗囩幓鐠�
+//        //todo: 鑾峰彇姝e湪鎵ц鐨勫伐绋嬩俊鎭�
+//        if (StringUtils.isNotBlank(glassId)) {
+//            GlassInfo one = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
+//                    .eq(GlassInfo::getGlassId, glassId));
+////                    .inSql(GlassInfo::getEngineerId, "select engineer_id from engineering where state = 1"));
+//            EdgStorageCageDetails resultDetails = new EdgStorageCageDetails();
+//            BeanUtils.copyProperties(one, resultDetails);
+//            glassList.add(resultDetails);
+//        }
+//        //鑾峰彇绗煎唴鐜荤拑
+//        List<EdgStorageCageDetails> details = edgStorageCageDetailsService.selectJoinList(EdgStorageCageDetails.class, new MPJLambdaWrapper<EdgStorageCageDetails>().selectAll(EdgStorageCageDetails.class)
+//                .leftJoin(EdgStorageCage.class, on -> on.eq(EdgStorageCage::getSlot, EdgStorageCageDetails::getSlot).eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN))
+//                .eq(EdgStorageCage::getEnableState, Const.SLOT_ON));
+//        glassList.addAll(details);
+//        return glassList;
+//
+//    }
+//
+//    /**
+//     * 鑾峰彇璇︽儏琛ㄥ唴鏈�澶ф渶灏忕増鍥緄d鐨勫樊鍊硷紝鍒ゆ柇鏄惁鍑烘渶灏忕増鍥剧幓鐠�
+//     *
+//     * @return
+//     */
+//    public boolean queryMaxMinDiff(int threshold) {
+//        //鑾峰彇绗煎瓙鍐呮渶澶х増鍥緄d鍜屾渶灏忕増鍥緄d鎻掑�硷紝鍒ゆ柇鏄惁澶т簬闃堝�硷紝澶т簬闃堝�肩洿鎺ュ嚭鏈�灏忕増鍥剧幓鐠�
+//        QueryWrapper<EdgStorageCageDetails> queryWrapper = new QueryWrapper<>();
+//        queryWrapper.select("max(tempering_layout_id)-min(tempering_layout_id) as diff")
+//                .eq("state", Const.GLASS_STATE_IN)
+//                .inSql("slot", "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON);
+//        List<Object> list = edgStorageCageDetailsService.listObjs(queryWrapper);
+//        //鑾峰彇绗煎唴鐜荤拑鐗堝浘宸�兼槸鍚﹀ぇ浜庨槇鍊�
+//        if (CollectionUtil.isNotEmpty(list)) {
+//            Long diff = (Long) list.get(0);
+//            return diff > threshold;
+//        } else {
+//            return Boolean.FALSE;
+//        }
+//    }
+//
+//    /**
+//     * 鑾峰彇褰撳墠鏈�灏忕増鍥鹃渶瑕佸嚭鐗囩殑鐜荤拑淇℃伅
+//     *
+//     * @param width
+//     * @param height
+//     */
+//    private EdgStorageCageDetails queryMinGlass(double width, double height, String glassId) {
+//        //鑾峰彇琛ㄥ唴鐗堝浘id鏈�灏忕殑鐜荤拑淇℃伅
+//        EdgStorageCageDetails glassDetails = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+//                .eq(EdgStorageCageDetails::getState, 100)
+//                .eq(width != 0, EdgStorageCageDetails::getWidth, width)
+//                .eq(height != 0, EdgStorageCageDetails::getHeight, height)
+//                .inSql(EdgStorageCageDetails::getSlot, "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON)
+//                .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId)
+//                .orderBy(Boolean.TRUE, sequenceOrder, EdgStorageCageDetails::getTemperingFeedSequence)
+//                .last("limit 1"));
+//        if (StringUtils.isBlank(glassId)) {
+//            return glassDetails;
+//        }
+//        GlassInfo one = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
+//                        .eq(GlassInfo::getGlassId, glassId)
+////                .inSql(GlassInfo::getEngineerId, "select engineer_id from engineering where state = 1")
+//        );
+//        EdgStorageCageDetails resultDetails = new EdgStorageCageDetails();
+//        BeanUtils.copyProperties(one, resultDetails);
+//        if (null == glassDetails) {
+//            return resultDetails;
+//        }
+//        return resultDetails.getTemperingLayoutId() <= glassDetails.getTemperingLayoutId() && resultDetails.getTemperingFeedSequence() > glassDetails.getTemperingFeedSequence() ?
+//                resultDetails : glassDetails;
+//    }
+//
+//    /**
+//     * 鑾峰彇浠诲姟琛ㄤ腑鎸囧畾绾胯矾绗煎瓙鍐呰繕鍓╀綑鐨勭幓鐠冧俊鎭�
+//     */
+//    private List<EdgStorageCageDetails> queryGlassByTaskLine(int line) {
+//        //鑾峰彇浠诲姟琛ㄤ腑鏈�鍚庝竴娆″嚭鐗囩殑鐜荤拑id
+//        TaskCache taskCache = taskCacheService.queryGlassByTaskCache(line, Const.GLASS_CACHE_TYPE_OUT_ALL);
+//        if (null == taskCache) {
+//            log.info("娌℃湁鎵惧埌{}绾夸换鍔′俊鎭�", line);
+//            return new ArrayList<>();
+//        }
+//        MPJQueryWrapper<EdgStorageCageDetails> mpjLambdaWrapper = new MPJQueryWrapper<>();
+//        mpjLambdaWrapper.select("t1.*")
+//                .innerJoin("edg_storage_cage_details t1 on t.width = t1.width and t.height = t1.height")
+//                .eq("t.glass_id", taskCache.getGlassId())
+//                .ne("t1.glass_id", taskCache.getGlassId())
+//                .eq("t1.state", Const.GLASS_STATE_IN)
+//                .inSql("t1.slot", "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON)
+//                .orderByAsc("t1.tempering_layout_id")
+//                .orderBy(Boolean.TRUE, sequenceOrder, "t1.tempering_feed_sequence");
+//        List<EdgStorageCageDetails> details = edgStorageCageDetailsService.selectJoinList(EdgStorageCageDetails.class, mpjLambdaWrapper);
+//        if (CollectionUtil.isEmpty(details)) {
+//            return new ArrayList<>();
+//        }
+//        return details;
+//    }
+//
+//    /**
+//     * 鎸夌収浠诲姟绫诲瀷銆佺嚎鍙疯幏鍙栦换鍔′俊鎭�
+//     *
+//     * @param line
+//     * @param taskTypes
+//     * @return
+//     */
+//    private EdgStorageCageDetails queryGlassByTaskCache(int line, List<Integer> taskTypes) {
+//        TaskCache taskCache = taskCacheService.queryGlassByTaskCache(line, taskTypes);
+//        if (null == taskCache) {
+//            log.info("娌℃湁鎵惧埌{}绾夸换鍔′俊鎭�", line);
+//            return null;
+//        }
+//        return edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getGlassId, taskCache.getGlassId())
+//                .inSql(EdgStorageCageDetails::getSlot, "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON)
+//                .last(" limit 1 "));
+//    }
+//
+//    /**
+//     * 鎸夌収浠诲姟鐜荤拑淇℃伅鍜屽緟鍑虹墖鐜荤拑淇℃伅鑾峰彇鍑虹墖璺緞
+//     *
+//     * @param a08EdgStorageCageDetails 09鍙风嚎鍑虹墖鐜荤拑淇℃伅
+//     * @param a10EdgStorageCageDetails 10鍙风嚎鍑虹墖鐜荤拑淇℃伅
+//     * @param glassInfo                甯﹀嚭鐗囩幓鐠冧俊鎭�
+//     * @param out08Glassstate          09鍙风嚎绌洪棽鐘舵��
+//     * @param out10Glassstate          10鍙风嚎绌洪棽鐘舵��
+//     * @return
+//     */
+//    private Integer queryLineByGlassInfo(EdgStorageCageDetails a08EdgStorageCageDetails, EdgStorageCageDetails a10EdgStorageCageDetails,
+//                                         EdgStorageCageDetails glassInfo, int out08Glassstate, int out10Glassstate) {
+//        //瀛樺湪鍑虹墖浠诲姟 07涓虹┖
+//        if (out08Glassstate == 1 && out10Glassstate == 1) {
+//            boolean b08 = a08EdgStorageCageDetails != null && a08EdgStorageCageDetails.getHeight() == glassInfo.getHeight()
+//                    && a08EdgStorageCageDetails.getWidth() == glassInfo.getWidth();
+//            boolean b10 = a10EdgStorageCageDetails != null && a10EdgStorageCageDetails.getHeight() == glassInfo.getHeight()
+//                    && a10EdgStorageCageDetails.getWidth() == glassInfo.getWidth();
+//            if (b08) {
+//                return Const.A09_OUT_TARGET_POSITION;
+//            }
+//            if (b10) {
+//                return Const.A10_OUT_TARGET_POSITION;
+//            }
+//        }
+//        return computerLineByState(out08Glassstate, out10Glassstate);
+//    }
+//
+//    /**
+//     * 鎸夌収灏哄鍑虹幓鐠�
+//     *
+//     * @param endcell endcell = out08Glassstate == 1 ? Const.A09_OUT_TARGET_POSITION : Const.A10_OUT_TARGET_POSITION;
+//     * @param glassId
+//     * @return
+//     */
+//    public EdgStorageCageDetails queryChangeGlassInfo(int endcell, String glassId) {
+//        //鑾峰彇绗煎瓙鍐呮暟閲忓墠浜岀殑鐜荤拑鏁伴噺
+//        MPJQueryWrapper<EdgStorageCageDetails> wrapper = new MPJQueryWrapper<>();
+//        wrapper.select("count(t.glass_id) as count, t.width, t.height")
+//                .eq("t.state", Const.GLASS_STATE_IN)
+//                .inSql("t.slot", "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON)
+//                .groupBy("t.width, t.height");
+//        if (endcell == Const.A10_OUT_TARGET_POSITION) {
+//            wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
+//                    "case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
+//                    "on t.glass_id = t1.glass_id and (t1.first_length >= " + minOneFirstLength + " and t1.second_length >= " + minOneSecondLength + ")");
+//        } else {
+//            wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
+//                    "case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
+//                    "on t.glass_id = t1.glass_id and (t1.first_length between " + minTwoFirstLength + " and " + firstLength
+//                    + " and t1.second_length between " + minTwoSecondLength + " and " + secondLength + ") ");
+//        }
+//        wrapper.last("order by count(t.glass_id) desc  limit 2");
+//        List<EdgStorageCageDetails> list = edgStorageCageDetailsService.list(wrapper);
+//        if (CollectionUtil.isEmpty(list)) {
+//            return null;
+//        }
+//        log.info("鑾峰彇绗煎瓙鍐呮暟閲忓墠浜岀殑鐜荤拑鏁伴噺锛歿}", list);
+//        //鑾峰彇瀹介珮鎷嶇涓�鐨勭幓鐠冧俊鎭�
+//        EdgStorageCageDetails firstSize = list.get(0);
+//        Integer firstCount = firstSize.getCount();
+//        double firstWidth = firstSize.getWidth();
+//        double firstHeight = firstSize.getHeight();
+//        if (list.size() == 1) {
+//            return queryMinGlass(firstWidth, firstHeight, glassId);
+//        }
+//        //鑾峰彇瀹介珮鎷嶇浜岀殑鐜荤拑淇℃伅
+//        EdgStorageCageDetails secondSize = list.get(1);
+//        Integer secondCount = secondSize.getCount();
+//        double secondWidth = secondSize.getWidth();
+//        double secondHeight = secondSize.getHeight();
+//        //鑾峰彇鏁伴噺鍓�2鐨勭幓鐠冩暟閲忔瘮渚�
+//        Integer mix = firstCount / secondCount;
+//        log.info("鑾峰彇鐜荤拑鏁伴噺鍓�2鐨勭幓鐠冨崰姣斾负锛歿}", mix);
+//
+//        if (mix >= 2) {
+//            log.info("鑾峰彇鐜荤拑鏁伴噺鍓�2鐨勭幓鐠冨崰姣斾负{}锛屽ぇ浜�2锛岀洿鎺ュ嚭鐜荤拑鏁版嵁鐨勬渶澶氱殑锛屽锛歿}锛岄珮锛歿}", mix, firstWidth, firstHeight);
+//            return queryMinGlass(firstWidth, firstHeight, glassId);
+//        } else {
+//            log.info("鑾峰彇鐜荤拑鏁伴噺鍓�2鐨勭幓鐠冨崰姣斾负{}锛屽皬浜�2", mix);
+//            //鑾峰彇浠诲姟琛ㄤ腑鏈�鍚庝竴娆″嚭鐗囩殑鐜荤拑id
+//            TaskCache taskCache = taskCacheService.queryGlassByTaskCache(endcell, Const.GLASS_CACHE_TYPE_OUT_ALL);
+//            log.info("鑾峰彇浠诲姟琛ㄤ腑{}绾挎渶鍚庝竴娆″嚭鐗囩殑鐜荤拑浠诲姟淇℃伅锛歿}", endcell, taskCache);
+//            if (null == taskCache) {
+//                log.info("{}绾挎病鏈夊嚭鐗囦换鍔′俊鎭紝鐩存帴鍑虹墖", endcell);
+//                return queryMinGlass(firstSize.getWidth(), firstSize.getHeight(), glassId);
+//            }
+//            EdgStorageCageDetails outGlassInfo = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+//                    .eq(EdgStorageCageDetails::getGlassId, taskCache.getGlassId()).last("limit 1"));
+//            log.info("{}绾挎湁鍑虹墖浠诲姟淇℃伅,浠诲姟淇℃伅涓簕}锛岀幓鐠冧俊鎭负{}", endcell, taskCache, outGlassInfo);
+//            if (outGlassInfo.getWidth() == firstWidth && outGlassInfo.getHeight() == firstHeight) {
+//                log.info("鏁伴噺鏈�澶氱殑瀹絳}楂榹}鍜寋}绾夸换鍔$殑瀹絳}楂榹}鐩稿悓锛屽嚭鏁伴噺鎺掔浜岀殑鐜荤拑锛屽{}楂榹}",
+//                        firstWidth, firstHeight, endcell, outGlassInfo.getWidth(), outGlassInfo.getHeight(), secondWidth, secondHeight);
+//                return queryMinGlass(secondWidth, secondHeight, glassId);
+//            } else {
+//                log.info("鏁伴噺绗簩澶氱殑瀹絳}楂榹}鍜寋}绾夸换鍔$殑瀹絳}楂榹}鐩稿悓锛屽嚭鏁伴噺鎺掔浜岀殑鐜荤拑锛屽{}楂榹}",
+//                        secondWidth, secondHeight, endcell, outGlassInfo.getWidth(), outGlassInfo.getHeight(), firstWidth, firstHeight);
+//                return queryMinGlass(firstWidth, firstHeight, glassId);
+//            }
+//        }
+//    }
+//
+//    /**
+//     * 淇濆瓨鍑虹墖浠诲姟鐩稿叧淇℃伅
+//     *
+//     * @param glassInfo
+//     * @param endcell
+//     * @param confirmationWrodAddress
+//     * @param glassId
+//     * @return
+//     */
+//    private boolean saveOutGlassMessage(EdgStorageCageDetails glassInfo, int endcell, String confirmationWrodAddress, String glassId, Integer currentSlot) {
+//        if (glassInfo != null) {
+//            log.info("4銆佹坊鍔犲嚭鐗囦换鍔★紝鐜荤拑id锛歿}锛屼换鍔$被鍨嬶細{}锛岃捣濮嬩綅缃細{}锛岀粨鏉熶綅缃細{}", glassInfo.getGlassId(),
+//                    2, glassInfo.getSlot(), endcell);
+//            if (glassInfo.getGlassId().equals(glassId)) {
+//
+//                log.info("5銆佺洿閫氫换鍔�,灏嗙幓鐠冧俊鎭彃鍏ュ崸寮忕悊鐗囩,褰撳墠鐜荤拑淇℃伅:{}", glassInfo);
+//                EdgStorageCageDetails details = new EdgStorageCageDetails();
+//                BeanUtils.copyProperties(glassInfo, details);
+//                EdgStorageCage nearestEmpty = edgStorageCageService.selectNearestEmpty(task.getCurrentCell(), currentSlot, Boolean.TRUE);
+//                Assert.isTrue(null != nearestEmpty, "鏍煎瓙宸叉弧,鏃犳硶鎵ц鐩撮�氫换鍔�");
+//                log.info("3銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", nearestEmpty);
+//                details.setSlot(nearestEmpty.getSlot());
+//                details.setState(Const.GLASS_STATE_OUT);
+//                edgStorageCageDetailsService.save(details);
+//                boolean taskCacheStatus = saveTaskCache(glassInfo.getGlassId(), nearestEmpty.getSlot(), endcell, Const.GLASS_CACHE_TYPE_THROUGH);
+//                log.info("6銆佹坊鍔犲嚭鐗囦换鍔℃槸鍚﹀畬鎴愶細{}", taskCacheStatus);
+//            } else {
+//                log.info("5銆侀潪鐩撮�氫换鍔�,灏嗙幓鐠冧俊鎭彃鍏ュ崸寮忕悊鐗囩,褰撳墠鐜荤拑淇℃伅:{}", glassInfo);
+//                LambdaUpdateWrapper<EdgStorageCageDetails> wrapper = new LambdaUpdateWrapper<>();
+//                wrapper.eq(EdgStorageCageDetails::getGlassId, glassInfo.getGlassId()).set(EdgStorageCageDetails::getState, Const.GLASS_STATE_OUT);
+//                edgStorageCageDetailsService.update(wrapper);
+//                log.info("5銆佹洿鏂板嚭鐗囩幓鐠冪殑鐘舵�佷负{}", Const.GLASS_STATE_OUT);
+//
+//                boolean taskCacheStatus = saveTaskCache(glassInfo.getGlassId(), glassInfo.getSlot(), endcell, Const.GLASS_CACHE_TYPE_OUT);
+//                log.info("6銆佹坊鍔犲嚭鐗囦换鍔℃槸鍚﹀畬鎴愶細{}", taskCacheStatus);
+//            }
+//            boolean glassSizeStatus = saveGlassSize(glassInfo, endcell);
+//            log.info("7銆佹坊鍔犲嚭鐗囩幓鐠冨昂瀵镐俊鎭埌纾ㄨ竟鍓嶇幓鐠冭〃鏄惁瀹屾垚锛歿}", glassSizeStatus);
+//            S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, 1);
+//            log.info("8銆佸彂閫佺‘璁ゅ瓧宸插畬鎴�");
+//            Damage damage = new Damage();
+//            damage.setGlassId(glassInfo.getGlassId());
+//            damage.setWorkingProcedure("鍒囧壊");
+//            damage.setLine(1001);
+//            damage.setType(1);
+//            damage.setRemark("杩囧崸寮忕悊鐗�");
+//            damageService.insertDamage(damage);
+//            return Boolean.TRUE;
+//        }
+//        return Boolean.FALSE;
+//    }
+//
+//    /**
+//     * 淇濆瓨鍑虹墖浠诲姟鐩稿叧淇℃伅
+//     *
+//     * @param glassInfo
+//     * @param endcell
+//     * @param confirmationWrodAddress
+//     * @param glassId
+//     * @return
+//     */
+//    private boolean saveOutGlassMessageBySlot(EdgStorageCageDetails glassInfo, int endcell, String confirmationWrodAddress, String glassId, Integer currentSlot) {
+//        if (glassInfo != null) {
+//            log.info("4銆佹坊鍔犲嚭鐗囦换鍔★紝鐜荤拑id锛歿}锛屼换鍔$被鍨嬶細{}锛岃捣濮嬩綅缃細{}锛岀粨鏉熶綅缃細{}", glassInfo.getGlassId(),
+//                    2, glassInfo.getSlot(), endcell);
+//            if (glassInfo.getGlassId().equals(glassId)) {
+//                log.info("5銆佺洿閫氫换鍔�,灏嗙幓鐠冧俊鎭彃鍏ュ崸寮忕悊鐗囩,褰撳墠鐜荤拑淇℃伅:{}", glassInfo);
+//                EdgStorageCageDetails details = new EdgStorageCageDetails();
+//                //鐜荤拑淇℃伅鏇挎崲
+//                String glassIdChange = queryAndChangeGlass(glassId);
+//                if (StringUtils.isBlank(glassIdChange)) {
+//                    BeanUtils.copyProperties(glassInfo, details);
+//                } else {
+//                    GlassInfo one = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
+//                    BeanUtils.copyProperties(one, details);
+//                }
+//                EdgStorageCage nearestEmpty = edgStorageCageService.selectNearestEmpty(task.getCurrentCell(), currentSlot, Boolean.TRUE);
+//                Assert.isTrue(null != nearestEmpty, "鏍煎瓙宸叉弧,鏃犳硶鎵ц鐩撮�氫换鍔�");
+//                log.info("3銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", nearestEmpty);
+//                details.setSlot(nearestEmpty.getSlot());
+//                details.setState(Const.GLASS_STATE_OUT);
+//                edgStorageCageDetailsService.save(details);
+//                boolean taskCacheStatus = saveTaskCache(glassInfo.getGlassId(), nearestEmpty.getSlot(), endcell, Const.GLASS_CACHE_TYPE_THROUGH);
+//                log.info("6銆佹坊鍔犲嚭鐗囦换鍔℃槸鍚﹀畬鎴愶細{}", taskCacheStatus);
+//            } else {
+//                log.info("5銆侀潪鐩撮�氫换鍔�,灏嗙幓鐠冧俊鎭彃鍏ュ崸寮忕悊鐗囩,褰撳墠鐜荤拑淇℃伅:{}", glassInfo);
+//                if (!glassInfo.getSlot().equals(currentSlot)) {
+//                    EdgStorageCageDetails currentGlass = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+//                            .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+//                            .eq(EdgStorageCageDetails::getSlot, currentSlot).eq(EdgStorageCageDetails::getWidth, glassInfo.getWidth())
+//                            .eq(EdgStorageCageDetails::getHeight, glassInfo.getHeight()).eq(EdgStorageCageDetails::getThickness, glassInfo.getThickness())
+//                    );
+//                    if (null != currentGlass) {
+//                        glassInfo = currentGlass;
+//                    }
+//                }
+//                //鐜荤拑淇℃伅鏇挎崲
+//                String glassIdChange = queryAndChangeGlass(glassInfo.getGlassId());
+//                //澶勭悊鍦ㄥ崸鐞嗗唴鐨勭幓鐠冧俊鎭細绗煎唴鐨勬暟鎹鐞�
+//                queryEdgAndChangeGlass(glassInfo.getGlassId(), glassIdChange);
+//                LambdaUpdateWrapper<EdgStorageCageDetails> wrapper = new LambdaUpdateWrapper<>();
+//                wrapper.eq(EdgStorageCageDetails::getGlassId, glassInfo.getGlassId()).set(EdgStorageCageDetails::getState, Const.GLASS_STATE_OUT);
+//                edgStorageCageDetailsService.update(wrapper);
+//                log.info("5銆佹洿鏂板嚭鐗囩幓鐠冪殑鐘舵�佷负{}", Const.GLASS_STATE_OUT);
+//
+//                boolean taskCacheStatus = saveTaskCache(glassInfo.getGlassId(), glassInfo.getSlot(), endcell, Const.GLASS_CACHE_TYPE_OUT);
+//                log.info("6銆佹坊鍔犲嚭鐗囦换鍔℃槸鍚﹀畬鎴愶細{}", taskCacheStatus);
+//            }
+//            boolean glassSizeStatus = saveGlassSize(glassInfo, endcell);
+//            log.info("7銆佹坊鍔犲嚭鐗囩幓鐠冨昂瀵镐俊鎭埌纾ㄨ竟鍓嶇幓鐠冭〃鏄惁瀹屾垚锛歿}", glassSizeStatus);
+//            S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, 1);
+//            log.info("8銆佸彂閫佺‘璁ゅ瓧宸插畬鎴�");
+//            Damage damage = new Damage();
+//            damage.setGlassId(glassInfo.getGlassId());
+//            damage.setWorkingProcedure("鍒囧壊");
+//            damage.setLine(1001);
+//            damage.setType(1);
+//            damage.setRemark("杩囧崸寮忕悊鐗�");
+//            damageService.insertDamage(damage);
+//            damageService.deleteByGlassId(glassId);
+//            return Boolean.TRUE;
+//        }
+//        return Boolean.FALSE;
+//    }
+//
+//    /**
+//     * 娣诲姞鐞嗙墖绗间换鍔�
+//     *
+//     * @param glassId
+//     * @param startcell
+//     * @param endcell
+//     * @param taskType
+//     * @return
+//     */
+//    private boolean saveTaskCache(String glassId, int startcell, int endcell, int taskType) {
+//        TaskCache taskCache = new TaskCache();
+//        taskCache.setGlassId(glassId);
+//        taskCache.setTaskStatus(0);
+//        taskCache.setStartCell(startcell);
+//        taskCache.setEndCell(endcell);
+//        taskCache.setTaskType(taskType);
+//        taskCache.setCreateTime(new Date());
+//        return taskCacheService.save(taskCache);
+//    }
+//
+//    /**
+//     * 娣诲姞纾ㄨ竟闃熷垪淇℃伅
+//     *
+//     * @param glassInfo
+//     * @param endcell
+//     * @return
+//     */
+//    private boolean saveGlassSize(EdgStorageCageDetails glassInfo, int endcell) {
+//        EdgGlassTaskInfo edgGlassTaskInfo = new EdgGlassTaskInfo();
+//        BeanUtils.copyProperties(glassInfo, edgGlassTaskInfo);
+//        edgGlassTaskInfo.setHeight((int) (glassInfo.getHeight() * ratio));
+//        edgGlassTaskInfo.setWidth((int) (glassInfo.getWidth() * ratio));
+//        edgGlassTaskInfo.setThickness((int) (glassInfo.getThickness() * ratio));
+//        edgGlassTaskInfo.setState(Const.EDG_GLASS_BEFORE);
+//        edgGlassTaskInfo.setLine(endcell);
+//        edgGlassTaskInfo.setCreateTime(new Date());
+//        edgGlassTaskInfo.setUpdateTime(new Date());
+//        //鍏堝皢鍘嗗彶瀵瑰垪琛ㄤ腑鏈幓鐠冪殑鏁版嵁鍒犻櫎锛岄噸鏂版柊澧炰竴浠芥渶鏂扮殑鏁版嵁
+//        edgGlassTaskInfoService.remove(new LambdaQueryWrapper<EdgGlassTaskInfo>().eq(EdgGlassTaskInfo::getGlassId, glassInfo.getGlassId()));
+//        return edgGlassTaskInfoService.save(edgGlassTaskInfo);
+//    }
+//
+//    /**
+//     * 璁$畻鍑虹墖绾胯矾
+//     * 宸叉帓闄ら兘涓�2  閮戒负0 鐨勬儏鍐�
+//     *
+//     * @param out08Glassstate
+//     * @param out10Glassstate
+//     * @return
+//     */
+//    private int computerLineByState(int out08Glassstate, int out10Glassstate) {
+//        if (out08Glassstate == 0) {
+//            if (out10Glassstate == 2) {
+//                return Const.A09_OUT_TARGET_POSITION;
+//            } else {
+//                return Const.A10_OUT_TARGET_POSITION;
+//            }
+//        } else if (out08Glassstate == 1) {
+//            return Const.A09_OUT_TARGET_POSITION;
+//        } else {
+//            return Const.A10_OUT_TARGET_POSITION;
+//        }
+//    }
+//
+//}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassNewTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassNewTask.java
new file mode 100644
index 0000000..0f83952
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassNewTask.java
@@ -0,0 +1,755 @@
+package com.mes.job;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.kangaroohy.milo.model.ReadWriteEntity;
+import com.kangaroohy.milo.service.MiloService;
+import com.mes.common.config.Const;
+import com.mes.common.config.ConstSysConfig;
+import com.mes.damage.service.DamageService;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
+import com.mes.edgstoragecage.entity.EdgStorageCage;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
+import com.mes.edgstoragecage.service.EdgStorageCageService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.opctask.entity.EdgStorageDeviceTask;
+import com.mes.opctask.entity.EdgStorageDeviceTaskHistory;
+import com.mes.opctask.service.EdgStorageDeviceTaskHistoryService;
+import com.mes.opctask.service.EdgStorageDeviceTaskService;
+import com.mes.sysconfig.service.SysConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/10/10 8:05
+ * @Description:
+ */
+@Component
+@Slf4j
+public class OpcCacheGlassNewTask {
+
+    private static final String EDG_STORAGE_DEVICE_ONE_TASK = "edg_storage_device_one_task";
+
+    private static final String EDG_STORAGE_DEVICE_TWO_TASK = "edg_storage_device_two_task";
+
+    @Autowired(required = false)
+    MiloService miloService;
+
+    @Resource
+    EdgStorageDeviceTaskService edgStorageDeviceTaskService;
+    @Autowired
+    EdgGlassTaskInfoService edgGlassTaskInfoService;
+    @Resource
+    GlassInfoService glassInfoService;
+    @Resource
+    EdgStorageCageDetailsService edgStorageCageDetailsService;
+    @Resource
+    EdgStorageCageService edgStorageCageService;
+    @Resource
+    EdgStorageDeviceTaskHistoryService edgStorageDeviceTaskHistoryService;
+    @Resource
+    DamageService damageService;
+    @Resource
+    SysConfigService sysConfigService;
+
+    //    @Value("${mes.threshold}")
+    private int threshold;
+    //    @Value("${mes.cellLength}")
+    private int cellLength;
+    //    @Value("${mes.ratio}")
+    private int ratio;
+
+    //    @Value("${mes.min.one.firstLength}")
+    private int minOneFirstLength;
+    //
+//    @Value("${mes.min.one.secondLength}")
+    private int minOneSecondLength;
+    //
+//    @Value("${mes.min.two.firstLength}")
+    private int minTwoFirstLength;
+    //
+//    @Value("${mes.min.two.secondLength}")
+    private int minTwoSecondLength;
+    //
+//    @Value("${mes.max.firstLength}")
+    private int maxTwoFirstLength;
+    //
+//    @Value("${mes.max.secondLength}")
+    private int maxTwoSecondLength;
+    //
+//    @Value("${mes.maxThickness}")
+    private int maxThickness;
+
+    private String glassInIdOne = "";
+    private String glassInIdTwo = "";
+    private String glassIdOne = "";
+    private String glassIdTwo = "";
+
+    @Scheduled(fixedDelay = 1000)
+    public void startOneOpcTask() throws Exception {
+        //鑾峰彇绗簩鏉$嚎璺殑鍗у紡鐞嗙墖绗肩姸鎬�
+        ReadWriteEntity twoInkageEntity = miloService.readFromOpcUa("WL2.WL2.deviceState");
+        //榛樿鍙窇涓�鍙板崸寮忕悊鐗�,涓ゆ潯绾胯矾閮藉彲浠ヨ蛋
+        int cellFlag = 1;
+        //濡傛灉涓ゆ潯绾块兘鍚姩鍒欏彧鑳借窇涓�鏉$嚎
+        if (twoInkageEntity != null && !Boolean.parseBoolean(twoInkageEntity.getValue() + "")) {
+            cellFlag = 2;
+        }
+        startOneOpcTaskChild(EDG_STORAGE_DEVICE_ONE_TASK, 1, cellFlag);
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void startTwoOpcTask() throws Exception {
+        ReadWriteEntity oneInkageEntity = miloService.readFromOpcUa("WL1.WL1.deviceState");
+        int cellFlag = 1;
+        if (oneInkageEntity != null && !Boolean.parseBoolean(oneInkageEntity.getValue() + "")) {
+            cellFlag = 2;
+        }
+        startOneOpcTaskChild(EDG_STORAGE_DEVICE_TWO_TASK, 2, cellFlag);
+    }
+
+    private void startOneOpcTaskChild(String tableName, int device, int cellFlag) throws Exception {
+        threshold = sysConfigService.queryConfigValue(ConstSysConfig.CACHE_THRESHOLD);
+        cellLength = sysConfigService.queryConfigValue(ConstSysConfig.CACHE_CELL_LENGTH);
+        ratio = sysConfigService.queryConfigValue(ConstSysConfig.CACHE_RATIO);
+        minOneFirstLength = sysConfigService.queryConfigValue(ConstSysConfig.CACHE_MIN_ONE_FIRST_LENGTH);
+        minOneSecondLength = sysConfigService.queryConfigValue(ConstSysConfig.CACHE_MIN_ONE_SECOND_LENGTH);
+        minTwoFirstLength = sysConfigService.queryConfigValue(ConstSysConfig.CACHE_MIN_TWO_FIRST_LENGTH);
+        minTwoSecondLength = sysConfigService.queryConfigValue(ConstSysConfig.CACHE_MIN_TWO_SECOND_LENGTH);
+        maxTwoFirstLength = sysConfigService.queryConfigValue(ConstSysConfig.CACHE_MAX_FIRST_LENGTH);
+        maxTwoSecondLength = sysConfigService.queryConfigValue(ConstSysConfig.CACHE_MAX_SECOND_LENGTH);
+        maxThickness = sysConfigService.queryConfigValue(ConstSysConfig.CACHE_MAX_THICKNESS);
+
+        EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(tableName);
+        if (task == null) {
+            log.info("浠诲姟琛ㄥ熀纭�鏁版嵁褰曞叆澶辫触锛岃妫�鏌ユ暟鎹槸鍚﹀綍鍏ユ垚鍔�");
+            return;
+        }
+        if (task.getTaskState() == 2) {
+            //闃叉鍑虹墖浠诲姟涓旂鍓嶆湁鐜荤拑鐨勬儏鍐碉紝灏嗚繘鐗噄d缃┖锛屽嵆鍑虹墖浠呰�冭檻绗煎唴鐨勭幓鐠�
+            task.setGlassIdIn("");
+        }
+        int request = task.getTaskState();
+        int taskRunning = task.getTaskRunning();
+        log.info("寮�濮嬫墽琛屼换鍔★紝浠诲姟璇蜂俊鎭负{}", task);
+        if (request == 0) {
+            log.info("璁惧锛歿}鐘舵�侊細{}", device, request);
+            log.info("鏈敹鍒颁换鍔¤姹傦紝缁撴潫鏈浠诲姟");
+        } else if (request == 1 && taskRunning == 0) {
+            //杩涚墖浠诲姟
+            log.info("璁惧锛歿}鐘舵�侊細{}", device, request);
+            log.info("杩涚墖浠诲姟锛氳繘鐗囩幓鐠僫d涓猴細{}", task.getGlassIdIn());
+            intoTask(task, tableName, device);
+        } else if (request == 2 && taskRunning == 0) {
+            //鍑虹墖浠诲姟
+            outTask(task, tableName, device, cellFlag);
+        } else if (request == 3 && taskRunning == 0) {
+            //鐩撮�氫换鍔�
+            log.info("璁惧锛歿}鐘舵�侊細{}", device, request);
+            if (!outTask(task, tableName, device, cellFlag)) {
+                intoTask(task, tableName, device);
+            }
+        } else if (request == 4) {
+            log.info("璁惧锛歿}鐘舵�侊細{}", device, request);
+            log.info("灏嗗惎鍔ㄥ瓙鏀逛负4");
+            task.setTaskRunning(Const.GLASS_CACHE_TYPE_RUNNING);
+            edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
+        } else if (request == 5) {
+            log.info("璁惧锛歿}鐘舵�侊細{}", device, request);
+            finishTask(task, tableName, device);
+        } else {
+            log.info("鐜荤拑寮傚父澶勭悊");
+            damageTask(task, tableName, device);
+        }
+//    } catch(Exception e)
+//
+//    {
+//        log.info("鎵ц浠诲姟杩囩▼涓彂鐢熷紓甯革紝浠诲姟瀛梴}锛寋}", task.getTaskState(), e.getMessage());
+//        log.info("灏嗗惎鍔ㄥ瓧鏀逛负0");
+//        task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY);
+//        edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
+//    }
+
+    }
+
+
+    @Scheduled(fixedDelay = 1000)
+    public void edgOneOpcTask() throws Exception {
+        EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(EDG_STORAGE_DEVICE_ONE_TASK);
+        String glassId = task.getGlassId();
+        if (StringUtils.isBlank(glassId) || glassId.equals(glassIdOne)) {
+            log.info("{}鍙风嚎纾ㄨ竟鍓嶇幓鐠冩湭灏变綅锛岀粨鏉熸湰娆′换鍔�", 1);
+            return;
+        }
+        edgTaskChild(glassId, 1);
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void edgTwoOpcTask() throws Exception {
+        EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(EDG_STORAGE_DEVICE_TWO_TASK);
+        String glassId = task.getGlassId();
+        if (StringUtils.isBlank(glassId) || glassId.equals(glassIdTwo)) {
+            log.info("{}鍙风嚎纾ㄨ竟鍓嶇幓鐠冩湭灏变綅锛岀粨鏉熸湰娆′换鍔�", 2);
+            return;
+        }
+        edgTaskChild(glassId, 2);
+    }
+
+    private void edgTaskChild(String glassId, int cell) throws Exception {
+        ratio = sysConfigService.queryConfigValue(ConstSysConfig.CACHE_RATIO);
+        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId).last("limit 1"));
+        if (glassInfo == null) {
+            log.info("瀵瑰垪琛ㄤ腑鐨勭幓鐠僫d閿欒锛岃妫�鏌ユ暟鎹紝鐜荤拑id锛歿}", glassId);
+            return;
+        }
+        String toEndingId = glassInfo.getTemperingLayoutId() + "" + glassInfo.getTemperingFeedSequence();
+        List<ReadWriteEntity> list = new ArrayList<>();
+//        list.add(generateReadWriteEntity("MB" + cell + ".MB" + cell + ".mesControl", true));
+        list.add(generateReadWriteEntity("MB" + cell + ".MB" + cell + ".glassId", Integer.parseInt(toEndingId)));
+        list.add(generateReadWriteEntity("MB" + cell + ".MB" + cell + ".toEdingId", Integer.parseInt(toEndingId)));
+        list.add(generateReadWriteEntity("MB" + cell + ".MB" + cell + ".width", (int) Math.max(glassInfo.getWidth() * ratio, glassInfo.getHeight() * ratio)));
+        list.add(generateReadWriteEntity("MB" + cell + ".MB" + cell + ".height", (int) Math.min(glassInfo.getWidth() * ratio, glassInfo.getHeight() * ratio)));
+
+        miloService.writeToOpcUa(list);
+        miloService.writeToOpcWord(generateReadWriteEntity("MB" + cell + ".MB" + cell + ".thickness", (int) glassInfo.getThickness() * ratio));
+        //淇敼纾ㄨ竟瀵瑰垪涓殑纾ㄨ竟绾胯矾鍙婄姸鎬�
+        edgGlassTaskInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskInfo>()
+                .set(EdgGlassTaskInfo::getLine, cell)
+                .set(EdgGlassTaskInfo::getState, Const.EDG_GLASS_START)
+                .set(EdgGlassTaskInfo::getUpdateTime, new Date())
+                .eq(EdgGlassTaskInfo::getGlassId, glassId)
+                .eq(EdgGlassTaskInfo::getState, Const.EDG_GLASS_BEFORE));
+        if (cell == 1) {
+            glassIdOne = glassId;
+        } else {
+            glassIdTwo = glassId;
+        }
+    }
+
+    private boolean intoTask(EdgStorageDeviceTask task, String tableName, int deviceId) {
+        Date startDate = new Date();
+        log.info("寮�濮嬫墽琛岃繘鐗囦换鍔★紝浠诲姟淇℃伅涓猴細{},琛ㄥ悕涓猴細{},璁惧id:{},寮�濮嬫椂闂达細{}", task, tableName, deviceId, startDate);
+        //鑾峰彇鐜荤拑鐨勫熀鏈俊鎭�
+        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, task.getGlassIdIn()));
+        if (null == glassInfo) {
+            log.info("杩涚墖鐜荤拑淇℃伅涓嶅瓨鍦紝鐜荤拑id:{}", task.getGlassIdIn());
+            Date endDate = new Date();
+            log.info("缁撴潫杩涚墖浠诲姟璁惧涓簕}锛岀粨鏉熸椂闂翠负锛歿}锛屽叡鑰楁椂锛歿}ms", deviceId, endDate, endDate.getTime() - startDate.getTime());
+            return Boolean.FALSE;
+        }
+        if (glassInIdOne.equals(task.getGlassIdIn()) || glassInIdTwo.equals(task.getGlassIdIn())) {
+            log.info("鐜荤拑id涓庝笂娆$浉鍚岋紝绂佹杩涚墖");
+            Date endDate = new Date();
+            log.info("缁撴潫杩涚墖浠诲姟璁惧涓簕}锛岀粨鏉熸椂闂翠负锛歿}锛屽叡鑰楁椂锛歿}ms", deviceId, endDate, endDate.getTime() - startDate.getTime());
+            return Boolean.FALSE;
+        }
+        int firstLength = minTwoFirstLength;
+        int secondLength = minTwoSecondLength;
+        if (deviceId == 1) {
+            firstLength = minOneFirstLength;
+            secondLength = minOneSecondLength;
+        }
+        if (Math.max(glassInfo.getWidth(), glassInfo.getHeight()) < firstLength || Math.min(glassInfo.getWidth(), glassInfo.getHeight()) < secondLength) {
+            log.info("杩涚墖鐜荤拑灏哄灏忎簬{}*{}锛岀姝㈣繘绗肩幓鐠僫d:{}锛屽昂瀵镐负{}銆亄}", firstLength, secondLength, task.getGlassIdIn(), glassInfo.getWidth(), glassInfo.getHeight());
+            Date endDate = new Date();
+            log.info("缁撴潫杩涚墖浠诲姟璁惧涓簕}锛岀粨鏉熸椂闂翠负锛歿}锛屽叡鑰楁椂锛歿}ms", deviceId, endDate, endDate.getTime() - startDate.getTime());
+            return Boolean.FALSE;
+        }
+        EdgStorageCage edgStorageCage = edgStorageCageService.selectNearestEmpty(task.getCurrentCell(), deviceId, Boolean.FALSE);
+        Assert.isTrue(null != edgStorageCage, "鏍煎瓙宸叉弧");
+        log.info("4銆佸皢鐜荤拑淇℃伅鎻掑叆鍗у紡鐞嗙墖绗�,褰撳墠鐜荤拑淇℃伅:{}", glassInfo);
+        EdgStorageCageDetails details = new EdgStorageCageDetails();
+        BeanUtils.copyProperties(glassInfo, details);
+        details.setState(Const.GLASS_STATE_IN);
+        details.setSlot(edgStorageCage.getSlot());
+        details.setDeviceId(edgStorageCage.getDeviceId());
+        edgStorageCageDetailsService.save(details);
+
+        //鏇存柊浠诲姟淇℃伅
+        task.setStartCell(edgStorageCage.getSlot());
+        task.setTaskRunning(Const.GLASS_CACHE_TYPE_IN);
+        edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
+        saveHistoryTask(task, deviceId);
+        //璁板綍杩涚墖浠诲姟鐨勭幓鐠僫d鐢ㄤ簬涓嬫浠诲姟鐨勬瘮杈冿紝闃叉鍚屼竴鍧楃幓鐠冮噸澶嶆墽琛�
+        if (deviceId == 1) {
+            glassInIdOne = task.getGlassIdIn();
+        } else {
+            glassInIdTwo = task.getGlassIdIn();
+        }
+        Date endDate = new Date();
+        log.info("缁撴潫杩涚墖浠诲姟璁惧涓簕}锛岀粨鏉熸椂闂翠负锛歿}锛屽叡鑰楁椂锛歿}ms", deviceId, endDate, endDate.getTime() - startDate.getTime());
+        return Boolean.TRUE;
+    }
+
+    private boolean outTask(EdgStorageDeviceTask task, String tableName, int deviceId, int cellFlag) throws Exception {
+        Date startDate = new Date();
+        //鑾峰彇瀵瑰簲鐨勮澶囩姸鎬佷俊鎭�
+        ReadWriteEntity oneOutStateEntity = miloService.readFromOpcUa("WL1.WL1.slotState");
+        ReadWriteEntity twoOutStateEntity = miloService.readFromOpcUa("WL2.WL2.slotState");
+        //鐘舵�佹湁3涓儏鍐碉細0绌洪棽 1蹇欑 2绂佺敤
+        String oneOutState = "2";
+        String twoOutState = "2";
+        if (null != oneOutStateEntity && null != oneOutStateEntity.getValue()) {
+            oneOutState = oneOutStateEntity.getValue().toString();
+        }
+        if (null != twoOutStateEntity && null != twoOutStateEntity.getValue()) {
+            twoOutState = twoOutStateEntity.getValue().toString();
+        }
+
+        if ((cellFlag == 2 && Const.OUT_BUSY.equals(oneOutState) && Const.OUT_BUSY.equals(twoOutState)) || (Const.OUT_DISABLE.equals(oneOutState) && Const.OUT_DISABLE.equals(twoOutState))) {
+            log.info("A09銆丄10涓簕},{}闈炶嚜鍔ㄧ姸鎬侊紝鏃犳硶鍑虹墖", oneOutState, oneOutState);
+            return Boolean.FALSE;
+        }
+        log.info("寮�濮嬫墽琛屽嚭鐗�/鐩撮�氫换鍔★紝浠诲姟淇℃伅涓猴細{},琛ㄥ悕涓猴細{},璁惧id:{},寮�濮嬫椂闂达細{},涓�鍙风嚎鐘舵�侊細{}锛屼簩鍙风嚎鐘舵�侊細{}",
+                task, tableName, deviceId, startDate, oneOutState, twoOutState);
+        //鑾峰彇褰撳墠闇�瑕佽蛋閭f潯绾�
+        int cell = 0;
+        if (cellFlag == 1) {
+            cell = deviceId;
+        } else {
+            if (Const.OUT_FREE.equals(twoOutState)) {
+                cell = Const.TWO_OUT_TARGET_POSITION;
+            } else if (Const.OUT_FREE.equals(oneOutState)) {
+                cell = Const.ONE_OUT_TARGET_POSITION;
+            } else {
+                return Boolean.FALSE;
+            }
+        }
+        if (Const.OUT_FREE.equals(oneOutState) && Const.OUT_FREE.equals(twoOutState)) {
+            if (cellFlag == 2) {
+                if (!outChildTask(task, tableName, deviceId, cell, startDate)) {
+                    cell = cell == Const.ONE_OUT_TARGET_POSITION ? Const.TWO_OUT_TARGET_POSITION : Const.ONE_OUT_TARGET_POSITION;
+                    return outChildTask(task, tableName, deviceId, cell, startDate);
+                }
+            } else {
+                return outChildTask(task, tableName, deviceId, cell, startDate);
+            }
+        } else {
+            return outChildTask(task, tableName, deviceId, cell, startDate);
+        }
+        return Boolean.TRUE;
+    }
+
+    private boolean outChildTask(EdgStorageDeviceTask task, String tableName, int deviceId, int cell, Date startDate) {
+        EdgStorageCageDetails edgStorageCageDetails = null;
+
+        //绗煎唴鏄増鍥剧浉宸槸鍚﹁秴杩囬槇鍊�
+        boolean flag = queryMaxMinDiffByDevice(threshold, deviceId);
+        if (flag) {
+            //鍏堟壘鏈�灏忕増鍥剧増搴忕殑鐜荤拑灏忕墖
+            EdgStorageCageDetails minEdgDetails = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                    .inSql(EdgStorageCageDetails::getSlot, "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON)
+                    .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                    .eq(EdgStorageCageDetails::getDeviceId, deviceId)
+                    .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId)
+                    .orderByAsc(EdgStorageCageDetails::getTemperingFeedSequence)
+                    .last("limit 1"));
+            double maxLength = Math.max(minEdgDetails.getWidth(), minEdgDetails.getHeight());
+            double minLength = Math.min(minEdgDetails.getWidth(), minEdgDetails.getHeight());
+            if ((cell == 1 && maxLength >= minOneFirstLength && minLength >= minOneSecondLength) ||
+                    (cell == 2 && maxLength <= maxTwoFirstLength && minLength <= maxTwoSecondLength && minEdgDetails.getThickness() < maxThickness)) {
+                //鐜荤拑灏忕墖鍚屽昂瀵哥殑绂诲綋鍓嶆牸瀛愭渶杩戠殑鐜荤拑灏忕墖
+                edgStorageCageDetails = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                        .eq(EdgStorageCageDetails::getWidth, minEdgDetails.getWidth())
+                        .eq(EdgStorageCageDetails::getHeight, minEdgDetails.getHeight())
+                        .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                        .eq(EdgStorageCageDetails::getDeviceId, deviceId)
+                        .last("order by abs(slot - " + task.getCurrentCell() + ")  asc limit 1")
+                );
+            }
+        }
+        if (null == edgStorageCageDetails) {
+//        鑾峰彇鍘嗗彶琛ㄤ腑涓婃浠诲姟鏈�鍚庝竴鐗囧昂瀵�
+            EdgStorageDeviceTaskHistory edgeData = edgStorageDeviceTaskHistoryService.getOne(new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>()
+                    .eq(EdgStorageDeviceTaskHistory::getDeviceId, cell)
+                    .in(EdgStorageDeviceTaskHistory::getTaskType, Const.GLASS_CACHE_TYPE_OUT, Const.GLASS_CACHE_TYPE_THROUGH)
+                    .orderByDesc(EdgStorageDeviceTaskHistory::getId).last("limit 1"));
+            if (null != edgeData) {
+                GlassInfo glassOutInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, edgeData.getGlassIdOut()));
+                //绗煎唴鐨勭幓鐠冪殑灏哄鏄惁鍜屼笂涓�娆′换鍔′竴鑷�
+                edgStorageCageDetails = edgStorageCageDetailsService.queryEdgStorageDetailsBySize(deviceId, task.getCurrentCell(), glassOutInfo.getWidth(), glassOutInfo.getHeight(), cell, maxThickness);
+                if (null == edgStorageCageDetails && StringUtils.isNotBlank(task.getGlassIdIn())) {
+                    GlassInfo glassInInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
+                            .eq(GlassInfo::getGlassId, task.getGlassIdIn())
+                            .eq(GlassInfo::getWidth, glassOutInfo.getWidth())
+                            .eq(GlassInfo::getHeight, glassOutInfo.getHeight()));
+                    if (null != glassInInfo) {
+                        if (cell == 2 && glassInInfo.getThickness() < maxThickness) {
+                            edgStorageCageDetails = new EdgStorageCageDetails();
+                            BeanUtils.copyProperties(glassInInfo, edgStorageCageDetails);
+                        }
+                    }
+                }
+            }
+        }
+        //鍓嶉潰宸茬粡灏哄闂澶勭悊瀹屾瘯锛屽紑濮嬭绠楁棤鐩稿悓灏哄鐨勬柊鐜荤拑灏忕墖
+        if (null == edgStorageCageDetails) {
+            edgStorageCageDetails = edgStorageCageDetailsService.queryEdgStorageDetailsByLimitSize(deviceId, task.getCurrentCell(), 0, 0,
+                    cell, minOneFirstLength, minOneSecondLength, maxTwoFirstLength, maxTwoSecondLength, maxThickness);
+        }
+        if (edgStorageCageDetails == null && StringUtils.isNotBlank(task.getGlassIdIn())) {
+            //鍜屼笂娆′换鍔′笉瀛樺湪鐩稿悓灏哄
+            GlassInfo glassInInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, task.getGlassIdIn()));
+
+            double maxLength = Math.max(glassInInfo.getWidth(), glassInInfo.getHeight());
+            double minLength = Math.min(glassInInfo.getWidth(), glassInInfo.getHeight());
+            if ((cell == 1 && maxLength >= minOneFirstLength && minLength >= minOneSecondLength) ||
+                    (cell == 2 && maxLength <= maxTwoFirstLength && minLength <= maxTwoSecondLength
+                            && maxLength >= minTwoFirstLength && minLength >= minTwoSecondLength && glassInInfo.getThickness() < maxThickness)) {
+                //鐜荤拑灏忕墖鍚屽昂瀵哥殑绂诲綋鍓嶆牸瀛愭渶杩戠殑鐜荤拑灏忕墖
+                edgStorageCageDetails = new EdgStorageCageDetails();
+                BeanUtils.copyProperties(glassInInfo, edgStorageCageDetails);
+            } else {
+                log.info("鐩撮�氫换鍔$洰鏍囩嚎璺负{},杩涚墖鐜荤拑灏哄涓簕}*{},涓嶇鍚堝嚭鐗囨潯浠�", cell, maxLength, minLength);
+            }
+        }
+        if (edgStorageCageDetails == null) {
+            //鍜屼笂娆′换鍔′笉瀛樺湪鐩稿悓灏哄
+            log.info("绗煎唴娌℃湁鐜荤拑浜�");
+            return Boolean.FALSE;
+        }
+        int taskType = Const.GLASS_CACHE_TYPE_OUT;
+        String glassId = edgStorageCageDetails.getGlassId();
+        if (glassId.equals(task.getGlassIdIn())) {
+            if (3 != task.getTaskState()) {
+                return Boolean.FALSE;
+            }
+            log.info("5銆佺洿閫氫换鍔�,灏嗙幓鐠冧俊鎭彃鍏ュ崸寮忕悊鐗囩,褰撳墠鐜荤拑淇℃伅:{}", edgStorageCageDetails);
+            if (glassInIdOne.equals(task.getGlassIdIn()) || glassInIdTwo.equals(task.getGlassIdIn())) {
+                log.info("鐜荤拑id涓庝笂娆$浉鍚岋紝绂佹杩涚墖");
+                return Boolean.FALSE;
+            }
+            //鐜荤拑淇℃伅鏇挎崲
+            String glassIdChange = queryAndChangeGlass(glassId);
+            //澶勭悊鍦ㄥ崸鐞嗗唴鐨勭幓鐠冧俊鎭細绗煎唴鐨勬暟鎹鐞�
+            queryEdgAndChangeGlass(edgStorageCageDetails.getGlassId(), glassIdChange);
+            if (StringUtils.isNotBlank(glassIdChange)) {
+                edgStorageCageDetails = new EdgStorageCageDetails();
+                GlassInfo one = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
+                BeanUtils.copyProperties(one, edgStorageCageDetails);
+            }
+            EdgStorageCage storageCage = edgStorageCageService.getOne(new LambdaQueryWrapper<EdgStorageCage>()
+                    .eq(EdgStorageCage::getDeviceId, deviceId)
+                    .eq(EdgStorageCage::getEnableState, Const.SLOT_ON)
+                    .ge(EdgStorageCage::getRemainWidth, cellLength)
+                    .last("order by abs(slot - " + task.getCurrentCell() + ") limit 1"));
+            Assert.isTrue(null != storageCage, "鏍煎瓙宸叉弧,鏃犳硶鎵ц鐩撮�氫换鍔�");
+            log.info("3銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", storageCage);
+            edgStorageCageDetails.setSlot(storageCage.getSlot());
+            edgStorageCageDetails.setDeviceId(storageCage.getDeviceId());
+            edgStorageCageDetails.setState(Const.GLASS_STATE_OUT);
+            edgStorageCageDetailsService.save(edgStorageCageDetails);
+            taskType = Const.GLASS_CACHE_TYPE_THROUGH;
+        } else {
+            log.info("5銆侀潪鐩撮�氫换鍔�,灏嗙幓鐠冧俊鎭彃鍏ュ崸寮忕悊鐗囩,褰撳墠鐜荤拑淇℃伅:{}", edgStorageCageDetails);
+            if (!edgStorageCageDetails.getSlot().equals(task.getCurrentCell())) {
+                EdgStorageCageDetails currentGlass = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                        .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                        .eq(EdgStorageCageDetails::getDeviceId, deviceId)
+                        .eq(EdgStorageCageDetails::getSlot, task.getCurrentCell()).eq(EdgStorageCageDetails::getWidth, edgStorageCageDetails.getWidth())
+                        .eq(EdgStorageCageDetails::getHeight, edgStorageCageDetails.getHeight()).eq(EdgStorageCageDetails::getThickness, edgStorageCageDetails.getThickness())
+                        .orderByAsc(EdgStorageCageDetails::getId).last("limit 1")
+                );
+                if (null != currentGlass) {
+                    edgStorageCageDetails = currentGlass;
+                }
+            }
+            //鐜荤拑淇℃伅鏇挎崲
+            String glassIdChange = queryAndChangeGlass(edgStorageCageDetails.getGlassId());
+            //澶勭悊鍦ㄥ崸鐞嗗唴鐨勭幓鐠冧俊鎭細绗煎唴鐨勬暟鎹鐞�
+            queryEdgAndChangeGlass(edgStorageCageDetails.getGlassId(), glassIdChange);
+            LambdaUpdateWrapper<EdgStorageCageDetails> wrapper = new LambdaUpdateWrapper<>();
+            wrapper.eq(EdgStorageCageDetails::getGlassId, edgStorageCageDetails.getGlassId()).set(EdgStorageCageDetails::getState, Const.GLASS_STATE_OUT);
+            edgStorageCageDetailsService.update(wrapper);
+            log.info("5銆佹洿鏂板嚭鐗囩幓鐠冪殑鐘舵�佷负{}", Const.GLASS_STATE_OUT);
+        }
+        //鐢熸垚鍑虹墖浠诲姟
+        task.setGlassIdOut(edgStorageCageDetails.getGlassId());
+        task.setStartCell(edgStorageCageDetails.getSlot());
+        task.setTaskRunning(taskType);
+        task.setEndCell(cell);
+
+        edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
+        saveHistoryTask(task, deviceId);
+        //璁板綍鐩撮�氫换鍔$殑鐜荤拑id鐢ㄤ簬涓嬫浠诲姟鐨勬瘮杈冿紝闃叉鍚屼竴鍧楃幓鐠冮噸澶嶆墽琛�
+        if (3 == task.getTaskState()) {
+            if (deviceId == 1) {
+                glassInIdOne = edgStorageCageDetails.getGlassId();
+            } else {
+                glassInIdTwo = edgStorageCageDetails.getGlassId();
+            }
+        }
+        //鏇存柊璇︽儏琛ㄤ换鍔″嚭鐗囦腑
+        edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>()
+                .set(EdgStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+                .eq(EdgStorageCageDetails::getGlassId, edgStorageCageDetails.getGlassId()));
+        //纾ㄨ竟瀵瑰垪琛ㄦ柊澧炰竴鏉℃暟鎹�
+        saveGlassSize(edgStorageCageDetails);
+        Date endDate = new Date();
+        log.info("缁撴潫鍑虹墖/鐩撮�氫换鍔¤澶囦负{}锛岀粨鏉熸椂闂翠负锛歿}锛屽叡鑰楁椂锛歿}ms", deviceId, endDate, endDate.getTime() - startDate.getTime());
+        return Boolean.TRUE;
+    }
+
+    private boolean finishTask(EdgStorageDeviceTask task, String tableName, int device) {
+        if (task.getTaskState() <= 4) {
+            log.info("鏈夋鍦ㄦ墽琛岀殑浠诲姟鎴栬繖浠诲姟宸叉墽琛屼换鍔$姸鎬亄}锛屼换鍔″惎鍔ㄦ儏鍐祘}锛岀粨鏉�", task.getTaskState(), task.getTaskRunning());
+            return Boolean.FALSE;
+        }
+        Date startDate = new Date();
+        log.info("寮�濮嬫墽琛屽畬鎴愪换鍔″悗娓呴櫎鍔ㄤ綔锛屼换鍔′俊鎭负锛歿},琛ㄥ悕涓猴細{},寮�濮嬫椂闂达細{}", task, tableName, startDate);
+        task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY);
+        task.setGlassIdOut("");
+        task.setStartCell(0);
+        task.setEndCell(0);
+        EdgStorageDeviceTaskHistory taskHistory = edgStorageDeviceTaskHistoryService.getOne(new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>()
+                .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                .eq(EdgStorageDeviceTaskHistory::getDeviceId, device)
+                .orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 1"));
+        if (null != taskHistory) {
+            //濡傛灉浠诲姟绫诲瀷涓�1锛�3锛屽皢鍒囧壊瀹屾垚鐨勭幓鐠冭嚜鍔ㄦ姤宸�
+            if (Const.GLASS_CACHE_TYPE_IN_ALL.contains(taskHistory.getTaskType())) {
+                damageService.autoSubmitReport(taskHistory.getGlassIdIn(), taskHistory.getDeviceId(), "鍒囧壊", "杩涘崸鐞�", 1);
+            }
+
+            edgStorageDeviceTaskHistoryService.update(new LambdaUpdateWrapper<EdgStorageDeviceTaskHistory>()
+                    .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                    .eq(EdgStorageDeviceTaskHistory::getDeviceId, device)
+                    .set(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_SUCCESS)
+            );
+        }
+        //鏈�鍚庢洿鏂颁换鍔★紝淇濊瘉浠诲姟鍓嶇殑鍔ㄤ綔閮藉仛瀹�
+        edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
+        Date endDate = new Date();
+        log.info("缁撴潫瀹屾垚浠诲姟鍚庢竻闄ゅ姩浣滐紝琛ㄥ悕涓猴細{},缁撴潫鏃堕棿涓猴細{}锛屽叡鑰楁椂锛歿}ms", tableName, endDate, endDate.getTime() - startDate.getTime());
+        return Boolean.TRUE;
+    }
+
+    private boolean damageTask(EdgStorageDeviceTask task, String tableName, int device) {
+        if (task.getTaskState() <= 5) {
+            log.info("浠诲姟鏈彂鐢熷紓甯告竻绌猴紝浠诲姟缁撴潫锛岀數姘旂姸鎬亄},mes鐘舵�亄}", task.getTaskState(), task.getTaskRunning());
+            return Boolean.FALSE;
+        }
+        Date startDate = new Date();
+        log.info("寮�濮嬫墽琛屽紓甯稿鐞嗕换鍔″悗娓呴櫎鍔ㄤ綔锛屼换鍔′俊鎭负锛歿},琛ㄥ悕涓猴細{},寮�濮嬫椂闂达細{}", task, tableName, startDate);
+        EdgStorageDeviceTaskHistory taskHistory = edgStorageDeviceTaskHistoryService.getOne(new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>()
+                .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                .eq(EdgStorageDeviceTaskHistory::getDeviceId, device)
+                .orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 1"));
+        if (null != taskHistory) {
+            Integer cell = taskHistory.getStartCell();
+            Integer taskType = taskHistory.getTaskType();
+            if (Const.GLASS_CACHE_TYPE_IN_ALL.contains(taskType)) {
+                String glassId = taskHistory.getGlassIdIn();
+                edgStorageCageDetailsService.remove(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                        .eq(EdgStorageCageDetails::getDeviceId, device)
+                        .eq(EdgStorageCageDetails::getSlot, cell)
+                        .eq(EdgStorageCageDetails::getGlassId, glassId));
+            } else {
+                String glassId = taskHistory.getGlassIdOut();
+                edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>()
+                        .set(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                        .eq(EdgStorageCageDetails::getDeviceId, device)
+                        .eq(EdgStorageCageDetails::getSlot, cell)
+                        .eq(EdgStorageCageDetails::getGlassId, glassId));
+            }
+
+            edgStorageDeviceTaskHistoryService.update(new LambdaUpdateWrapper<EdgStorageDeviceTaskHistory>()
+                    .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                    .eq(EdgStorageDeviceTaskHistory::getDeviceId, device)
+                    .set(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_FAILURE)
+            );
+        }
+        //鏈�鍚庢洿鏂颁换鍔★紝淇濊瘉浠诲姟鍓嶇殑鍔ㄤ綔閮藉仛瀹�
+        task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY);
+        task.setGlassIdOut("");
+        task.setStartCell(0);
+        task.setEndCell(0);
+        edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
+        Date endDate = new Date();
+        log.info("瀹屾垚鎵ц寮傚父澶勭悊浠诲姟鍚庢竻闄ゅ姩浣滐紝琛ㄥ悕涓猴細{},缁撴潫鏃堕棿涓猴細{}锛屽叡鑰楁椂锛歿}ms", tableName, endDate, endDate.getTime() - startDate.getTime());
+        return Boolean.TRUE;
+
+    }
+
+    /**
+     * 鏌ヨ鐜荤拑骞惰繘琛屼氦鎹�
+     *
+     * @param glassId
+     * @return
+     */
+    public String queryAndChangeGlass(String glassId) {
+        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
+//                .inSql(GlassInfo::getEngineerId, "select engineer_id from engineering where state = 1"));
+        Assert.isFalse(null == glassInfo, "鐜荤拑淇℃伅涓嶅瓨鍦�");        //鎸夌収鐜荤拑灏哄
+        LambdaQueryWrapper<GlassInfo> queryWrapper = new LambdaQueryWrapper<GlassInfo>()
+                .eq(GlassInfo::getWidth, glassInfo.getWidth())
+                .eq(GlassInfo::getHeight, glassInfo.getHeight())
+                .eq(GlassInfo::getThickness, glassInfo.getThickness())
+                .eq(GlassInfo::getFilmsid, glassInfo.getFilmsid())
+                .eq(GlassInfo::getFlowCardId, glassInfo.getFlowCardId())
+                .eq(GlassInfo::getTotalLayer, glassInfo.getTotalLayer())
+                .eq(GlassInfo::getLayer, glassInfo.getLayer())
+                .eq(GlassInfo::getEngineerId, glassInfo.getEngineerId())
+                .notInSql(GlassInfo::getGlassId, "select distinct glass_id from edg_storage_cage_details " +
+                        "where engineer_id = '" + glassInfo.getEngineerId() + "' and width = " + glassInfo.getWidth() + " and height = " + glassInfo.getHeight()
+                        + " and state != 100")
+                .orderByAsc(GlassInfo::getTemperingLayoutId)
+                .orderByAsc(GlassInfo::getTemperingFeedSequence)
+                .last("Limit 1");
+        GlassInfo swapGlassInfo = glassInfoService.getOne(queryWrapper);
+        if (swapGlassInfo != null && !glassInfo.getGlassId().equals(swapGlassInfo.getGlassId())) {
+            //寰呮浛鎹㈢殑鐜荤拑淇℃伅
+            Integer ishorizontal = glassInfo.getIshorizontal();
+            Integer temperingLayoutId = glassInfo.getTemperingLayoutId();
+            Integer temperingFeedSequence = glassInfo.getTemperingFeedSequence();
+            Integer xCoordinate = glassInfo.getXCoordinate();
+            Integer yCoordinate = glassInfo.getYCoordinate();
+            double angle = glassInfo.getAngle();
+            Integer ruleId = glassInfo.getRuleId();
+            //鏇挎崲鍚庣殑鐜荤拑淇℃伅
+            Integer swapIshorizontal = swapGlassInfo.getIshorizontal();
+            Integer swapTemperingLayoutId = swapGlassInfo.getTemperingLayoutId();
+            Integer swapTemperingFeedSequence = swapGlassInfo.getTemperingFeedSequence();
+            Integer swapXCoordinate = swapGlassInfo.getXCoordinate();
+            Integer swapYCoordinate = swapGlassInfo.getYCoordinate();
+            double swapAngle = swapGlassInfo.getAngle();
+            Integer swapRuleId = swapGlassInfo.getRuleId();
+            //鏇挎崲鐜荤拑淇℃伅
+            glassInfo.setIshorizontal(swapIshorizontal);
+            glassInfo.setTemperingLayoutId(swapTemperingLayoutId);
+            glassInfo.setTemperingFeedSequence(swapTemperingFeedSequence);
+            glassInfo.setXCoordinate(swapXCoordinate);
+            glassInfo.setYCoordinate(swapYCoordinate);
+            glassInfo.setAngle(swapAngle);
+            glassInfo.setRuleId(swapRuleId);
+
+            swapGlassInfo.setIshorizontal(ishorizontal);
+            swapGlassInfo.setTemperingLayoutId(temperingLayoutId);
+            swapGlassInfo.setTemperingFeedSequence(temperingFeedSequence);
+            swapGlassInfo.setXCoordinate(xCoordinate);
+            swapGlassInfo.setYCoordinate(yCoordinate);
+            swapGlassInfo.setAngle(angle);
+            swapGlassInfo.setRuleId(ruleId);
+
+            log.info("灏嗙幓鐠儃}鍜岀幓鐠儃}锛屼俊鎭簰鎹�(鍘熺墖搴忓彿鍙婂潗鏍囬櫎澶�),杩涚幓鐠� {}", glassInfo, swapGlassInfo, swapGlassInfo);
+            glassInfoService.updateById(swapGlassInfo);
+            glassInfoService.updateById(glassInfo);
+            return swapGlassInfo.getGlassId();
+        }
+        return "";
+    }
+
+
+    /**
+     * 鏌ヨ鍗у紡鐞嗙墖鐜荤拑骞惰繘琛屼氦鎹�
+     *
+     * @param glassId
+     * @return
+     */
+    public void queryEdgAndChangeGlass(String glassId, String swapGlassId) {
+        if (StringUtils.isBlank(swapGlassId)) {
+            log.info("褰撳墠鍑虹鐜荤拑涓嶅瓨鍦ㄩ渶瑕佹浛鎹㈢殑鐜荤拑");
+            return;
+        }
+        //鑾峰彇寰呭嚭绗肩殑鐜荤拑
+        EdgStorageCageDetails glassInfo = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                .eq(EdgStorageCageDetails::getGlassId, glassId).eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN));
+//        鑾峰彇寰呭嚭绗肩殑鐜荤拑闇�瑕佹浛鎹㈢殑鐜荤拑淇℃伅
+        EdgStorageCageDetails swapGlassDetailInfo = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                .eq(EdgStorageCageDetails::getGlassId, swapGlassId).eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN));
+
+//      鐜荤拑灏忕墖琛ㄤ腑鐜荤拑宸茬粡鏇挎崲锛屾洿鏂板崸鐞嗙鍐呯幇鏈夌殑鍑嗗鍑虹鐨勭幓鐠冧俊鎭紝
+        if (null == swapGlassDetailInfo) {
+            GlassInfo glassInfoBase = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
+                    .eq(GlassInfo::getGlassId, glassId));
+            //闇�瑕佹浛鎹㈢殑鐜荤拑涓哄瓨杩涘崸鐞嗭紝浠呴渶鏇存柊褰撳墠闇�瑕佸嚭绗肩殑鐜荤拑淇℃伅鍗冲彲
+            edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>()
+                    .eq(EdgStorageCageDetails::getGlassId, glassId)
+                    .set(EdgStorageCageDetails::getTemperingLayoutId, glassInfoBase.getTemperingLayoutId())
+                    .set(EdgStorageCageDetails::getTemperingFeedSequence, glassInfoBase.getTemperingFeedSequence()));
+        } else {
+            //闇�瑕佹浛鎹㈢殑鐜荤拑閮藉湪鍗х悊鍐咃紝鎸夌収鐜荤拑id瀵硅皟鐜荤拑淇℃伅锛氬璋冪幓鐠僫d鍗冲彲
+            edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>()
+                    .eq(EdgStorageCageDetails::getId, glassInfo.getId())
+                    .set(EdgStorageCageDetails::getTemperingLayoutId, swapGlassDetailInfo.getTemperingLayoutId())
+                    .set(EdgStorageCageDetails::getTemperingFeedSequence, swapGlassDetailInfo.getTemperingFeedSequence())
+            );
+            edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>()
+                    .eq(EdgStorageCageDetails::getId, swapGlassDetailInfo.getId())
+                    .set(EdgStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
+                    .set(EdgStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence())
+            );
+        }
+    }
+
+    /**
+     * 鑾峰彇璇︽儏琛ㄥ唴鏈�澶ф渶灏忕増鍥緄d鐨勫樊鍊硷紝鍒ゆ柇鏄惁鍑烘渶灏忕増鍥剧幓鐠�
+     *
+     * @return
+     */
+    public boolean queryMaxMinDiffByDevice(int threshold, int deviceId) {
+        //鑾峰彇绗煎瓙鍐呮渶澶х増鍥緄d鍜屾渶灏忕増鍥緄d鎻掑�硷紝鍒ゆ柇鏄惁澶т簬闃堝�硷紝澶т簬闃堝�肩洿鎺ュ嚭鏈�灏忕増鍥剧幓鐠�
+        QueryWrapper<EdgStorageCageDetails> queryWrapper = new QueryWrapper<>();
+        queryWrapper.select("max(tempering_layout_id)-min(tempering_layout_id) as diff")
+                .eq("state", Const.GLASS_STATE_IN)
+                .eq("device_id", deviceId)
+                .inSql("slot", "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON);
+        List<Object> list = edgStorageCageDetailsService.listObjs(queryWrapper);
+        //鑾峰彇绗煎唴鐜荤拑鐗堝浘宸�兼槸鍚﹀ぇ浜庨槇鍊�
+        if (CollectionUtil.isNotEmpty(list)) {
+            Long diff = (Long) list.get(0);
+            return diff > threshold;
+        } else {
+            return Boolean.FALSE;
+        }
+    }
+
+    public boolean saveHistoryTask(EdgStorageDeviceTask task, int deviceId) {
+        EdgStorageDeviceTaskHistory taskHistory = new EdgStorageDeviceTaskHistory();
+        BeanUtils.copyProperties(task, taskHistory);
+        taskHistory.setTaskType(task.getTaskRunning());
+        taskHistory.setCreateTime(new Date());
+        taskHistory.setTaskState(Const.RAW_GLASS_TASK_NEW);
+        taskHistory.setDeviceId(deviceId);
+        edgStorageDeviceTaskHistoryService.save(taskHistory);
+        return Boolean.TRUE;
+    }
+
+    private boolean saveGlassSize(EdgStorageCageDetails glassInfo) {
+        EdgGlassTaskInfo edgGlassTaskInfo = new EdgGlassTaskInfo();
+        BeanUtils.copyProperties(glassInfo, edgGlassTaskInfo);
+        edgGlassTaskInfo.setHeight((int) (glassInfo.getHeight() * ratio));
+        edgGlassTaskInfo.setWidth((int) (glassInfo.getWidth() * ratio));
+        edgGlassTaskInfo.setThickness((int) (glassInfo.getThickness() * ratio));
+        edgGlassTaskInfo.setState(Const.EDG_GLASS_BEFORE);
+        edgGlassTaskInfo.setCreateTime(new Date());
+        edgGlassTaskInfo.setUpdateTime(new Date());
+        //鍏堝皢鍘嗗彶瀵瑰垪琛ㄤ腑鏈幓鐠冪殑鏁版嵁鍒犻櫎锛岄噸鏂版柊澧炰竴浠芥渶鏂扮殑鏁版嵁
+        edgGlassTaskInfoService.remove(new LambdaQueryWrapper<EdgGlassTaskInfo>().eq(EdgGlassTaskInfo::getGlassId, glassInfo.getGlassId()));
+        return edgGlassTaskInfoService.save(edgGlassTaskInfo);
+    }
+
+    private ReadWriteEntity generateReadWriteEntity(String identifier, Object value) {
+        return ReadWriteEntity.builder()
+                .identifier(identifier)
+                //Kep涓槸Long绫诲瀷锛屽嵆锛欼nt32锛孞ava涓殑int绫诲瀷
+                .value(value)
+                .build();
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
new file mode 100644
index 0000000..8cba008
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
@@ -0,0 +1,722 @@
+package com.mes.job;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.kangaroohy.milo.model.ReadWriteEntity;
+import com.kangaroohy.milo.service.MiloService;
+import com.mes.common.config.Const;
+import com.mes.damage.service.DamageService;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
+import com.mes.edgstoragecage.entity.EdgStorageCage;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
+import com.mes.edgstoragecage.service.EdgStorageCageService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.opctask.entity.EdgStorageDeviceTask;
+import com.mes.opctask.entity.EdgStorageDeviceTaskHistory;
+import com.mes.opctask.service.EdgStorageDeviceTaskHistoryService;
+import com.mes.opctask.service.EdgStorageDeviceTaskService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/10/10 8:05
+ * @Description:
+ */
+@Component
+@Slf4j
+public class OpcCacheGlassTask {
+
+    private static final String EDG_STORAGE_DEVICE_ONE_TASK = "edg_storage_device_one_task";
+
+    private static final String EDG_STORAGE_DEVICE_TWO_TASK = "edg_storage_device_two_task";
+
+    @Autowired(required = false)
+    MiloService miloService;
+
+    @Resource
+    EdgStorageDeviceTaskService edgStorageDeviceTaskService;
+    @Autowired
+    EdgGlassTaskInfoService edgGlassTaskInfoService;
+    @Resource
+    GlassInfoService glassInfoService;
+    @Resource
+    EdgStorageCageDetailsService edgStorageCageDetailsService;
+    @Resource
+    EdgStorageCageService edgStorageCageService;
+    @Resource
+    EdgStorageDeviceTaskHistoryService edgStorageDeviceTaskHistoryService;
+    @Resource
+    DamageService damageService;
+
+//    @Value("${mes.glassGap}")
+    private int glassGap;
+    //    @Value("${mes.threshold}")
+    private int threshold;
+    //    @Value("${mes.cellLength}")
+    private int cellLength;
+    //    @Value("${mes.ratio}")
+    private int ratio;
+
+    //    @Value("${mes.min.one.firstLength}")
+    private int minOneFirstLength;
+
+    //    @Value("${mes.min.one.secondLength}")
+    private int minOneSecondLength;
+
+    //    @Value("${mes.min.two.firstLength}")
+    private int minTwoFirstLength;
+
+    //    @Value("${mes.min.two.secondLength}")
+    private int minTwoSecondLength;
+
+    private String glassInIdOne = "";
+    private String glassInIdTwo = "";
+    private String glassIdOne = "";
+    private String glassIdTwo = "";
+
+//    @Scheduled(fixedDelay = 1000)
+    public void startOneOpcTask() {
+        startOneOpcTaskChild(EDG_STORAGE_DEVICE_ONE_TASK, 1);
+    }
+
+    //    @Scheduled(fixedDelay = 1000)
+    public void startTwoOpcTask() {
+        startOneOpcTaskChild(EDG_STORAGE_DEVICE_TWO_TASK, 2);
+    }
+
+    private void startOneOpcTaskChild(String tableName, int device) {
+        EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(tableName);
+//        try {
+        if (task == null) {
+            log.info("浠诲姟琛ㄥ熀纭�鏁版嵁褰曞叆澶辫触锛岃妫�鏌ユ暟鎹槸鍚﹀綍鍏ユ垚鍔�");
+            return;
+        }
+        if (task.getTaskState() == 2) {
+            //闃叉鍑虹墖浠诲姟涓旂鍓嶆湁鐜荤拑鐨勬儏鍐碉紝灏嗚繘鐗噄d缃┖锛屽嵆鍑虹墖浠呰�冭檻绗煎唴鐨勭幓鐠�
+            task.setGlassIdIn("");
+        }
+        int request = task.getTaskState();
+        int taskRunning = task.getTaskRunning();
+        log.info("寮�濮嬫墽琛屼换鍔★紝浠诲姟璇蜂俊鎭负{}", task);
+        if (request == 0) {
+            log.info("璁惧锛歿}鐘舵�侊細{}", device, request);
+            log.info("鏈敹鍒颁换鍔¤姹傦紝缁撴潫鏈浠诲姟");
+        } else if (request == 1 && taskRunning == 0) {
+            //杩涚墖浠诲姟
+            log.info("璁惧锛歿}鐘舵�侊細{}", device, request);
+            log.info("杩涚墖浠诲姟锛氳繘鐗囩幓鐠僫d涓猴細{}", task.getGlassIdIn());
+            intoTask(task, tableName, device);
+        } else if (request == 2 && taskRunning == 0) {
+            //鍑虹墖浠诲姟
+            outTask(task, tableName, device);
+        } else if (request == 3 && taskRunning == 0) {
+            //鐩撮�氫换鍔�
+            log.info("璁惧锛歿}鐘舵�侊細{}", device, request);
+            if (!outTask(task, tableName, device)) {
+                intoTask(task, tableName, device);
+            }
+        } else if (request == 4) {
+            log.info("璁惧锛歿}鐘舵�侊細{}", device, request);
+            log.info("灏嗗惎鍔ㄥ瓙鏀逛负4");
+            task.setTaskRunning(Const.GLASS_CACHE_TYPE_RUNNING);
+            edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
+        } else if (request == 5) {
+            log.info("璁惧锛歿}鐘舵�侊細{}", device, request);
+            finishTask(task, tableName);
+        } else {
+            log.info("鐜荤拑寮傚父澶勭悊");
+            damageTask(task, tableName);
+        }
+//        } catch (Exception e) {
+//            log.info("鎵ц浠诲姟杩囩▼涓彂鐢熷紓甯革紝浠诲姟瀛梴}锛寋}", task.getTaskState(), e.getMessage());
+//            log.info("灏嗗惎鍔ㄥ瓧鏀逛负0");
+//            task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY);
+//            edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
+//        }
+    }
+
+
+    //    @Scheduled(fixedDelay = 1000)
+    public void edgOneOpcTask() throws Exception {
+        EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(EDG_STORAGE_DEVICE_ONE_TASK);
+        String glassId = task.getGlassId();
+        if (StringUtils.isBlank(glassId) || glassId.equals(glassIdOne)) {
+            log.info("{}鍙风嚎纾ㄨ竟鍓嶇幓鐠冩湭灏变綅锛岀粨鏉熸湰娆′换鍔�", 1);
+            return;
+        }
+        edgTaskChild(glassId, 1);
+    }
+
+    //    @Scheduled(fixedDelay = 1000)
+    public void edgTwoOpcTask() throws Exception {
+        EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(EDG_STORAGE_DEVICE_TWO_TASK);
+        String glassId = task.getGlassId();
+        if (StringUtils.isBlank(glassId) || glassId.equals(glassIdTwo)) {
+            log.info("{}鍙风嚎纾ㄨ竟鍓嶇幓鐠冩湭灏变綅锛岀粨鏉熸湰娆′换鍔�", 2);
+            return;
+        }
+        edgTaskChild(glassId, 2);
+    }
+
+    private void edgTaskChild(String glassId, int cell) throws Exception {
+        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId).last("limit 1"));
+        if (glassInfo == null) {
+            log.info("瀵瑰垪琛ㄤ腑鐨勭幓鐠僫d閿欒锛岃妫�鏌ユ暟鎹紝鐜荤拑id锛歿}", glassId);
+            return;
+        }
+        String toEndingId = glassInfo.getTemperingLayoutId() + "" + glassInfo.getTemperingFeedSequence();
+        List<ReadWriteEntity> list = new ArrayList<>();
+//        list.add(generateReadWriteEntity("MB" + cell + ".MB" + cell + ".mesControl", true));
+        list.add(generateReadWriteEntity("MB" + cell + ".MB" + cell + ".glassId", Integer.parseInt(toEndingId)));
+        list.add(generateReadWriteEntity("MB" + cell + ".MB" + cell + ".toEdingId", Integer.parseInt(toEndingId)));
+        list.add(generateReadWriteEntity("MB" + cell + ".MB" + cell + ".width", (int) Math.max(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10)));
+        list.add(generateReadWriteEntity("MB" + cell + ".MB" + cell + ".height", (int) Math.min(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10)));
+
+        miloService.writeToOpcUa(list);
+        miloService.writeToOpcWord(generateReadWriteEntity("MB" + cell + ".MB" + cell + ".thickness", (int) glassInfo.getThickness() * 10));
+        //淇敼纾ㄨ竟瀵瑰垪涓殑纾ㄨ竟绾胯矾鍙婄姸鎬�
+        edgGlassTaskInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskInfo>()
+                .set(EdgGlassTaskInfo::getLine, cell)
+                .set(EdgGlassTaskInfo::getState, Const.EDG_GLASS_START)
+                .set(EdgGlassTaskInfo::getUpdateTime, new Date())
+                .eq(EdgGlassTaskInfo::getGlassId, glassId)
+                .eq(EdgGlassTaskInfo::getState, Const.EDG_GLASS_BEFORE));
+        if (cell == 1) {
+            glassIdOne = glassId;
+        } else {
+            glassIdTwo = glassId;
+        }
+
+    }
+
+    private boolean intoTask(EdgStorageDeviceTask task, String tableName, int deviceId) {
+        Date startDate = new Date();
+        log.info("寮�濮嬫墽琛岃繘鐗囦换鍔★紝浠诲姟淇℃伅涓猴細{},琛ㄥ悕涓猴細{},璁惧id:{},寮�濮嬫椂闂达細{}", task, tableName, deviceId, startDate);
+        //鑾峰彇鐜荤拑鐨勫熀鏈俊鎭�
+        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, task.getGlassIdIn()));
+        if (null == glassInfo) {
+            log.info("杩涚墖鐜荤拑淇℃伅涓嶅瓨鍦紝鐜荤拑id:{}", task.getGlassIdIn());
+            Date endDate = new Date();
+            log.info("缁撴潫杩涚墖浠诲姟璁惧涓簕}锛岀粨鏉熸椂闂翠负锛歿}锛屽叡鑰楁椂锛歿}ms", deviceId, endDate, endDate.getTime() - startDate.getTime());
+            return Boolean.FALSE;
+        }
+        if (glassInIdOne.equals(task.getGlassIdIn()) || glassInIdTwo.equals(task.getGlassIdIn())) {
+            log.info("鐜荤拑id涓庝笂娆$浉鍚岋紝绂佹杩涚墖");
+            Date endDate = new Date();
+            log.info("缁撴潫杩涚墖浠诲姟璁惧涓簕}锛岀粨鏉熸椂闂翠负锛歿}锛屽叡鑰楁椂锛歿}ms", deviceId, endDate, endDate.getTime() - startDate.getTime());
+
+            return Boolean.FALSE;
+        }
+        int firstLength = minTwoFirstLength;
+        int secondLength = minTwoSecondLength;
+        if (deviceId == 1) {
+            firstLength = minOneFirstLength;
+            secondLength = minOneSecondLength;
+        }
+        if (Math.max(glassInfo.getWidth(), glassInfo.getHeight()) < firstLength || Math.min(glassInfo.getWidth(), glassInfo.getHeight()) < secondLength) {
+            log.info("杩涚墖鐜荤拑灏哄灏忎簬{}*{}锛岀姝㈣繘绗肩幓鐠僫d:{}锛屽昂瀵镐负{}銆亄}", firstLength, secondLength, task.getGlassIdIn(), glassInfo.getWidth(), glassInfo.getHeight());
+            Date endDate = new Date();
+            log.info("缁撴潫杩涚墖浠诲姟璁惧涓簕}锛岀粨鏉熸椂闂翠负锛歿}锛屽叡鑰楁椂锛歿}ms", deviceId, endDate, endDate.getTime() - startDate.getTime());
+            return Boolean.FALSE;
+        }
+        //鑾峰彇褰撳墠杩涚墖鐜荤拑id鍜岃繘鐗囨牸瀛�  鐩稿悓灏哄鍙互鏀句笅鐨勬牸瀛�
+        EdgStorageCage edgStorageCage = edgStorageCageService.getEdgStorageCageBySize(deviceId, glassInfo.getWidth(), glassInfo.getHeight(), task.getCurrentCell());
+        if (edgStorageCage == null) {
+            log.info("鐩稿悓灏哄鍙互鏀句笅鐨勬牸瀛愭湭鎵惧埌锛屾牸瀛恑d:{}", task.getCurrentCell());
+//            SELECT * from edg_storage_cage where device_id = 1 and remain_width > 1000 order by abs(slot - 10)
+            List<EdgStorageCage> storageCageList = edgStorageCageService.list(new LambdaQueryWrapper<EdgStorageCage>()
+                    .eq(EdgStorageCage::getDeviceId, deviceId)
+                    .eq(EdgStorageCage::getEnableState, Const.SLOT_ON)
+                    .ge(EdgStorageCage::getRemainWidth, Math.max(glassInfo.getWidth(), glassInfo.getHeight())).last("order by abs(slot - " + task.getCurrentCell() + ")"));
+            if (CollectionUtil.isEmpty(storageCageList) || storageCageList.size() == 1) {
+                log.info("娌℃湁澶氫綑鐨勭┖鏍煎瓙");
+                Date endDate = new Date();
+                log.info("缁撴潫杩涚墖浠诲姟璁惧涓簕}锛岀粨鏉熸椂闂翠负锛歿}锛屽叡鑰楁椂锛歿}ms", deviceId, endDate, endDate.getTime() - startDate.getTime());
+                return Boolean.FALSE;
+            }
+            edgStorageCage = storageCageList.get(0);
+        }
+        log.info("4銆佸皢鐜荤拑淇℃伅鎻掑叆鍗у紡鐞嗙墖绗�,褰撳墠鐜荤拑淇℃伅:{}", glassInfo);
+        EdgStorageCageDetails details = new EdgStorageCageDetails();
+        BeanUtils.copyProperties(glassInfo, details);
+        details.setState(Const.GLASS_STATE_IN);
+        details.setSlot(edgStorageCage.getSlot());
+        details.setDeviceId(edgStorageCage.getDeviceId());
+        edgStorageCageDetailsService.save(details);
+
+        //鏇存柊浠诲姟淇℃伅
+        task.setStartCell(edgStorageCage.getSlot());
+        task.setTaskRunning(Const.GLASS_CACHE_TYPE_IN);
+        edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
+        saveHistoryTask(task, deviceId);
+        //璁板綍杩涚墖浠诲姟鐨勭幓鐠僫d鐢ㄤ簬涓嬫浠诲姟鐨勬瘮杈冿紝闃叉鍚屼竴鍧楃幓鐠冮噸澶嶆墽琛�
+        if (deviceId == 1) {
+            glassInIdOne = task.getGlassIdIn();
+        } else {
+            glassInIdTwo = task.getGlassIdIn();
+        }
+        edgStorageCageService.update(new UpdateWrapper<EdgStorageCage>()
+                .setSql("remain_width = remain_width -" + (glassGap + Math.max(details.getWidth(), details.getHeight()))).eq("device_id", deviceId)
+                .eq("slot", task.getStartCell()));
+        Date endDate = new Date();
+        log.info("缁撴潫杩涚墖浠诲姟璁惧涓簕}锛岀粨鏉熸椂闂翠负锛歿}锛屽叡鑰楁椂锛歿}ms", deviceId, endDate, endDate.getTime() - startDate.getTime());
+        return Boolean.TRUE;
+    }
+
+    private boolean outTask(EdgStorageDeviceTask task, String tableName, int deviceId) {
+        Date startDate = new Date();
+        log.info("寮�濮嬫墽琛屽嚭鐗�/鐩撮�氫换鍔★紝浠诲姟淇℃伅涓猴細{},琛ㄥ悕涓猴細{},璁惧id:{},寮�濮嬫椂闂达細{}", task, tableName, deviceId, startDate);
+        EdgStorageCageDetails edgStorageCageDetails = null;
+        //绗煎唴鏄増鍥剧浉宸槸鍚﹁秴杩囬槇鍊�
+        boolean flag = queryMaxMinDiffByDevice(threshold, deviceId);
+        if (flag) {
+            EdgStorageCageDetails minEdgDetails = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                    .inSql(EdgStorageCageDetails::getSlot, "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON)
+                    .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                    .eq(EdgStorageCageDetails::getDeviceId, deviceId)
+                    .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId)
+                    .orderBy(Boolean.TRUE, Boolean.TRUE, EdgStorageCageDetails::getTemperingFeedSequence)
+                    .last("limit 1"));
+//            select * from edg_storage_cage_details where width = 551 and height = 1151 and id in (select min(id ) from edg_storage_cage_details where state = 100 group by slot )
+            edgStorageCageDetails = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                    .eq(EdgStorageCageDetails::getWidth, minEdgDetails.getWidth())
+                    .eq(EdgStorageCageDetails::getHeight, minEdgDetails.getHeight())
+                    .eq(EdgStorageCageDetails::getDeviceId, deviceId)
+                    .inSql(EdgStorageCageDetails::getId, "select min(id) from edg_storage_cage_details where state = 100 group by slot ")
+                    .last("order by abs(slot - " + task.getCurrentCell() + ")  asc limit 1")
+            );
+            //缁欑洿閫氫换鍔�
+            if (null == edgStorageCageDetails && StringUtils.isNotBlank(task.getGlassIdIn())) {
+                GlassInfo glassInInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
+                        .eq(GlassInfo::getGlassId, task.getGlassIdIn())
+                        .eq(GlassInfo::getWidth, minEdgDetails.getWidth())
+                        .eq(GlassInfo::getHeight, minEdgDetails.getHeight()));
+                if (null != glassInInfo) {
+                    edgStorageCageDetails = new EdgStorageCageDetails();
+                    BeanUtils.copyProperties(glassInInfo, edgStorageCageDetails);
+                }
+            }
+            if (null == edgStorageCageDetails) {
+                edgStorageCageDetails = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                        .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                        .eq(EdgStorageCageDetails::getDeviceId, deviceId)
+                        .eq(EdgStorageCageDetails::getSlot, minEdgDetails.getSlot())
+                        .orderByAsc(EdgStorageCageDetails::getId)
+                        .last("limit 1")
+                );
+            }
+        }
+        if (null == edgStorageCageDetails) {
+            //        鑾峰彇涓婃浠诲姟
+//        鑾峰彇鍘嗗彶琛ㄤ腑涓婃浠诲姟鏈�鍚庝竴鐗囧昂瀵�
+            EdgStorageDeviceTaskHistory edgeData = edgStorageDeviceTaskHistoryService.getOne(new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>()
+                    .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_SUCCESS)
+                    .in(EdgStorageDeviceTaskHistory::getTaskType, Const.GLASS_CACHE_TYPE_OUT, Const.GLASS_CACHE_TYPE_THROUGH)
+                    .orderByDesc(EdgStorageDeviceTaskHistory::getId).last("limit 1"));
+            if (null != edgeData) {
+                GlassInfo glassOutInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, edgeData.getGlassIdOut()));
+                //绗煎唴鐨勭幓鐠冪殑灏哄鏄惁鍜屼笂涓�娆′换鍔′竴鑷�
+                edgStorageCageDetails = edgStorageCageDetailsService.queryEdgStorageDetailsBySize(deviceId, task.getCurrentCell(), glassOutInfo.getWidth(), glassOutInfo.getHeight(), 0, 0);
+                if (null == edgStorageCageDetails && StringUtils.isNotBlank(task.getGlassIdIn())) {
+                    GlassInfo glassInInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
+                            .eq(GlassInfo::getGlassId, task.getGlassIdIn())
+                            .eq(GlassInfo::getWidth, glassOutInfo.getWidth())
+                            .eq(GlassInfo::getHeight, glassOutInfo.getHeight()));
+                    if (null != glassInInfo) {
+                        edgStorageCageDetails = new EdgStorageCageDetails();
+                        BeanUtils.copyProperties(glassInInfo, edgStorageCageDetails);
+                    }
+                }
+            }
+        }
+        if (null == edgStorageCageDetails) {
+            edgStorageCageDetails = edgStorageCageDetailsService.queryEdgStorageDetailsBySize(deviceId, task.getCurrentCell(), 0, 0, 0, 0);
+        }
+        if (edgStorageCageDetails == null && StringUtils.isNotBlank(task.getGlassIdIn())) {
+            //鍜屼笂娆′换鍔′笉瀛樺湪鐩稿悓灏哄
+            int firstLength = minTwoFirstLength;
+            int secondLength = minTwoSecondLength;
+            if (deviceId == 1) {
+                firstLength = minOneFirstLength;
+                secondLength = minOneSecondLength;
+            }
+            GlassInfo glassInInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, task.getGlassIdIn()));
+            if (Math.max(glassInInfo.getWidth(), glassInInfo.getHeight()) < firstLength || Math.min(glassInInfo.getWidth(), glassInInfo.getHeight()) < secondLength) {
+                log.info("鐩撮�氫换鍔¤繘鐗囩幓鐠冨昂瀵稿皬浜巤}*{}", firstLength, secondLength);
+                return Boolean.FALSE;
+            }
+            edgStorageCageDetails = new EdgStorageCageDetails();
+            BeanUtils.copyProperties(glassInInfo, edgStorageCageDetails);
+        }
+        if (edgStorageCageDetails == null) {
+            //鍜屼笂娆′换鍔′笉瀛樺湪鐩稿悓灏哄
+            log.info("绗煎唴娌℃湁鐜荤拑浜�");
+            return Boolean.FALSE;
+        }
+        int taskType = Const.GLASS_CACHE_TYPE_OUT;
+        String glassId = edgStorageCageDetails.getGlassId();
+        if (glassId.equals(task.getGlassIdIn())) {
+            if (3 != task.getTaskState()) {
+                return Boolean.FALSE;
+            }
+            log.info("5銆佺洿閫氫换鍔�,灏嗙幓鐠冧俊鎭彃鍏ュ崸寮忕悊鐗囩,褰撳墠鐜荤拑淇℃伅:{}", edgStorageCageDetails);
+            if (glassInIdOne.equals(task.getGlassIdIn()) || glassInIdTwo.equals(task.getGlassIdIn())) {
+                log.info("鐜荤拑id涓庝笂娆$浉鍚岋紝绂佹杩涚墖");
+                return Boolean.FALSE;
+            }
+            //鐜荤拑淇℃伅鏇挎崲
+            String glassIdChange = queryAndChangeGlass(glassId);
+            //澶勭悊鍦ㄥ崸鐞嗗唴鐨勭幓鐠冧俊鎭細绗煎唴鐨勬暟鎹鐞�
+            queryEdgAndChangeGlass(edgStorageCageDetails.getGlassId(), glassIdChange);
+            if (StringUtils.isNotBlank(glassIdChange)) {
+                edgStorageCageDetails = new EdgStorageCageDetails();
+                GlassInfo one = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
+                BeanUtils.copyProperties(one, edgStorageCageDetails);
+            }
+            EdgStorageCage storageCage = edgStorageCageService.getOne(new LambdaQueryWrapper<EdgStorageCage>()
+                    .eq(EdgStorageCage::getDeviceId, deviceId)
+                    .eq(EdgStorageCage::getEnableState, Const.SLOT_ON)
+                    .ge(EdgStorageCage::getRemainWidth, cellLength)
+                    .last("order by abs(slot - " + task.getCurrentCell() + ") limit 1"));
+            Assert.isTrue(null != storageCage, "鏍煎瓙宸叉弧,鏃犳硶鎵ц鐩撮�氫换鍔�");
+            log.info("3銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", storageCage);
+            edgStorageCageDetails.setSlot(storageCage.getSlot());
+            edgStorageCageDetails.setDeviceId(storageCage.getDeviceId());
+            edgStorageCageDetails.setState(Const.GLASS_STATE_OUT);
+            edgStorageCageDetailsService.save(edgStorageCageDetails);
+            taskType = Const.GLASS_CACHE_TYPE_THROUGH;
+        } else {
+            log.info("5銆侀潪鐩撮�氫换鍔�,灏嗙幓鐠冧俊鎭彃鍏ュ崸寮忕悊鐗囩,褰撳墠鐜荤拑淇℃伅:{}", edgStorageCageDetails);
+            if (!edgStorageCageDetails.getSlot().equals(task.getCurrentCell())) {
+                EdgStorageCageDetails currentGlass = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                        .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                        .eq(EdgStorageCageDetails::getDeviceId, deviceId)
+                        .eq(EdgStorageCageDetails::getSlot, task.getCurrentCell()).eq(EdgStorageCageDetails::getWidth, edgStorageCageDetails.getWidth())
+                        .eq(EdgStorageCageDetails::getHeight, edgStorageCageDetails.getHeight()).eq(EdgStorageCageDetails::getThickness, edgStorageCageDetails.getThickness())
+                        .orderByAsc(EdgStorageCageDetails::getId).last("limit 1")
+                );
+                if (null != currentGlass) {
+                    edgStorageCageDetails = currentGlass;
+                }
+            }
+            //鐜荤拑淇℃伅鏇挎崲
+            String glassIdChange = queryAndChangeGlass(edgStorageCageDetails.getGlassId());
+            //澶勭悊鍦ㄥ崸鐞嗗唴鐨勭幓鐠冧俊鎭細绗煎唴鐨勬暟鎹鐞�
+            queryEdgAndChangeGlass(edgStorageCageDetails.getGlassId(), glassIdChange);
+            LambdaUpdateWrapper<EdgStorageCageDetails> wrapper = new LambdaUpdateWrapper<>();
+            wrapper.eq(EdgStorageCageDetails::getGlassId, edgStorageCageDetails.getGlassId()).set(EdgStorageCageDetails::getState, Const.GLASS_STATE_OUT);
+            edgStorageCageDetailsService.update(wrapper);
+            log.info("5銆佹洿鏂板嚭鐗囩幓鐠冪殑鐘舵�佷负{}", Const.GLASS_STATE_OUT);
+        }
+        //鐢熸垚鍑虹墖浠诲姟
+        task.setGlassIdOut(edgStorageCageDetails.getGlassId());
+        task.setStartCell(edgStorageCageDetails.getSlot());
+        task.setTaskRunning(taskType);
+
+        edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
+        saveHistoryTask(task, deviceId);
+        //璁板綍鐩撮�氫换鍔$殑鐜荤拑id鐢ㄤ簬涓嬫浠诲姟鐨勬瘮杈冿紝闃叉鍚屼竴鍧楃幓鐠冮噸澶嶆墽琛�
+        if (3 == task.getTaskState()) {
+            if (deviceId == 1) {
+                glassInIdOne = edgStorageCageDetails.getGlassId();
+            } else {
+                glassInIdTwo = edgStorageCageDetails.getGlassId();
+            }
+        }
+        //鏇存柊璇︽儏琛ㄤ换鍔″嚭鐗囦腑
+        edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>()
+                .set(EdgStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+                .eq(EdgStorageCageDetails::getGlassId, edgStorageCageDetails.getGlassId()));
+        //纾ㄨ竟瀵瑰垪琛ㄦ柊澧炰竴鏉℃暟鎹�
+        saveGlassSize(edgStorageCageDetails);
+//        edgStorageCageService.update(new UpdateWrapper<EdgStorageCage>()
+//                .setSql("remain_width = remain_width +" + Math.max(edgStorageCageDetails.getWidth(), edgStorageCageDetails.getHeight()))
+//                .eq("device_id", deviceId)
+//                .eq("slot", task.getStartCell()));
+        Date endDate = new Date();
+        log.info("缁撴潫鍑虹墖/鐩撮�氫换鍔¤澶囦负{}锛岀粨鏉熸椂闂翠负锛歿}锛屽叡鑰楁椂锛歿}ms", deviceId, endDate, endDate.getTime() - startDate.getTime());
+        return Boolean.TRUE;
+    }
+
+    private boolean finishTask(EdgStorageDeviceTask task, String tableName) {
+        if (task.getTaskState() <= 4) {
+            log.info("鏈夋鍦ㄦ墽琛岀殑浠诲姟鎴栬繖浠诲姟宸叉墽琛屼换鍔$姸鎬亄}锛屼换鍔″惎鍔ㄦ儏鍐祘}锛岀粨鏉�", task.getTaskState(), task.getTaskRunning());
+            return Boolean.FALSE;
+        }
+        Date startDate = new Date();
+        log.info("寮�濮嬫墽琛屽畬鎴愪换鍔″悗娓呴櫎鍔ㄤ綔锛屼换鍔′俊鎭负锛歿},琛ㄥ悕涓猴細{},寮�濮嬫椂闂达細{}", task, tableName, startDate);
+        Integer cell = task.getStartCell();
+        task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY);
+        task.setGlassIdOut("");
+        task.setStartCell(0);
+        int device = tableName.equals("edg_storage_device_one_task") ? 1 : 2;
+        EdgStorageDeviceTaskHistory taskHistory = edgStorageDeviceTaskHistoryService.getOne(new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>()
+                .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                .eq(EdgStorageDeviceTaskHistory::getDeviceId, device)
+                .orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 1"));
+        //濡傛灉浠诲姟绫诲瀷涓�1锛�3锛屽皢鍒囧壊瀹屾垚鐨勭幓鐠冭嚜鍔ㄦ姤宸�
+        if (Const.GLASS_CACHE_TYPE_IN_ALL.contains(taskHistory.getTaskType())) {
+            damageService.autoSubmitReport(taskHistory.getGlassIdIn(), taskHistory.getDeviceId(), "鍒囧壊", "杩涘崸鐞�", 1);
+        }
+        updateCellRemainWidth(cell, device, taskHistory);
+        edgStorageDeviceTaskHistoryService.update(new LambdaUpdateWrapper<EdgStorageDeviceTaskHistory>()
+                .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                .eq(EdgStorageDeviceTaskHistory::getDeviceId, device)
+                .set(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_SUCCESS)
+        );
+        //鏈�鍚庢洿鏂颁换鍔★紝淇濊瘉浠诲姟鍓嶇殑鍔ㄤ綔閮藉仛瀹�
+        edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
+        Date endDate = new Date();
+        log.info("缁撴潫瀹屾垚浠诲姟鍚庢竻闄ゅ姩浣滐紝琛ㄥ悕涓猴細{},缁撴潫鏃堕棿涓猴細{}锛屽叡鑰楁椂锛歿}ms", tableName, endDate, endDate.getTime() - startDate.getTime());
+        return Boolean.TRUE;
+    }
+
+    private boolean damageTask(EdgStorageDeviceTask task, String tableName) {
+        if (task.getTaskState() <= 5) {
+            log.info("浠诲姟鏈彂鐢熷紓甯告竻绌猴紝浠诲姟缁撴潫锛岀數姘旂姸鎬亄},mes鐘舵�亄}", task.getTaskState(), task.getTaskRunning());
+            return Boolean.FALSE;
+        }
+        Date startDate = new Date();
+        log.info("寮�濮嬫墽琛屽紓甯稿鐞嗕换鍔″悗娓呴櫎鍔ㄤ綔锛屼换鍔′俊鎭负锛歿},琛ㄥ悕涓猴細{},寮�濮嬫椂闂达細{}", task, tableName, startDate);
+        int device = tableName.equals("edg_storage_device_one_task") ? 1 : 2;
+        EdgStorageDeviceTaskHistory taskHistory = edgStorageDeviceTaskHistoryService.getOne(new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>()
+                .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                .eq(EdgStorageDeviceTaskHistory::getDeviceId, device)
+                .orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 1"));
+        Integer cell = taskHistory.getStartCell();
+        Integer taskType = taskHistory.getTaskType();
+        if (Const.GLASS_CACHE_TYPE_IN_ALL.contains(taskType)) {
+            String glassId = taskHistory.getGlassIdIn();
+            edgStorageCageDetailsService.remove(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                    .eq(EdgStorageCageDetails::getDeviceId, device)
+                    .eq(EdgStorageCageDetails::getSlot, cell)
+                    .eq(EdgStorageCageDetails::getGlassId, glassId));
+        } else {
+            String glassId = taskHistory.getGlassIdOut();
+            edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>()
+                    .set(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                    .eq(EdgStorageCageDetails::getDeviceId, device)
+                    .eq(EdgStorageCageDetails::getSlot, cell)
+                    .eq(EdgStorageCageDetails::getGlassId, glassId));
+        }
+
+        updateCellRemainWidth(cell, device, taskHistory);
+        edgStorageDeviceTaskHistoryService.update(new LambdaUpdateWrapper<EdgStorageDeviceTaskHistory>()
+                .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                .eq(EdgStorageDeviceTaskHistory::getDeviceId, device)
+                .set(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_FAILURE)
+        );
+        //鏈�鍚庢洿鏂颁换鍔★紝淇濊瘉浠诲姟鍓嶇殑鍔ㄤ綔閮藉仛瀹�
+        task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY);
+        task.setGlassIdOut("");
+        task.setStartCell(0);
+        edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
+        Date endDate = new Date();
+        log.info("瀹屾垚鎵ц寮傚父澶勭悊浠诲姟鍚庢竻闄ゅ姩浣滐紝琛ㄥ悕涓猴細{},缁撴潫鏃堕棿涓猴細{}锛屽叡鑰楁椂锛歿}ms", tableName, endDate, endDate.getTime() - startDate.getTime());
+        return Boolean.TRUE;
+
+    }
+
+    /**
+     * 鏌ヨ鐜荤拑骞惰繘琛屼氦鎹�
+     *
+     * @param glassId
+     * @return
+     */
+    public String queryAndChangeGlass(String glassId) {
+        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
+//                .inSql(GlassInfo::getEngineerId, "select engineer_id from engineering where state = 1"));
+        Assert.isFalse(null == glassInfo, "鐜荤拑淇℃伅涓嶅瓨鍦�");        //鎸夌収鐜荤拑灏哄
+        LambdaQueryWrapper<GlassInfo> queryWrapper = new LambdaQueryWrapper<GlassInfo>()
+                .eq(GlassInfo::getWidth, glassInfo.getWidth())
+                .eq(GlassInfo::getHeight, glassInfo.getHeight())
+                .eq(GlassInfo::getThickness, glassInfo.getThickness())
+                .eq(GlassInfo::getFilmsid, glassInfo.getFilmsid())
+                .eq(GlassInfo::getFlowCardId, glassInfo.getFlowCardId())
+                .eq(GlassInfo::getTotalLayer, glassInfo.getTotalLayer())
+                .eq(GlassInfo::getLayer, glassInfo.getLayer())
+                .eq(GlassInfo::getEngineerId, glassInfo.getEngineerId())
+                .notInSql(GlassInfo::getGlassId, "select distinct glass_id from edg_storage_cage_details " +
+                        "where engineer_id = '" + glassInfo.getEngineerId() + "' and width = " + glassInfo.getWidth() + " and height = " + glassInfo.getHeight()
+                        + " and state != 100")
+                .orderByAsc(GlassInfo::getTemperingLayoutId)
+                .orderByAsc(GlassInfo::getTemperingFeedSequence)
+                .last("Limit 1");
+        GlassInfo swapGlassInfo = glassInfoService.getOne(queryWrapper);
+        if (swapGlassInfo != null && !glassInfo.getGlassId().equals(swapGlassInfo.getGlassId())) {
+            //寰呮浛鎹㈢殑鐜荤拑淇℃伅
+            Integer ishorizontal = glassInfo.getIshorizontal();
+            Integer temperingLayoutId = glassInfo.getTemperingLayoutId();
+            Integer temperingFeedSequence = glassInfo.getTemperingFeedSequence();
+            Integer xCoordinate = glassInfo.getXCoordinate();
+            Integer yCoordinate = glassInfo.getYCoordinate();
+            double angle = glassInfo.getAngle();
+            Integer ruleId = glassInfo.getRuleId();
+            //鏇挎崲鍚庣殑鐜荤拑淇℃伅
+            Integer swapIshorizontal = swapGlassInfo.getIshorizontal();
+            Integer swapTemperingLayoutId = swapGlassInfo.getTemperingLayoutId();
+            Integer swapTemperingFeedSequence = swapGlassInfo.getTemperingFeedSequence();
+            Integer swapXCoordinate = swapGlassInfo.getXCoordinate();
+            Integer swapYCoordinate = swapGlassInfo.getYCoordinate();
+            double swapAngle = swapGlassInfo.getAngle();
+            Integer swapRuleId = swapGlassInfo.getRuleId();
+            //鏇挎崲鐜荤拑淇℃伅
+            glassInfo.setIshorizontal(swapIshorizontal);
+            glassInfo.setTemperingLayoutId(swapTemperingLayoutId);
+            glassInfo.setTemperingFeedSequence(swapTemperingFeedSequence);
+            glassInfo.setXCoordinate(swapXCoordinate);
+            glassInfo.setYCoordinate(swapYCoordinate);
+            glassInfo.setAngle(swapAngle);
+            glassInfo.setRuleId(swapRuleId);
+
+            swapGlassInfo.setIshorizontal(ishorizontal);
+            swapGlassInfo.setTemperingLayoutId(temperingLayoutId);
+            swapGlassInfo.setTemperingFeedSequence(temperingFeedSequence);
+            swapGlassInfo.setXCoordinate(xCoordinate);
+            swapGlassInfo.setYCoordinate(yCoordinate);
+            swapGlassInfo.setAngle(angle);
+            swapGlassInfo.setRuleId(ruleId);
+
+            log.info("灏嗙幓鐠儃}鍜岀幓鐠儃}锛屼俊鎭簰鎹�(鍘熺墖搴忓彿鍙婂潗鏍囬櫎澶�),杩涚幓鐠� {}", glassInfo, swapGlassInfo, swapGlassInfo);
+            glassInfoService.updateById(swapGlassInfo);
+            glassInfoService.updateById(glassInfo);
+            return swapGlassInfo.getGlassId();
+        }
+        return "";
+    }
+
+
+    /**
+     * 鏌ヨ鍗у紡鐞嗙墖鐜荤拑骞惰繘琛屼氦鎹�
+     *
+     * @param glassId
+     * @return
+     */
+    public void queryEdgAndChangeGlass(String glassId, String swapGlassId) {
+        if (StringUtils.isBlank(swapGlassId)) {
+            log.info("褰撳墠鍑虹鐜荤拑涓嶅瓨鍦ㄩ渶瑕佹浛鎹㈢殑鐜荤拑");
+            return;
+        }
+        //鑾峰彇寰呭嚭绗肩殑鐜荤拑
+        EdgStorageCageDetails glassInfo = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                .eq(EdgStorageCageDetails::getGlassId, glassId).eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN));
+//        鑾峰彇寰呭嚭绗肩殑鐜荤拑闇�瑕佹浛鎹㈢殑鐜荤拑淇℃伅
+        EdgStorageCageDetails swapGlassDetailInfo = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                .eq(EdgStorageCageDetails::getGlassId, swapGlassId).eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN));
+
+//      鐜荤拑灏忕墖琛ㄤ腑鐜荤拑宸茬粡鏇挎崲锛屾洿鏂板崸鐞嗙鍐呯幇鏈夌殑鍑嗗鍑虹鐨勭幓鐠冧俊鎭紝
+        if (null == swapGlassDetailInfo) {
+            GlassInfo glassInfoBase = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
+                    .eq(GlassInfo::getGlassId, glassId));
+            //闇�瑕佹浛鎹㈢殑鐜荤拑涓哄瓨杩涘崸鐞嗭紝浠呴渶鏇存柊褰撳墠闇�瑕佸嚭绗肩殑鐜荤拑淇℃伅鍗冲彲
+            edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>()
+                    .eq(EdgStorageCageDetails::getGlassId, glassId)
+                    .set(EdgStorageCageDetails::getTemperingLayoutId, glassInfoBase.getTemperingLayoutId())
+                    .set(EdgStorageCageDetails::getTemperingFeedSequence, glassInfoBase.getTemperingFeedSequence()));
+        } else {
+            //闇�瑕佹浛鎹㈢殑鐜荤拑閮藉湪鍗х悊鍐咃紝鎸夌収鐜荤拑id瀵硅皟鐜荤拑淇℃伅锛氬璋冪幓鐠僫d鍗冲彲
+            edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>()
+                    .eq(EdgStorageCageDetails::getId, glassInfo.getId())
+                    .set(EdgStorageCageDetails::getTemperingLayoutId, swapGlassDetailInfo.getTemperingLayoutId())
+                    .set(EdgStorageCageDetails::getTemperingFeedSequence, swapGlassDetailInfo.getTemperingFeedSequence())
+            );
+            edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>()
+                    .eq(EdgStorageCageDetails::getId, swapGlassDetailInfo.getId())
+                    .set(EdgStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
+                    .set(EdgStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence())
+            );
+        }
+    }
+
+    /**
+     * 鑾峰彇璇︽儏琛ㄥ唴鏈�澶ф渶灏忕増鍥緄d鐨勫樊鍊硷紝鍒ゆ柇鏄惁鍑烘渶灏忕増鍥剧幓鐠�
+     *
+     * @return
+     */
+    public boolean queryMaxMinDiffByDevice(int threshold, int deviceId) {
+        //鑾峰彇绗煎瓙鍐呮渶澶х増鍥緄d鍜屾渶灏忕増鍥緄d鎻掑�硷紝鍒ゆ柇鏄惁澶т簬闃堝�硷紝澶т簬闃堝�肩洿鎺ュ嚭鏈�灏忕増鍥剧幓鐠�
+        QueryWrapper<EdgStorageCageDetails> queryWrapper = new QueryWrapper<>();
+        queryWrapper.select("max(tempering_layout_id)-min(tempering_layout_id) as diff")
+                .eq("state", Const.GLASS_STATE_IN)
+                .eq("device_id", deviceId)
+                .inSql("slot", "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON);
+        List<Object> list = edgStorageCageDetailsService.listObjs(queryWrapper);
+        //鑾峰彇绗煎唴鐜荤拑鐗堝浘宸�兼槸鍚﹀ぇ浜庨槇鍊�
+        if (CollectionUtil.isNotEmpty(list)) {
+            Long diff = (Long) list.get(0);
+            return diff > threshold;
+        } else {
+            return Boolean.FALSE;
+        }
+    }
+
+    public boolean saveHistoryTask(EdgStorageDeviceTask task, int deviceId) {
+        EdgStorageDeviceTaskHistory taskHistory = new EdgStorageDeviceTaskHistory();
+        BeanUtils.copyProperties(task, taskHistory);
+        taskHistory.setTaskType(task.getTaskRunning());
+        taskHistory.setCreateTime(new Date());
+        taskHistory.setTaskState(Const.RAW_GLASS_TASK_NEW);
+        taskHistory.setDeviceId(deviceId);
+        edgStorageDeviceTaskHistoryService.save(taskHistory);
+        return Boolean.TRUE;
+    }
+
+    public boolean updateCellRemainWidth(int slot, int device, EdgStorageDeviceTaskHistory taskHistory) {
+        List<EdgStorageCageDetails> list = edgStorageCageDetailsService.list(new LambdaQueryWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getSlot, slot)
+                .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN));
+        int remainWidth = cellLength;
+        if (CollectionUtil.isNotEmpty(list)) {
+            if (2 == taskHistory.getTaskType()) {
+                remainWidth = 0;
+            } else {
+                for (EdgStorageCageDetails item : list) {
+                    remainWidth = remainWidth - glassGap - (int) Math.max(item.getWidth(), item.getHeight());
+                }
+                if (remainWidth <= 0) {
+                    remainWidth = 0;
+                }
+            }
+        }
+        edgStorageCageService.update(new LambdaUpdateWrapper<EdgStorageCage>().
+                set(EdgStorageCage::getRemainWidth, remainWidth).eq(EdgStorageCage::getSlot, slot).eq(EdgStorageCage::getDeviceId, device));
+        return Boolean.TRUE;
+    }
+
+    private boolean saveGlassSize(EdgStorageCageDetails glassInfo) {
+        EdgGlassTaskInfo edgGlassTaskInfo = new EdgGlassTaskInfo();
+        BeanUtils.copyProperties(glassInfo, edgGlassTaskInfo);
+        edgGlassTaskInfo.setHeight((int) (glassInfo.getHeight() * ratio));
+        edgGlassTaskInfo.setWidth((int) (glassInfo.getWidth() * ratio));
+        edgGlassTaskInfo.setThickness((int) (glassInfo.getThickness() * ratio));
+        edgGlassTaskInfo.setState(Const.EDG_GLASS_BEFORE);
+        edgGlassTaskInfo.setCreateTime(new Date());
+        edgGlassTaskInfo.setUpdateTime(new Date());
+        //鍏堝皢鍘嗗彶瀵瑰垪琛ㄤ腑鏈幓鐠冪殑鏁版嵁鍒犻櫎锛岄噸鏂版柊澧炰竴浠芥渶鏂扮殑鏁版嵁
+        edgGlassTaskInfoService.remove(new LambdaQueryWrapper<EdgGlassTaskInfo>().eq(EdgGlassTaskInfo::getGlassId, glassInfo.getGlassId()));
+        return edgGlassTaskInfoService.save(edgGlassTaskInfo);
+    }
+
+    private ReadWriteEntity generateReadWriteEntity(String identifier, Object value) {
+        return ReadWriteEntity.builder()
+                .identifier(identifier)
+                //Kep涓槸Long绫诲瀷锛屽嵆锛欼nt32锛孞ava涓殑int绫诲瀷
+                .value(value)
+                .build();
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcEdgTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcEdgTask.java
new file mode 100644
index 0000000..cf7b7c0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcEdgTask.java
@@ -0,0 +1,77 @@
+package com.mes.job;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.kangaroohy.milo.model.ReadWriteEntity;
+import com.kangaroohy.milo.service.MiloService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/10/10 8:05
+ * @Description:
+ */
+@Component
+@Slf4j
+public class OpcEdgTask {
+
+
+    @Autowired(required = false)
+    MiloService miloService;
+
+    @Resource
+    GlassInfoService glassInfoService;
+
+
+    @Scheduled(fixedDelay = 2000)
+    public void startOneEdgTask() throws Exception {
+        startEdgTaskChild("01");
+    }
+
+    @Scheduled(fixedDelay = 2000)
+    public void startTwoEdgTask() throws Exception {
+        startEdgTaskChild("02");
+    }
+
+    private void startEdgTaskChild(String cell) throws Exception {
+        ReadWriteEntity request = miloService.readFromOpcUa("MB04.MB04.request" + cell);
+        if (null == request || "0".equals(request.getValue() + "")) {
+            log.info("鏈敹鍒扮幓鐠冭姹傦紝缁撴潫鏈浠诲姟");
+            return;
+        }
+        ReadWriteEntity glassIdEntity = miloService.readFromOpcUa("MB04.MB04.plc_glass_id_" + cell);
+
+        if (null == glassIdEntity || StringUtils.isEmpty(glassIdEntity.getValue() + "")) {
+            log.info("鏈夎姹備絾鐜荤拑id涓虹┖锛岀粨鏉熸湰娆′换鍔�");
+            return;
+        }
+        String glassId = glassIdEntity.getValue() + "";
+        log.info("鑾峰彇鍒皗}绾跨殑鐜荤拑id:{}", cell, glassId);
+        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId).last("limit 1"));
+
+        List<ReadWriteEntity> ualist = new ArrayList<>();
+        miloService.writeToOpcUa(generateReadWriteEntity("MB04.MB04.mes_glass_Id_" + cell, glassId));
+        ualist.add(generateReadWriteEntity("MB04.MB04.width" + cell, (int) Math.max(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10)));
+        ualist.add(generateReadWriteEntity("MB04.MB04.height" + cell, (int) Math.min(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10)));
+        ualist.add(generateReadWriteEntity("MB04.MB04.thickness" + cell, (int) glassInfo.getThickness() * 10));
+        miloService.writeToOpcWord(ualist);
+    }
+
+    private ReadWriteEntity generateReadWriteEntity(String identifier, Object value) {
+        return ReadWriteEntity.builder()
+                .identifier(identifier)
+                //Kep涓槸Long绫诲瀷锛屽嵆锛欼nt32锛孞ava涓殑int绫诲瀷
+                .value(value)
+                .build();
+    }
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java
new file mode 100644
index 0000000..0c1e86a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java
@@ -0,0 +1,220 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.mes.common.config.Const;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
+import com.mes.edgstoragecage.entity.vo.EdgStorageCageVO;
+import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
+import com.mes.edgstoragecage.service.EdgStorageCageService;
+import com.mes.engineering.entity.Engineering;
+import com.mes.engineering.service.EngineeringService;
+import com.mes.largenscreen.entity.DailyProductionVO;
+import com.mes.largenscreen.entity.DateRequest;
+import com.mes.largenscreen.entity.PieChartVO;
+import com.mes.largenscreen.service.LargenScreenService;
+import com.mes.opctask.entity.EdgStorageDeviceTaskHistory;
+import com.mes.opctask.service.EdgStorageDeviceTaskHistoryService;
+import com.mes.opctask.service.EdgStorageDeviceTaskService;
+import com.mes.tools.WebSocketServer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/12/4 9:41
+ * @Description:
+ */
+@Component
+@Slf4j
+public class PushMessageToIndex {
+
+    @Resource
+    EdgStorageCageDetailsService edgStorageCageDetailsService;
+    @Resource
+    EdgStorageCageService edgStorageCageService;
+    @Resource
+    EdgGlassTaskInfoService edgGlassTaskInfoService;
+    @Resource
+    EdgStorageDeviceTaskService edgStorageDeviceTaskService;
+    @Resource
+    EdgStorageDeviceTaskHistoryService edgStorageDeviceTaskHistoryService;
+    @Resource
+    EngineeringService engineeringService;
+    @Resource
+    LargenScreenService largenScreenService;
+
+
+    private static final String EDG_STORAGE_DEVICE_ONE_TASK = "edg_storage_device_one_task";
+
+    private static final String EDG_STORAGE_DEVICE_TWO_TASK = "edg_storage_device_two_task";
+
+    @Scheduled(fixedDelay = 1000)
+    public void CacheGlassOneTasks() {
+        CacheGlassTasksChild("cacheGlassOne", 1);
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void CacheGlassTwoTasks() {
+        CacheGlassTasksChild("cacheGlassTwo", 2);
+    }
+
+    private void CacheGlassTasksChild(String webSocketName, int deviceId) {
+        JSONObject jsonObject = new JSONObject();
+        //鍗у缂撳瓨绗煎唴淇℃伅
+        List<EdgStorageCageVO> edgStorageCageVOS = edgStorageCageService.selectEdgStorageCagesByDeviceId(deviceId);
+        jsonObject.append("EdgStorageCageinfos", edgStorageCageVOS);
+
+        //鑾峰彇姝e湪鏁村舰涓殑浠诲姟
+        EdgStorageDeviceTaskHistory taskHistory = edgStorageDeviceTaskHistoryService.getOne(new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>()
+                .eq(EdgStorageDeviceTaskHistory::getDeviceId, deviceId)
+                .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                .orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 1"));
+        jsonObject.append("taskMessage", taskHistory);
+
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get(webSocketName);
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                    List<String> messages = webserver.getMessages();
+                    if (!messages.isEmpty()) {
+                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                        webserver.clearMessages();
+                    }
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+        }
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void currentCutDrawingOneTask() {
+        currentCutDrawingTaskChild("currentCutDrawingOne", 1, 5);
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void currentCutDrawingTwoTask() {
+        currentCutDrawingTaskChild("currentCutDrawingTwo", 2, 6);
+    }
+
+    public void currentCutDrawingTaskChild(String webSocketName, int deviceId, int stationCell) {
+        JSONObject jsonObject = edgStorageCageDetailsService.queryCurrentCutDrawing(deviceId, stationCell);
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get(webSocketName);
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                    List<String> messages = webserver.getMessages();
+                    if (!messages.isEmpty()) {
+                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                        webserver.clearMessages();
+                    }
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+        }
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void CacheGlassTaskss() {
+        JSONObject jsonObject = new JSONObject();
+        //纾ㄨ竟淇℃伅
+        List<EdgGlassTaskInfo> edgTasks = edgGlassTaskInfoService.selectEdgInfo();
+        jsonObject.append("edgTasks", edgTasks);
+
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("edgTasks");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                    List<String> messages = webserver.getMessages();
+                    if (!messages.isEmpty()) {
+                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                        webserver.clearMessages();
+                    }
+                } else {
+                    log.info("edgTasks is closed");
+                }
+            }
+        }
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void querySameDayProductionTask() {
+        JSONObject jsonObject = new JSONObject();
+        List<DailyProductionVO> productionVO = largenScreenService.querySameDayProduction(new DateRequest());
+        jsonObject.append("productionVO", productionVO);
+
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("largenScreenProduction");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                    List<String> messages = webserver.getMessages();
+                    if (!messages.isEmpty()) {
+                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                        webserver.clearMessages();
+                    }
+                } else {
+                    log.info("largenScreenProduction is closed");
+                }
+            }
+        }
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void largenScreen() {
+        JSONObject jsonObject = new JSONObject();
+        //纾ㄨ竟淇℃伅
+        List<EdgGlassTaskInfo> edgOneTasks = edgGlassTaskInfoService.list(
+                new LambdaQueryWrapper<EdgGlassTaskInfo>()
+                        .lt(EdgGlassTaskInfo::getState, 2)
+                        .eq(EdgGlassTaskInfo::getLine, 1)
+        );
+        List<EdgGlassTaskInfo> edgTwoTasks = edgGlassTaskInfoService.list(
+                new LambdaQueryWrapper<EdgGlassTaskInfo>()
+                        .lt(EdgGlassTaskInfo::getState, 2)
+                        .eq(EdgGlassTaskInfo::getLine, 2)
+        );
+        jsonObject.append("edgOneTasks", edgOneTasks);
+        jsonObject.append("edgTwoTasks", edgTwoTasks);
+        List<Engineering> engineeringOne = engineeringService.list(
+                new LambdaQueryWrapper<Engineering>()
+                        .eq(Engineering::getStationCell, 5)
+                        .eq(Engineering::getState, 0)
+        );
+        List<Engineering> engineeringTow = engineeringService.list(
+                new LambdaQueryWrapper<Engineering>()
+                        .eq(Engineering::getStationCell, 6)
+                        .eq(Engineering::getState, 0)
+        );
+        jsonObject.append("engineeringOne", engineeringOne);
+        jsonObject.append("engineeringTwo", engineeringTow);
+        List<PieChartVO> pieChartVOS = edgStorageCageDetailsService.queryPieChart();
+        jsonObject.append("pieChartVOS", pieChartVOS);
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("largenScreen");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                    List<String> messages = webserver.getMessages();
+                    if (!messages.isEmpty()) {
+                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                        webserver.clearMessages();
+                    }
+                } else {
+                    log.info("largenScreen is closed");
+                }
+            }
+        }
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/entity/CacheGlassInfo.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/entity/CacheGlassInfo.java
new file mode 100644
index 0000000..1a5b591
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/entity/CacheGlassInfo.java
@@ -0,0 +1,46 @@
+package com.mes.job.entity;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/9/20 10:56
+ * @Description:
+ */
+@Data
+public class CacheGlassInfo {
+
+    /**
+     * 璇锋眰瀛�
+     */
+    private String requestWord;
+    /**
+     * 璇锋眰瀛�
+     */
+    private String confirmationWrod;
+
+    /**
+     * 鐜荤拑id
+     */
+    private String glassId;
+
+    /**
+     * 鏈�1鐘舵��
+     */
+    private String oneMachineState;
+
+    /**
+     * 鏈�2鐘舵��
+     */
+    private String twoMachineState;
+
+    /**
+     * 涓�鍙峰崸寮忓綋鍓嶆牸瀛�
+     */
+    private int oneCurrentSlot;
+
+    /**
+     * 浜屽彿鍗у紡褰撳墠鏍煎瓙
+     */
+    private int twoCurrentSlot;
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/opccallback/CacheGlassStartCallback.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/opccallback/CacheGlassStartCallback.java
new file mode 100644
index 0000000..194371b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/opccallback/CacheGlassStartCallback.java
@@ -0,0 +1,451 @@
+package com.mes.job.opccallback;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.kangaroohy.milo.runner.subscription.SubscriptionCallback;
+import com.mes.common.config.Const;
+import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
+import com.mes.edgstoragecage.service.EdgStorageCageService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.opctask.entity.EdgStorageDeviceTask;
+import com.mes.opctask.entity.EdgStorageDeviceTaskHistory;
+import com.mes.opctask.service.EdgStorageDeviceTaskHistoryService;
+import com.mes.opctask.service.EdgStorageDeviceTaskService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/10/10 14:13
+ * @Description:
+ */
+@Service
+@Slf4j
+public class CacheGlassStartCallback implements SubscriptionCallback {
+
+    private static final String EDG_STORAGE_DEVICE_ONE_TASK = "edg_storage_device_one_task";
+
+    private static final String EDG_STORAGE_DEVICE_TWO_TASK = "edg_storage_device_two_task";
+
+    @Resource
+    EdgStorageDeviceTaskService edgStorageDeviceTaskService;
+    @Resource
+    GlassInfoService glassInfoService;
+    @Resource
+    EdgStorageCageDetailsService edgStorageCageDetailsService;
+    @Resource
+    EdgStorageCageService edgStorageCageService;
+    @Resource
+    EdgStorageDeviceTaskHistoryService edgStorageDeviceTaskHistoryService;
+
+    @Resource
+    EdgGlassTaskInfoService edgGlassTaskInfoService;
+
+//    @Value("${mes.glassGap}")
+//    private int glassGap;
+//    @Value("${mes.threshold}")
+//    private int threshold;
+//    @Value("${mes.cellLength}")
+//    private int cellLength;
+
+    private Date startDate;
+
+    @Override
+    public void onSubscribe(String identifier, Object value) {
+
+//        log.info("褰撳墠姝e湪鎵ц鐨勪换鍔′负{}", value);
+//        String tableName = identifier.contains("edg_storage_device_one_task") ? EDG_STORAGE_DEVICE_ONE_TASK : EDG_STORAGE_DEVICE_TWO_TASK;
+//        int device = tableName.equals("edg_storage_device_one_task") ? 1 : 2;
+//        EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(tableName);
+//        try {
+//            if (task == null) {
+//                log.info("浠诲姟琛ㄥ熀纭�鏁版嵁褰曞叆澶辫触锛岃妫�鏌ユ暟鎹槸鍚﹀綍鍏ユ垚鍔�");
+//                return;
+//            }
+//            if (task.getTaskState() == 2) {
+//                //闃叉鍑虹墖浠诲姟涓旂鍓嶆湁鐜荤拑鐨勬儏鍐碉紝灏嗚繘鐗噄d缃┖锛屽嵆鍑虹墖浠呰�冭檻绗煎唴鐨勭幓鐠�
+//                task.setGlassIdIn("");
+//            }
+//            int request = Integer.parseInt("" + value);
+//            log.info("寮�濮嬫墽琛屼换鍔★紝浠诲姟璇蜂俊鎭负{}", task);
+//            if (request == 0) {
+//                log.info("鏈敹鍒颁换鍔¤姹傦紝缁撴潫鏈浠诲姟");
+//            } else if (request == 1) {
+//                //杩涚墖浠诲姟
+//                log.info("杩涚墖浠诲姟锛氳繘鐗囩幓鐠僫d涓猴細{}", task.getGlassIdIn());
+//                intoTask(task, tableName, device);
+//            } else if (request == 2) {
+//                //鍑虹墖浠诲姟
+//                outTask(task, tableName, device);
+//            } else if (request == 3) {
+//                //鐩撮�氫换鍔�
+//                if (!outTask(task, tableName, device)) {
+//                    intoTask(task, tableName, device);
+//                }
+//            } else if (request == 4) {
+//                log.info("灏嗗惎鍔ㄥ瓙鏀逛负0");
+//                task.setTaskRunning(Const.GLASS_CACHE_TYPE_RUNNING);
+//                edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
+//            } else {
+//                finishTask(task, tableName);
+//            }
+//        } catch (Exception e) {
+//            log.info("鎵ц浠诲姟杩囩▼涓彂鐢熷紓甯革紝浠诲姟瀛梴}锛寋}", task.getTaskState(), e.getMessage());
+//            log.info("灏嗗惎鍔ㄥ瓙鏀逛负0");
+//            task.setTaskState(Const.GLASS_CACHE_TYPE_EMPTY);
+//            edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
+//        }
+    }
+
+    private boolean intoTask(EdgStorageDeviceTask task, String tableName, int deviceId) {
+//        //鑾峰彇鐜荤拑鐨勫熀鏈俊鎭�
+//        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, task.getGlassIdIn()));
+//        if (null == glassInfo) {
+//            log.info("杩涚墖鐜荤拑淇℃伅涓嶅瓨鍦紝鐜荤拑id:{}", task.getGlassIdIn());
+//            return Boolean.FALSE;
+//        }
+//        //鑾峰彇褰撳墠杩涚墖鐜荤拑id鍜岃繘鐗囨牸瀛�  鐩稿悓灏哄鍙互鏀句笅鐨勬牸瀛�
+//        EdgStorageCage edgStorageCage = edgStorageCageService.getEdgStorageCageBySize(deviceId, glassInfo.getWidth(), glassInfo.getHeight(), task.getCurrentCell());
+//        if (edgStorageCage == null) {
+//            log.info("鐩稿悓灏哄鍙互鏀句笅鐨勬牸瀛愭湭鎵惧埌锛屾牸瀛恑d:{}", task.getCurrentCell());
+////            SELECT * from edg_storage_cage where device_id = 1 and remain_width > 1000 order by abs(slot - 10)
+//            List<EdgStorageCage> storageCageList = edgStorageCageService.list(new LambdaQueryWrapper<EdgStorageCage>()
+//                    .eq(EdgStorageCage::getDeviceId, deviceId)
+//                    .eq(EdgStorageCage::getEnableState, Const.SLOT_ON)
+//                    .ge(EdgStorageCage::getRemainWidth, Math.max(glassInfo.getWidth(), glassInfo.getHeight())).last("order by abs(slot - " + task.getCurrentCell() + ")"));
+////            //鐩撮�氫换鍔�
+////            if (flag && CollectionUtil.isNotEmpty(emptyList)) {
+////                return emptyList.get(0);
+////            }
+//            if (CollectionUtil.isEmpty(storageCageList) || storageCageList.size() == 1) {
+//                log.info("娌℃湁澶氫綑鐨勭┖鏍煎瓙");
+//                return Boolean.FALSE;
+//            }
+//            edgStorageCage = storageCageList.get(0);
+//        }
+//        log.info("4銆佸皢鐜荤拑淇℃伅鎻掑叆鍗у紡鐞嗙墖绗�,褰撳墠鐜荤拑淇℃伅:{}", glassInfo);
+//        EdgStorageCageDetails details = new EdgStorageCageDetails();
+//        BeanUtils.copyProperties(glassInfo, details);
+//        details.setState(Const.GLASS_STATE_IN);
+//        details.setSlot(edgStorageCage.getSlot());
+//        details.setDeviceId(edgStorageCage.getDeviceId());
+//        edgStorageCageDetailsService.save(details);
+//
+//        //鏇存柊浠诲姟淇℃伅
+//        task.setStartCell(edgStorageCage.getSlot());
+//        task.setTaskRunning(Const.GLASS_CACHE_TYPE_IN);
+//        edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
+//        saveHistoryTask(task);
+        return Boolean.TRUE;
+    }
+
+    private boolean outTask(EdgStorageDeviceTask task, String tableName, int deviceId) {
+//        EdgStorageCageDetails edgStorageCageDetails = null;
+//        //绗煎唴鏄増鍥剧浉宸槸鍚﹁秴杩囬槇鍊�
+//        boolean flag = queryMaxMinDiff(threshold);
+//        if (flag) {
+//            EdgStorageCageDetails minEdgDetails = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+//                    .inSql(EdgStorageCageDetails::getSlot, "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON)
+//                    .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+//                    .eq(EdgStorageCageDetails::getDeviceId, deviceId)
+//                    .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId)
+//                    .orderBy(Boolean.TRUE, Boolean.TRUE, EdgStorageCageDetails::getTemperingFeedSequence)
+//                    .last("limit 1"));
+////            select * from edg_storage_cage_details where width = 551 and height = 1151 and id in (select min(id ) from edg_storage_cage_details where state = 100 group by slot )
+//            edgStorageCageDetails = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+//                    .eq(EdgStorageCageDetails::getWidth, minEdgDetails.getWidth())
+//                    .eq(EdgStorageCageDetails::getHeight, minEdgDetails.getHeight())
+//                    .eq(EdgStorageCageDetails::getDeviceId, deviceId)
+//                    .inSql(EdgStorageCageDetails::getId, "select min(id) from edg_storage_cage_details where state = 100 group by slot ")
+//                    .last("order by abs(slot - " + task.getCurrentCell() + ")  asc limit 1")
+//            );
+//            //缁欑洿閫氫换鍔�
+//            if (null == edgStorageCageDetails && StringUtils.isNotBlank(task.getGlassIdIn())) {
+//                GlassInfo glassInInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
+//                        .eq(GlassInfo::getGlassId, task.getGlassIdIn())
+//                        .eq(GlassInfo::getWidth, minEdgDetails.getWidth())
+//                        .eq(GlassInfo::getHeight, minEdgDetails.getHeight()));
+//                if (null != glassInInfo) {
+//                    edgStorageCageDetails = new EdgStorageCageDetails();
+//                    BeanUtils.copyProperties(glassInInfo, edgStorageCageDetails);
+//                }
+//            }
+//            if (null == edgStorageCageDetails) {
+//                edgStorageCageDetails = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+//                        .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+//                        .eq(EdgStorageCageDetails::getDeviceId, deviceId)
+//                        .eq(EdgStorageCageDetails::getSlot, minEdgDetails.getSlot())
+//                        .orderByAsc(EdgStorageCageDetails::getId)
+//                        .last("limit 1")
+//                );
+//            }
+//        }
+//        if (null == edgStorageCageDetails) {
+//            //        鑾峰彇涓婃浠诲姟
+////        鑾峰彇鍘嗗彶琛ㄤ腑涓婃浠诲姟鏈�鍚庝竴鐗囧昂瀵�
+//            EdgStorageDeviceTaskHistory edgeData = edgStorageDeviceTaskHistoryService.getOne(new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>()
+//                    .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_SUCCESS)
+//                    .in(EdgStorageDeviceTaskHistory::getTaskType, Const.GLASS_CACHE_TYPE_OUT, Const.GLASS_CACHE_TYPE_THROUGH)
+//                    .orderByDesc(EdgStorageDeviceTaskHistory::getId).last("limit 1"));
+//            if (null != edgeData) {
+//                GlassInfo glassOutInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, edgeData.getGlassIdOut()));
+//                //绗煎唴鐨勭幓鐠冪殑灏哄鏄惁鍜屼笂涓�娆′换鍔′竴鑷�
+//                edgStorageCageDetails = edgStorageCageDetailsService.queryEdgStorageDetailsBySize(deviceId, task.getCurrentCell(), glassOutInfo.getWidth(), glassOutInfo.getHeight());
+//                if (null == edgStorageCageDetails && StringUtils.isNotBlank(task.getGlassIdIn())) {
+//                    GlassInfo glassInInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
+//                            .eq(GlassInfo::getGlassId, task.getGlassIdIn())
+//                            .eq(GlassInfo::getWidth, glassOutInfo.getWidth())
+//                            .eq(GlassInfo::getHeight, glassOutInfo.getHeight()));
+//                    if (null != glassInInfo) {
+//                        edgStorageCageDetails = new EdgStorageCageDetails();
+//                        BeanUtils.copyProperties(glassInInfo, edgStorageCageDetails);
+//                    }
+//                }
+//            }
+//        }
+//        if (null == edgStorageCageDetails) {
+//            edgStorageCageDetails = edgStorageCageDetailsService.queryEdgStorageDetailsBySize(deviceId, task.getCurrentCell(), 0, 0);
+//        }
+//        if (edgStorageCageDetails == null && StringUtils.isNotBlank(task.getGlassIdIn())) {
+//            //鍜屼笂娆′换鍔′笉瀛樺湪鐩稿悓灏哄
+//            GlassInfo glassInInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, task.getGlassIdIn()));
+//            edgStorageCageDetails = new EdgStorageCageDetails();
+//            BeanUtils.copyProperties(glassInInfo, edgStorageCageDetails);
+//        }
+//        if (edgStorageCageDetails == null) {
+//            //鍜屼笂娆′换鍔′笉瀛樺湪鐩稿悓灏哄
+//            log.info("绗煎唴娌℃湁鐜荤拑浜�");
+//            return Boolean.FALSE;
+//        }
+//        int taskType = Const.GLASS_CACHE_TYPE_OUT;
+//        String glassId = edgStorageCageDetails.getGlassId();
+//        if (glassId.equals(task.getGlassIdIn())) {
+//            if (3 != task.getTaskState()) {
+//                return Boolean.FALSE;
+//            }
+//            log.info("5銆佺洿閫氫换鍔�,灏嗙幓鐠冧俊鎭彃鍏ュ崸寮忕悊鐗囩,褰撳墠鐜荤拑淇℃伅:{}", edgStorageCageDetails);
+//            //鐜荤拑淇℃伅鏇挎崲
+//            String glassIdChange = queryAndChangeGlass(glassId);
+//            //澶勭悊鍦ㄥ崸鐞嗗唴鐨勭幓鐠冧俊鎭細绗煎唴鐨勬暟鎹鐞�
+//            queryEdgAndChangeGlass(edgStorageCageDetails.getGlassId(), glassIdChange);
+//            if (StringUtils.isNotBlank(glassIdChange)) {
+//                edgStorageCageDetails = new EdgStorageCageDetails();
+//                GlassInfo one = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
+//                BeanUtils.copyProperties(one, edgStorageCageDetails);
+//            }
+//            EdgStorageCage storageCage = edgStorageCageService.getOne(new LambdaQueryWrapper<EdgStorageCage>()
+//                    .eq(EdgStorageCage::getDeviceId, deviceId)
+//                    .eq(EdgStorageCage::getEnableState, Const.SLOT_ON)
+//                    .ge(EdgStorageCage::getRemainWidth, cellLength)
+//                    .last("order by abs(slot - " + task.getCurrentCell() + ") limit 1"));
+//            Assert.isTrue(null != storageCage, "鏍煎瓙宸叉弧,鏃犳硶鎵ц鐩撮�氫换鍔�");
+//            log.info("3銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", storageCage);
+//            edgStorageCageDetails.setSlot(storageCage.getSlot());
+//            edgStorageCageDetails.setDeviceId(storageCage.getDeviceId());
+//            edgStorageCageDetails.setState(Const.GLASS_STATE_OUT);
+//            edgStorageCageDetailsService.save(edgStorageCageDetails);
+//            taskType = Const.GLASS_CACHE_TYPE_THROUGH;
+//        } else {
+//            log.info("5銆侀潪鐩撮�氫换鍔�,灏嗙幓鐠冧俊鎭彃鍏ュ崸寮忕悊鐗囩,褰撳墠鐜荤拑淇℃伅:{}", edgStorageCageDetails);
+//            if (!edgStorageCageDetails.getSlot().equals(task.getCurrentCell())) {
+//                EdgStorageCageDetails currentGlass = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+//                        .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+//                        .eq(EdgStorageCageDetails::getDeviceId, deviceId)
+//                        .eq(EdgStorageCageDetails::getSlot, task.getCurrentCell()).eq(EdgStorageCageDetails::getWidth, edgStorageCageDetails.getWidth())
+//                        .eq(EdgStorageCageDetails::getHeight, edgStorageCageDetails.getHeight()).eq(EdgStorageCageDetails::getThickness, edgStorageCageDetails.getThickness())
+//                        .orderByAsc(EdgStorageCageDetails::getId).last("limit 1")
+//                );
+//                if (null != currentGlass) {
+//                    edgStorageCageDetails = currentGlass;
+//                }
+//            }
+//            //鐜荤拑淇℃伅鏇挎崲
+//            String glassIdChange = queryAndChangeGlass(edgStorageCageDetails.getGlassId());
+//            //澶勭悊鍦ㄥ崸鐞嗗唴鐨勭幓鐠冧俊鎭細绗煎唴鐨勬暟鎹鐞�
+//            queryEdgAndChangeGlass(edgStorageCageDetails.getGlassId(), glassIdChange);
+//            LambdaUpdateWrapper<EdgStorageCageDetails> wrapper = new LambdaUpdateWrapper<>();
+//            wrapper.eq(EdgStorageCageDetails::getGlassId, edgStorageCageDetails.getGlassId()).set(EdgStorageCageDetails::getState, Const.GLASS_STATE_OUT);
+//            edgStorageCageDetailsService.update(wrapper);
+//            log.info("5銆佹洿鏂板嚭鐗囩幓鐠冪殑鐘舵�佷负{}", Const.GLASS_STATE_OUT);
+//        }
+//        //鐢熸垚鍑虹墖浠诲姟
+//        task.setGlassIdOut(edgStorageCageDetails.getGlassId());
+//        task.setStartCell(edgStorageCageDetails.getSlot());
+//        task.setTaskRunning(taskType);
+//
+//        edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
+//        saveHistoryTask(task);
+//        //鏇存柊璇︽儏琛ㄤ换鍔″嚭鐗囦腑
+//        edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>()
+//                .set(EdgStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+//                .eq(EdgStorageCageDetails::getGlassId, edgStorageCageDetails.getGlassId()));
+//        //纾ㄨ竟瀵瑰垪琛ㄦ柊澧炰竴鏉℃暟鎹�
+//        EdgGlassTaskQueueInfo edgInfo = new EdgGlassTaskQueueInfo();
+//        BeanUtils.copyProperties(task, edgInfo);
+//        edgInfo.setCreateTime(new Date());
+//        edgInfo.setWidth((int) edgStorageCageDetails.getWidth());
+//        edgInfo.setHeight((int) edgStorageCageDetails.getWidth());
+//        edgInfo.setThickness((int) edgStorageCageDetails.getWidth());
+//        edgInfo.setState(Const.GLASS_STATE_NEW);
+//        edgGlassTaskQueueInfoService.save(edgInfo);
+        return Boolean.TRUE;
+    }
+
+    private boolean finishTask(EdgStorageDeviceTask task, String tableName) {
+//        log.info("褰撳墠浠诲姟淇℃伅涓猴細{}", task);
+//        if (task.getTaskState() <= 4) {
+//            log.info("鏈夋鍦ㄦ墽琛岀殑浠诲姟锛岀粨鏉�");
+//            return Boolean.FALSE;
+//        }
+//        Integer cell = task.getStartCell();
+//        Integer state = task.getTaskState();
+//        task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY);
+//        task.setGlassIdOut("");
+//        task.setStartCell(0);
+//        edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
+//        edgStorageDeviceTaskHistoryService.update(new LambdaUpdateWrapper<EdgStorageDeviceTaskHistory>()
+//                .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
+//                .set(EdgStorageDeviceTaskHistory::getTaskState,
+//                        Const.GLASS_CACHE_TYPE_FINISH.equals(state) ? Const.RAW_GLASS_TASK_SUCCESS : Const.RAW_GLASS_TASK_FAILURE)
+//        );
+//        int device = tableName.equals("edg_storage_device_one_task") ? 1 : 2;
+//        updateCellRemainWidth(cell, device);
+        return Boolean.TRUE;
+    }
+
+    /**
+     * 鏌ヨ鐜荤拑骞惰繘琛屼氦鎹�
+     *
+     * @param glassId
+     * @return
+     */
+    public String queryAndChangeGlass(String glassId) {
+//        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
+////                .inSql(GlassInfo::getEngineerId, "select engineer_id from engineering where state = 1"));
+//        Assert.isFalse(null == glassInfo, "鐜荤拑淇℃伅涓嶅瓨鍦�");        //鎸夌収鐜荤拑灏哄
+//        LambdaQueryWrapper<GlassInfo> queryWrapper = new LambdaQueryWrapper<GlassInfo>()
+//                .eq(GlassInfo::getWidth, glassInfo.getWidth())
+//                .eq(GlassInfo::getHeight, glassInfo.getHeight())
+//                .eq(GlassInfo::getThickness, glassInfo.getThickness())
+//                .eq(GlassInfo::getFilmsid, glassInfo.getFilmsid())
+//                .eq(GlassInfo::getFlowCardId, glassInfo.getFlowCardId())
+//                .eq(GlassInfo::getTotalLayer, glassInfo.getTotalLayer())
+//                .eq(GlassInfo::getLayer, glassInfo.getLayer())
+//                .eq(GlassInfo::getEngineerId, glassInfo.getEngineerId())
+//                .notInSql(GlassInfo::getGlassId, "select distinct glass_id from edg_storage_cage_details " +
+//                        "where engineer_id = '" + glassInfo.getEngineerId() + "' and width = " + glassInfo.getWidth() + " and height = " + glassInfo.getHeight()
+//                        + " and state != 100")
+//                .orderByAsc(GlassInfo::getTemperingLayoutId)
+//                .orderBy(Boolean.TRUE, Boolean.TRUE, GlassInfo::getTemperingFeedSequence)
+//                .last("Limit 1");
+//        GlassInfo swapGlassInfo = glassInfoService.getOne(queryWrapper);
+//        if (swapGlassInfo != null && !glassInfo.getGlassId().equals(swapGlassInfo.getGlassId())) {
+//            String swapGlassId = swapGlassInfo.getGlassId();
+//            log.info("灏嗙幓鐠儃}鍜岀幓鐠儃}锛屼俊鎭簰鎹�,杩涚幓鐠� {}", glassInfo, swapGlassInfo, swapGlassInfo);
+//            swapGlassInfo.setGlassId(glassId);
+//            glassInfo.setGlassId(swapGlassId);
+//            glassInfoService.updateById(swapGlassInfo);
+//            glassInfoService.updateById(glassInfo);
+//            return swapGlassId;
+//        }
+        return "";
+    }
+
+
+    /**
+     * 鏌ヨ鍗у紡鐞嗙墖鐜荤拑骞惰繘琛屼氦鎹�
+     *
+     * @param glassId
+     * @return
+     */
+    public void queryEdgAndChangeGlass(String glassId, String swapGlassId) {
+        if (StringUtils.isBlank(swapGlassId)) {
+            log.info("褰撳墠鍑虹鐜荤拑涓嶅瓨鍦ㄩ渶瑕佹浛鎹㈢殑鐜荤拑");
+            return;
+        }
+        //鑾峰彇寰呭嚭绗肩殑鐜荤拑
+        EdgStorageCageDetails glassInfo = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                .eq(EdgStorageCageDetails::getGlassId, glassId).eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN));
+//        鑾峰彇寰呭嚭绗肩殑鐜荤拑闇�瑕佹浛鎹㈢殑鐜荤拑淇℃伅
+        EdgStorageCageDetails swapGlassDetailInfo = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                .eq(EdgStorageCageDetails::getGlassId, swapGlassId).eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN));
+
+//      鐜荤拑灏忕墖琛ㄤ腑鐜荤拑宸茬粡鏇挎崲锛屾洿鏂板崸鐞嗙鍐呯幇鏈夌殑鍑嗗鍑虹鐨勭幓鐠冧俊鎭紝
+        if (null == swapGlassDetailInfo) {
+            GlassInfo glassInfoBase = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
+                    .eq(GlassInfo::getGlassId, glassId));
+            //闇�瑕佹浛鎹㈢殑鐜荤拑涓哄瓨杩涘崸鐞嗭紝浠呴渶鏇存柊褰撳墠闇�瑕佸嚭绗肩殑鐜荤拑淇℃伅鍗冲彲
+            edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>()
+                    .eq(EdgStorageCageDetails::getGlassId, glassId)
+                    .set(EdgStorageCageDetails::getTemperingLayoutId, glassInfoBase.getTemperingLayoutId())
+                    .set(EdgStorageCageDetails::getTemperingFeedSequence, glassInfoBase.getTemperingFeedSequence()));
+        } else {
+            //闇�瑕佹浛鎹㈢殑鐜荤拑閮藉湪鍗х悊鍐咃紝鎸夌収鐜荤拑id瀵硅皟鐜荤拑淇℃伅锛氬璋冪幓鐠僫d鍗冲彲
+            edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>()
+                    .eq(EdgStorageCageDetails::getId, glassInfo.getId())
+                    .set(EdgStorageCageDetails::getTemperingLayoutId, swapGlassDetailInfo.getTemperingLayoutId())
+                    .set(EdgStorageCageDetails::getTemperingFeedSequence, swapGlassDetailInfo.getTemperingFeedSequence())
+            );
+            edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>()
+                    .eq(EdgStorageCageDetails::getId, swapGlassDetailInfo.getId())
+                    .set(EdgStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
+                    .set(EdgStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence())
+            );
+        }
+    }
+
+    /**
+     * 鑾峰彇璇︽儏琛ㄥ唴鏈�澶ф渶灏忕増鍥緄d鐨勫樊鍊硷紝鍒ゆ柇鏄惁鍑烘渶灏忕増鍥剧幓鐠�
+     *
+     * @return
+     */
+    public boolean queryMaxMinDiff(int threshold) {
+        //鑾峰彇绗煎瓙鍐呮渶澶х増鍥緄d鍜屾渶灏忕増鍥緄d鎻掑�硷紝鍒ゆ柇鏄惁澶т簬闃堝�硷紝澶т簬闃堝�肩洿鎺ュ嚭鏈�灏忕増鍥剧幓鐠�
+        QueryWrapper<EdgStorageCageDetails> queryWrapper = new QueryWrapper<>();
+        queryWrapper.select("max(tempering_layout_id)-min(tempering_layout_id) as diff")
+                .eq("state", Const.GLASS_STATE_IN)
+                .inSql("slot", "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON);
+        List<Object> list = edgStorageCageDetailsService.listObjs(queryWrapper);
+        //鑾峰彇绗煎唴鐜荤拑鐗堝浘宸�兼槸鍚﹀ぇ浜庨槇鍊�
+        if (CollectionUtil.isNotEmpty(list)) {
+            Long diff = (Long) list.get(0);
+            return diff > threshold;
+        } else {
+            return Boolean.FALSE;
+        }
+    }
+
+    public boolean saveHistoryTask(EdgStorageDeviceTask task) {
+        EdgStorageDeviceTaskHistory taskHistory = new EdgStorageDeviceTaskHistory();
+        BeanUtils.copyProperties(task, taskHistory);
+        taskHistory.setTaskType(task.getTaskRunning());
+        taskHistory.setCreateTime(new Date());
+        taskHistory.setTaskState(Const.RAW_GLASS_TASK_NEW);
+        edgStorageDeviceTaskHistoryService.save(taskHistory);
+        return Boolean.TRUE;
+    }
+
+    private boolean updateCellRemainWidth(int slot, int device) {
+//        List<EdgStorageCageDetails> list = edgStorageCageDetailsService.list(new LambdaQueryWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getSlot, slot)
+//                .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN));
+//        int remainWidth = cellLength;
+//        if (CollectionUtil.isNotEmpty(list)) {
+//            int widthTotal = (int) list.stream().map(e -> Math.max(e.getWidth(), e.getHeight()) + glassGap).mapToDouble(Double::intValue).sum();
+//            remainWidth = cellLength - widthTotal >= 0 ? cellLength - widthTotal : 0;
+//        }
+//        edgStorageCageService.update(new LambdaUpdateWrapper<EdgStorageCage>().
+//                set(EdgStorageCage::getRemainWidth, remainWidth).eq(EdgStorageCage::getSlot, slot).eq(EdgStorageCage::getDeviceId, device));
+        return Boolean.TRUE;
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceController.java
new file mode 100644
index 0000000..3355e67
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceController.java
@@ -0,0 +1,45 @@
+package com.mes.opctask.controller;
+
+import com.mes.opctask.service.EdgStorageDeviceTaskService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/10/24 15:35
+ * @Description:
+ */
+@Api(tags = "鍗у紡鐞嗙墖绗间换鍔�")
+@RestController
+@RequestMapping("edgStorageDeviceTask")
+public class EdgStorageDeviceController {
+
+    /**
+     * 鏈嶅姟瀵硅薄
+     */
+    @Resource
+    private EdgStorageDeviceTaskService edgStorageDeviceTaskService;
+
+    @ApiOperation(value = "閲嶇疆浠诲姟/浠诲姟澶辫触澶勭悊锛氭寜鐓ц澶噄d閲嶇疆浠诲姟")
+    @PostMapping("/resetTask")
+    public Result<Boolean> resetTask(Integer deviceId) {
+        Boolean flag = edgStorageDeviceTaskService.resetTask(deviceId);
+        if (flag) {
+            return Result.build(200, "閲嶇疆鎴愬姛", flag);
+        } else {
+            return Result.build(200, "鏃犱换鍔★紝鏃犻渶閲嶇疆", flag);
+        }
+    }
+
+    @ApiOperation("浠诲姟鎴愬姛澶勭悊")
+    @PostMapping("/taskSuccess")
+    public Result<Boolean> taskSuccess(Integer deviceId) {
+        return Result.build(200, "澶勭悊鎴愬姛", edgStorageDeviceTaskService.taskSuccess(deviceId));
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceTaskHistoryController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceTaskHistoryController.java
new file mode 100644
index 0000000..3772cb1
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceTaskHistoryController.java
@@ -0,0 +1,49 @@
+package com.mes.opctask.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.mes.largenscreen.entity.DailyProductionVO;
+import com.mes.opctask.entity.EdgStorageDeviceTaskHistory;
+import com.mes.opctask.entity.request.TaskHistoryRequest;
+import com.mes.opctask.service.EdgStorageDeviceTaskHistoryService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * (EdgStorageDeviceTaskHistory)琛ㄦ帶鍒跺眰
+ *
+ * @author makejava
+ * @since 2024-10-27 21:04:29
+ */
+@Api(tags = "鍗х悊鍘嗗彶浠诲姟")
+@RestController
+@RequestMapping("edgStorageDeviceTaskHistory")
+public class EdgStorageDeviceTaskHistoryController {
+    /**
+     * 鏈嶅姟瀵硅薄
+     */
+    @Resource
+    private EdgStorageDeviceTaskHistoryService edgStorageDeviceTaskHistoryService;
+
+    @ApiOperation(value = "鏌ヨ鏈潯绾挎墽琛岃繃鐨勫巻鍙蹭换鍔℃暟鎹�", notes = "鏌ヨ鏈潯绾挎墽琛岃繃鐨勫巻鍙蹭换鍔℃暟鎹�")
+    @PostMapping
+    public Result<Page<EdgStorageDeviceTaskHistory>> queryEdgStorageDeviceTaskHistory(@RequestBody @Validated TaskHistoryRequest request) {
+        return Result.success(edgStorageDeviceTaskHistoryService.queryEdgStorageDeviceTaskHistory(request));
+    }
+
+    @ApiOperation(value = "鏌ヨ鏈潯绾垮巻鍙叉寚瀹氭棩鏈熺殑鏃ョ敓浜ф暟鎹�", notes = "鏌ヨ鏈潯绾垮巻鍙叉寚瀹氭棩鏈熺殑鏃ョ敓浜ф暟鎹�")
+    @PostMapping("/queryEdgDailyProduction")
+    public Result<DailyProductionVO> queryEdgDailyProduction(@RequestBody TaskHistoryRequest request) {
+        return Result.success(edgStorageDeviceTaskHistoryService.queryEdgDailyProduction(request));
+    }
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/entity/EdgStorageDeviceTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/entity/EdgStorageDeviceTask.java
new file mode 100644
index 0000000..f0ff158
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/entity/EdgStorageDeviceTask.java
@@ -0,0 +1,66 @@
+package com.mes.opctask.entity;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/10/24 10:22
+ * @Description:
+ */
+@Data
+public class EdgStorageDeviceTask {
+
+    /**
+     * 浠诲姟璇锋眰 0鏃犱换鍔� 1杩涚墖 2鍑虹墖 3鐩撮��
+     */
+    private Integer taskRunning;
+    /**
+     * 纾ㄨ竟鍓嶇幓鐠僫d
+     */
+    private String glassId;
+    /**
+     * 鏄惁灏变綅
+     */
+    private Integer inPlace;
+    /**
+     * 杩涚墖鐜荤拑id
+     */
+    private String glassIdIn;
+    /**
+     * 鍑虹墖鐜荤拑id
+     */
+    private String glassIdOut;
+    /**
+     * 褰撳墠灞傚彿
+     */
+    private Integer currentCell;
+    /**
+     * 灞傚彿
+     */
+    private Integer startCell;
+    /**
+     * 棰勭暀灞傚彿
+     */
+    private Integer endCell;
+    /**
+     * 浠诲姟鐘舵�� 0榛樿绌轰换鍔� 1鎵ц涓� 2缁撴潫浠诲姟
+     */
+    private Integer taskState;
+    /**
+     * 浠诲姟绫诲瀷
+     */
+    private Integer taskType;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+    /**
+     * 鏇存柊鏃堕棿
+     */
+    private Date updateTime;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/entity/EdgStorageDeviceTaskHistory.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/entity/EdgStorageDeviceTaskHistory.java
new file mode 100644
index 0000000..a35c5f7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/entity/EdgStorageDeviceTaskHistory.java
@@ -0,0 +1,88 @@
+package com.mes.opctask.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * (EdgStorageDeviceTaskHistory)琛ㄥ疄浣撶被
+ *
+ * @author makejava
+ * @since 2024-10-27 21:04:33
+ */
+@ApiModel(description = "(EdgStorageDeviceTaskHistory)琛ㄥ疄浣撶被")
+@SuppressWarnings("serial")
+@Data
+public class EdgStorageDeviceTaskHistory extends Model<EdgStorageDeviceTaskHistory> {
+    /**
+     * 宸ョ▼琛╥d
+     */
+    @ApiModelProperty(value = "宸ョ▼琛╥d", position = 1)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * 杩涚墖鐜荤拑id
+     */
+    @ApiModelProperty(value = "杩涚墖鐜荤拑id", position = 2)
+    private String glassIdIn;
+    /**
+     * 鍑虹墖鐜荤拑id
+     */
+    @ApiModelProperty(value = "鍑虹墖鐜荤拑id", position = 3)
+    private String glassIdOut;
+    /**
+     * 褰撳墠灞傚彿
+     */
+    @ApiModelProperty(value = "褰撳墠灞傚彿", position = 4)
+    private Integer currentCell;
+    /**
+     * 灞傚彿
+     */
+    @ApiModelProperty(value = "鐩爣灞傚彿", position = 5)
+    private Integer startCell;
+    /**
+     * 棰勭暀灞傚彿
+     */
+    @ApiModelProperty(value = "棰勭暀灞傚彿", position = 6)
+    private Integer endCell;
+    /**
+     * 浠诲姟鐘舵�� 0榛樿绌轰换鍔� 1 杩涚墖 2鍑虹墖 3 鐩撮�� 4鎵ц涓� 5缁撴潫浠诲姟 6鍏朵粬
+     */
+    @ApiModelProperty(value = "浠诲姟鐘舵�� 0榛樿绌轰换鍔� 1 杩涚墖 2鍑虹墖 3 鐩撮�� 4鎵ц涓� 5缁撴潫浠诲姟 6鍏朵粬", position = 7)
+    private Integer taskState;
+    /**
+     * 浠诲姟鐘舵�� 0榛樿绌轰换鍔� 1 杩涚墖 2鍑虹墖 3 鐩撮�� 4鎵ц涓� 5缁撴潫浠诲姟 6鍏朵粬
+     */
+    @ApiModelProperty(value = "浠诲姟鐘舵�� 0榛樿绌轰换鍔� 1 杩涚墖 2鍑虹墖 3 鐩撮�� 4鎵ц涓� 5缁撴潫浠诲姟 6鍏朵粬", position = 8)
+    private Integer taskType;
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿", position = 9)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+    /**
+     * 鏇存柊鏃堕棿
+     */
+    @ApiModelProperty(value = "鏇存柊鏃堕棿", position = 10)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    /**
+     * 璁惧淇℃伅
+     */
+    @ApiModelProperty(value = "璁惧淇℃伅", position = 11)
+    private Integer deviceId;
+
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/entity/request/TaskHistoryRequest.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/entity/request/TaskHistoryRequest.java
new file mode 100644
index 0000000..dda4633
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/entity/request/TaskHistoryRequest.java
@@ -0,0 +1,36 @@
+package com.mes.opctask.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.mes.base.entity.PageRequest;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/12/22 16:10
+ * @Description:
+ */
+@Data
+public class TaskHistoryRequest extends PageRequest {
+
+    @ApiModelProperty(value = "璁惧id")
+    private Integer deviceId;
+    @ApiModelProperty(value = "鐜荤拑id")
+    private String glassId;
+    @ApiModelProperty(value = "浠诲姟鐘舵�� 0榛樿绌轰换鍔� 1缁撴潫浠诲姟")
+    private Integer taskState;
+    @ApiModelProperty(value = "浠诲姟绫诲瀷锛�1杩涚墖浠诲姟 2鍑虹墖浠诲姟 3鐩撮�氫换鍔�")
+    private Integer taskType;
+    @ApiModelProperty(value = "寮�濮嬫椂闂�")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startTime;
+    @ApiModelProperty(value = "缁撴潫鏃堕棿")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/mapper/EdgStorageDeviceTaskHistoryMapper.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/mapper/EdgStorageDeviceTaskHistoryMapper.java
new file mode 100644
index 0000000..3479324
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/mapper/EdgStorageDeviceTaskHistoryMapper.java
@@ -0,0 +1,18 @@
+package com.mes.opctask.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.largenscreen.entity.DailyProductionVO;
+import com.mes.opctask.entity.EdgStorageDeviceTaskHistory;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * (EdgStorageDeviceTaskHistory)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author makejava
+ * @since 2024-10-27 21:04:29
+ */
+public interface EdgStorageDeviceTaskHistoryMapper extends BaseMapper<EdgStorageDeviceTaskHistory> {
+
+    DailyProductionVO queryEdgDailyProduction(@Param("beginDate") String beginDate, @Param("endDate") String endDate, @Param("deviceId") Integer deviceId);
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/mapper/EdgStorageDeviceTaskMapper.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/mapper/EdgStorageDeviceTaskMapper.java
new file mode 100644
index 0000000..0079ead
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/mapper/EdgStorageDeviceTaskMapper.java
@@ -0,0 +1,16 @@
+package com.mes.opctask.mapper;
+
+import com.mes.opctask.entity.EdgStorageDeviceTask;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/10/24 15:39
+ * @Description:
+ */
+public interface EdgStorageDeviceTaskMapper {
+
+    EdgStorageDeviceTask queryTaskMessage(String tableName);
+
+    boolean updateTaskMessage(@Param("tableName") String tableName, @Param("task") EdgStorageDeviceTask edgStorageDeviceTask);
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskHistoryService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskHistoryService.java
new file mode 100644
index 0000000..6d60973
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskHistoryService.java
@@ -0,0 +1,21 @@
+package com.mes.opctask.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.largenscreen.entity.DailyProductionVO;
+import com.mes.opctask.entity.EdgStorageDeviceTaskHistory;
+import com.mes.opctask.entity.request.TaskHistoryRequest;
+
+/**
+ * (EdgStorageDeviceTaskHistory)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author makejava
+ * @since 2024-10-27 21:04:33
+ */
+public interface EdgStorageDeviceTaskHistoryService extends IService<EdgStorageDeviceTaskHistory> {
+
+    Page<EdgStorageDeviceTaskHistory> queryEdgStorageDeviceTaskHistory(TaskHistoryRequest request);
+
+    DailyProductionVO queryEdgDailyProduction(TaskHistoryRequest request);
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskService.java
new file mode 100644
index 0000000..10f51c4
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskService.java
@@ -0,0 +1,26 @@
+package com.mes.opctask.service;
+
+import com.mes.opctask.entity.EdgStorageDeviceTask;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/10/24 15:35
+ * @Description:
+ */
+public interface EdgStorageDeviceTaskService {
+
+    /**
+     * 鏌ヨ浠诲姟淇℃伅
+     *
+     * @return
+     */
+    EdgStorageDeviceTask queryTaskMessage(String tableName);
+
+    boolean updateTaskMessage(String tableName, EdgStorageDeviceTask edgStorageDeviceTask);
+
+    Boolean resetTask(Integer deviceId);
+
+    Boolean taskSuccess(Integer deviceId);
+
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskHistoryServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskHistoryServiceImpl.java
new file mode 100644
index 0000000..c7cf26a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskHistoryServiceImpl.java
@@ -0,0 +1,53 @@
+package com.mes.opctask.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.largenscreen.entity.DailyProductionVO;
+import com.mes.opctask.entity.EdgStorageDeviceTaskHistory;
+import com.mes.opctask.entity.request.TaskHistoryRequest;
+import com.mes.opctask.mapper.EdgStorageDeviceTaskHistoryMapper;
+import com.mes.opctask.service.EdgStorageDeviceTaskHistoryService;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+
+/**
+ * (EdgStorageDeviceTaskHistory)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author makejava
+ * @since 2024-10-27 21:04:33
+ */
+@Service("edgStorageDeviceTaskHistoryService")
+public class EdgStorageDeviceTaskHistoryServiceImpl extends ServiceImpl<EdgStorageDeviceTaskHistoryMapper, EdgStorageDeviceTaskHistory> implements EdgStorageDeviceTaskHistoryService {
+
+    @Override
+    public Page<EdgStorageDeviceTaskHistory> queryEdgStorageDeviceTaskHistory(TaskHistoryRequest request) {
+        Page<EdgStorageDeviceTaskHistory> page = new Page<>(request.getPageNo(), request.getPageSize());
+        LambdaQueryWrapper<EdgStorageDeviceTaskHistory> wrapper = new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>()
+                .eq(EdgStorageDeviceTaskHistory::getDeviceId, request.getDeviceId())
+                .eq(StringUtils.checkValNotNull(request.getTaskState()), EdgStorageDeviceTaskHistory::getTaskState, request.getTaskState())
+                .eq(StringUtils.checkValNotNull(request.getTaskType()), EdgStorageDeviceTaskHistory::getTaskType, request.getTaskType())
+                .between(StringUtils.checkValNotNull(request.getStartTime()), EdgStorageDeviceTaskHistory::getCreateTime, request.getStartTime(),
+                        request.getEndTime()).orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime);
+        if (StringUtils.isNotBlank(request.getGlassId())) {
+            wrapper.and(e -> e.like(EdgStorageDeviceTaskHistory::getGlassIdIn, request.getGlassId())
+                    .or().like(EdgStorageDeviceTaskHistory::getGlassIdOut, request.getGlassId()));
+        }
+        return this.page(page, wrapper);
+    }
+
+    @Override
+    public DailyProductionVO queryEdgDailyProduction(TaskHistoryRequest request) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String beginDate = null;
+        String endDate = null;
+        if (StringUtils.checkValNotNull(request.getStartTime())) {
+            beginDate = sdf.format(request.getStartTime());
+            endDate = sdf.format(request.getEndTime());
+        }
+        return baseMapper.queryEdgDailyProduction(beginDate, endDate, request.getDeviceId());
+    }
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskServiceImpl.java
new file mode 100644
index 0000000..9e6a1c7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskServiceImpl.java
@@ -0,0 +1,139 @@
+package com.mes.opctask.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.mes.common.config.Const;
+import com.mes.common.config.ConstSysConfig;
+import com.mes.edgstoragecage.entity.EdgStorageCage;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.entity.vo.EdgSlotRemainVO;
+import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
+import com.mes.edgstoragecage.service.EdgStorageCageService;
+import com.mes.opctask.entity.EdgStorageDeviceTask;
+import com.mes.opctask.entity.EdgStorageDeviceTaskHistory;
+import com.mes.opctask.mapper.EdgStorageDeviceTaskMapper;
+import com.mes.opctask.service.EdgStorageDeviceTaskHistoryService;
+import com.mes.opctask.service.EdgStorageDeviceTaskService;
+import com.mes.sysconfig.service.SysConfigService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/10/24 15:36
+ * @Description:
+ */
+@Service
+public class EdgStorageDeviceTaskServiceImpl implements EdgStorageDeviceTaskService {
+
+
+    private static final String EDG_STORAGE_DEVICE_ONE_TASK = "edg_storage_device_one_task";
+
+    private static final String EDG_STORAGE_DEVICE_TWO_TASK = "edg_storage_device_two_task";
+
+    @Resource
+    private EdgStorageDeviceTaskHistoryService edgStorageDeviceTaskHistoryService;
+    @Resource
+    private EdgStorageCageDetailsService edgStorageCageDetailsService;
+    @Resource
+    private EdgStorageCageService edgStorageCageService;
+    @Resource
+    EdgStorageDeviceTaskMapper edgStorageDeviceTaskMapper;
+    @Resource
+    SysConfigService sysConfigService;
+
+//    @Value("${mes.glassGap}")
+//    private int glassGap;
+//    @Value("${mes.cellLength}")
+//    private int cellLength;
+
+    @Override
+    public EdgStorageDeviceTask queryTaskMessage(String tableName) {
+        return edgStorageDeviceTaskMapper.queryTaskMessage(tableName);
+    }
+
+    @Override
+    public boolean updateTaskMessage(String tableName, EdgStorageDeviceTask edgStorageDeviceTask) {
+        return edgStorageDeviceTaskMapper.updateTaskMessage(tableName, edgStorageDeviceTask);
+    }
+
+
+    @Override
+    public Boolean resetTask(Integer deviceId) {
+        String tableName = deviceId == 1 ? EDG_STORAGE_DEVICE_ONE_TASK : EDG_STORAGE_DEVICE_TWO_TASK;
+        EdgStorageDeviceTaskHistory taskHistory = edgStorageDeviceTaskHistoryService.getOne(new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>()
+                .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                .eq(EdgStorageDeviceTaskHistory::getDeviceId, deviceId)
+                .orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 1"));
+        if (taskHistory != null) {
+            Integer cell = taskHistory.getStartCell();
+            Integer taskType = taskHistory.getTaskType();
+            if (Const.GLASS_CACHE_TYPE_IN_ALL.contains(taskType)) {
+                String glassId = taskHistory.getGlassIdIn();
+                edgStorageCageDetailsService.remove(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                        .eq(EdgStorageCageDetails::getDeviceId, deviceId)
+                        .eq(EdgStorageCageDetails::getSlot, cell)
+                        .eq(EdgStorageCageDetails::getGlassId, glassId));
+            } else {
+                String glassId = taskHistory.getGlassIdOut();
+                edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>()
+                        .set(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                        .eq(EdgStorageCageDetails::getDeviceId, deviceId)
+                        .eq(EdgStorageCageDetails::getSlot, cell)
+                        .eq(EdgStorageCageDetails::getGlassId, glassId));
+            }
+
+            edgStorageDeviceTaskHistoryService.update(new LambdaUpdateWrapper<EdgStorageDeviceTaskHistory>()
+                    .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                    .eq(EdgStorageDeviceTaskHistory::getDeviceId, deviceId)
+                    .set(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_FAILURE)
+            );
+            //璁$畻姣忎釜鍚勮嚜鐨勫墿浣欏昂瀵镐俊鎭�
+            resetSlotRemainWidth();
+        }
+        //鏈�鍚庢洿鏂颁换鍔★紝淇濊瘉浠诲姟鍓嶇殑鍔ㄤ綔閮藉仛瀹�
+        EdgStorageDeviceTask task = new EdgStorageDeviceTask();
+        task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY);
+        task.setGlassIdOut("");
+        task.setStartCell(0);
+        task.setEndCell(0);
+        this.updateTaskMessage(tableName, task);
+        return Boolean.TRUE;
+    }
+
+    @Override
+    public Boolean taskSuccess(Integer deviceId) {
+        String tableName = deviceId == 1 ? EDG_STORAGE_DEVICE_ONE_TASK : EDG_STORAGE_DEVICE_TWO_TASK;
+        edgStorageDeviceTaskHistoryService.update(new LambdaUpdateWrapper<EdgStorageDeviceTaskHistory>()
+                .set(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_SUCCESS)
+                .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                .eq(EdgStorageDeviceTaskHistory::getDeviceId, deviceId));
+        //璁$畻姣忎釜鍚勮嚜鐨勫墿浣欏昂瀵镐俊鎭�
+        resetSlotRemainWidth();
+        //鏈�鍚庢洿鏂颁换鍔★紝淇濊瘉浠诲姟鍓嶇殑鍔ㄤ綔閮藉仛瀹�
+        EdgStorageDeviceTask task = new EdgStorageDeviceTask();
+        task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY);
+        task.setGlassIdOut("");
+        task.setStartCell(0);
+        task.setEndCell(0);
+        this.updateTaskMessage(tableName, task);
+        return Boolean.TRUE;
+    }
+
+    private boolean resetSlotRemainWidth() {
+        int cellLength = sysConfigService.queryConfigValue(ConstSysConfig.CACHE_CELL_LENGTH);
+        int glassGap = sysConfigService.queryConfigValue(ConstSysConfig.CACHE_GLASS_GAP);
+        //灏嗗昂瀵搁噸缃负鍘熷灏哄
+        edgStorageCageService.update(new LambdaUpdateWrapper<EdgStorageCage>().set(EdgStorageCage::getRemainWidth, cellLength));
+        //鑾峰彇绗煎唴鐨勮鎯呮暟鎹�
+        List<EdgSlotRemainVO> edgSlotRemainVOS = edgStorageCageDetailsService.querySlotRemainWidth(cellLength, glassGap);
+        //鎸夌収鏌ヨ缁撴灉瀵圭鍐呯幇鏈夌幓鐠冪殑鏍煎瓙灏哄杩涜鏇存柊
+        if (CollectionUtils.isNotEmpty(edgSlotRemainVOS)) {
+            edgStorageCageService.resetSlotRemainWidth(edgSlotRemainVOS);
+        }
+        return Boolean.TRUE;
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/s7/entity/S7DataWL1.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/s7/entity/S7DataWL1.java
new file mode 100644
index 0000000..f5fbbae
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/s7/entity/S7DataWL1.java
@@ -0,0 +1,52 @@
+package com.mes.s7.entity;
+
+import com.github.xingshuangs.iot.protocol.common.enums.EDataType;
+import com.github.xingshuangs.iot.protocol.s7.serializer.S7Variable;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/4/30 14:19
+ * @Description:
+ */
+@Data
+public class S7DataWL1 {
+
+
+    @S7Variable(address = "DB49.0", type = EDataType.INT16)
+    private Integer task_running;
+
+    @S7Variable(address = "DB49.46", type = EDataType.INT16)
+    private Integer slot;
+
+    @S7Variable(address = "DB49.48", type = EDataType.INT16)
+    private Integer start_cell;
+
+    @S7Variable(address = "DB49.50", type = EDataType.INT16)
+    private Integer end_cell;
+
+    @S7Variable(address = "DB49.52", type = EDataType.INT16)
+    private Integer plc_task_state;
+
+    @S7Variable(address = "DB49.116", type = EDataType.INT16)
+    private Integer in_place;
+
+    @S7Variable(address = "DB49.124", type = EDataType.INT16)
+    private Integer slotState;
+
+    @S7Variable(address = "DB49.R118", type = EDataType.FLOAT32)
+    private Integer speed;
+
+    @S7Variable(address = "DB49.2", type = EDataType.STRING, count = 22)
+    private String glass_id_in;
+
+    @S7Variable(address = "DB49.24", type = EDataType.STRING, count = 22)
+    private String glass_id_out;
+
+    @S7Variable(address = "DB49.94", type = EDataType.STRING, count = 18)
+    private String glass_id;
+
+    @S7Variable(address = "DB49.X122.0", type = EDataType.BOOL)
+    private Boolean deviceState;
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/s7/job/s7Job.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/s7/job/s7Job.java
new file mode 100644
index 0000000..0c30c4f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/s7/job/s7Job.java
@@ -0,0 +1,28 @@
+package com.mes.s7.job;
+
+import com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/4/30 14:20
+ * @Description:
+ */
+@Component
+@Slf4j
+public class s7Job {
+
+    @Autowired(required = false)
+    S7Serializer s7Serializer;
+
+
+    @Scheduled(fixedDelay = 1000)
+    public void hollowRemoveTaskOne() {
+//        S7Data read = s7Serializer.read(S7Data.class);
+//        log.info("read data: {}", read);
+    }
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
new file mode 100644
index 0000000..b99bef0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
@@ -0,0 +1,74 @@
+package com.mes.taskcache.controller;
+
+import cn.hutool.json.JSONObject;
+import com.mes.damage.entity.request.DamageRequest;
+import com.mes.edgstoragecage.entity.vo.CutDrawingVO;
+import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
+import com.mes.taskcache.service.TaskCacheService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Api(tags = "璇嗗埆鏄剧ず")
+@RestController
+@RequestMapping("/taskCache")
+public class TaskCacheController {
+
+    @Autowired
+    private EdgStorageCageDetailsService edgStorageCageDetailsService;
+
+    @Autowired
+    private TaskCacheService taskCacheService;
+
+    @ApiOperation("鏌ヨ閽㈠寲鐗堝浘淇℃伅-鏍规嵁 宸ョ▼鍙�   鍙傛暟(宸ョ▼鍙�)")
+    @PostMapping("/temperingTerritory")
+    public Result temperingTerritory(String current) {
+        List<Map<String, Object>> h = edgStorageCageDetailsService.selectTemperingTerritory(current);
+        return Result.build(200, "鎴愬姛", h);
+    }
+
+    @ApiOperation("鏌ヨ鍒囧壊鐗堝浘淇℃伅-鏍规嵁宸ョ▼鍙峰強鐗堝簭锛岀増搴忛粯璁や负1")
+    @PostMapping("/queryCutDrawingByEngineerId")
+    public Result queryCutDrawingByEngineerId(String engineerId, int patternSequence) {
+//        List<List<Map<String, Object>>> h = edgStorageCageDetailsService.selectCurrentCutTerritory(current);
+        Map<String, Object> map = edgStorageCageDetailsService.queryCutDrawingByEngineerId(engineerId, patternSequence);
+        return Result.build(200, "鎴愬姛", map);
+    }
+
+    @ApiOperation("璇嗗埆鏄剧ず:褰撳墠鐗堝浘,闇�瑕佸綋鍓嶅崸寮忕悊鐗囪澶噄d銆佷笂鐗囩嚎璺�")
+    @PostMapping("/queryCurrentCutDrawing")
+    public Result<JSONObject> queryCurrentCutDrawing(int deviceId, int stationCell) {
+        JSONObject jsonObject = edgStorageCageDetailsService.queryCurrentCutDrawing(deviceId, stationCell);
+        return Result.build(200, "鎴愬姛", jsonObject);
+    }
+
+    @ApiOperation("璇嗗埆鎿嶄綔锛�   鐮存崯/鎷胯蛋     鍙傛暟锛圛D,鍔熻兘[9锛氭嬁璧帮紝8:鐮存崯]锛�")
+    @PostMapping("/identControls")
+    public Result<String> identControls(@RequestBody @Validated DamageRequest request) {
+        return Result.build(200, "鎴愬姛", edgStorageCageDetailsService.identControls(request));
+    }
+
+    @ApiOperation("纾ㄨ竟浠诲姟 鍙傛暟()")
+    @PostMapping("/selectEdgTask")
+    public Result selectEdgTask(@RequestBody Map<String, String> arguments) {
+        String line = arguments.get("line");
+        List<Map<String, Object>> EdgTasks = taskCacheService.selectEdgInfo(line);
+        return Result.build(200, "鎴愬姛", EdgTasks);
+    }
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java
new file mode 100644
index 0000000..9226203
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java
@@ -0,0 +1,43 @@
+package com.mes.taskcache.entity;
+
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 鍗у紡鐞嗙墖绗间换鍔¤〃
+ */
+@Data
+@TableName("task_cache")
+public class TaskCache {
+    /**
+     * 浠诲姟缂栧彿
+     */
+    private String glassId;
+    /**
+     * 璧峰
+     */
+    private int startCell;
+    /**
+     * 缁撴潫
+     */
+    private int endCell;
+    /**
+     * 浠诲姟绫诲瀷
+     */
+    private int taskType;
+    /**
+     * 浠诲姟鐘舵��
+     */
+    private int taskStatus;
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+
+    @TableLogic
+    private int deleted;
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/TaskCacheMapper.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/TaskCacheMapper.java
new file mode 100644
index 0000000..88674f8
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/TaskCacheMapper.java
@@ -0,0 +1,22 @@
+package com.mes.taskcache.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.taskcache.entity.TaskCache;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@DS("salve_northGlassMes")
+public interface TaskCacheMapper extends MPJBaseMapper<TaskCache> {
+
+    TaskCache queryGlassByTaskCache(@Param(value = "line") int line, @Param(value = "taskTypes") List<Integer> taskTypes);
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java
new file mode 100644
index 0000000..07275d1
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java
@@ -0,0 +1,78 @@
+package com.mes.taskcache.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.yulichang.base.MPJBaseService;
+import com.mes.taskcache.entity.TaskCache;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface TaskCacheService extends MPJBaseService<TaskCache> {
+
+
+    boolean insertTaskCache(TaskCache taskCache);
+    /**
+     * 鏌ヨ纾ㄨ竟浠诲姟
+     *
+     * @param line
+     * @return
+     */
+    List<Map<String,Object>> selectEdgInfo(String line);
+
+    /**
+     * 鏌ヨ纾ㄨ竟浠诲姟
+     *
+     * @param line
+     * @return
+     */
+    TaskCache queryGlassByTaskCache(int line, List<Integer> taskTypes);
+
+    /**
+     * 鏌ヨ鐞嗙墖浠诲姟
+     *
+     * @return
+     */
+    List<TaskCache> selectCacheInfo();
+
+    /**
+     * 鏌ヨ鍏ㄩ儴浠诲姟
+     * @return
+     */
+    List<TaskCache> selectAll();
+
+    /**
+     * 鏌ヨ杩涚墖浠诲姟
+     * @return
+     */
+    List<TaskCache> selectInputTaskCache();
+
+    /**
+     * 鏌ヨ鍑虹墖浠诲姟
+     * @return
+     */
+    List<TaskCache> selectOutTaskCache();
+
+    /**
+     * 鏌ヨ  A09  鎴� A10 鏈�鏂扮殑涓�鐗� 鍑虹墖浠诲姟
+     * @param line
+     * @return
+     */
+    List<TaskCache> selectLastOutCacheInfos(int line);
+
+    /**
+     * 鏌ヨ  A09  鎴� A10 鏈�鏂扮殑涓�鐗� 鍑虹墖浠诲姟
+     * @param line
+     * @return
+     */
+    TaskCache selectLastOutCacheInfo(int line);
+
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java
new file mode 100644
index 0000000..df949ef
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java
@@ -0,0 +1,186 @@
+package com.mes.taskcache.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.common.config.Const;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+import com.mes.edgstoragecage.entity.EdgStorageCage;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.mapper.GlassInfoMapper;
+import com.mes.taskcache.entity.TaskCache;
+import com.mes.taskcache.mapper.TaskCacheMapper;
+import com.mes.taskcache.service.TaskCacheService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Slf4j
+@Service
+public class TaskCacheServiceImpl extends MPJBaseServiceImpl<TaskCacheMapper, TaskCache> implements TaskCacheService {
+
+    @Autowired
+    EdgStorageCageDetailsMapper edgStorageCageDetailsMapper;
+
+    @Autowired
+    GlassInfoMapper glassInfoMapper;
+    @Autowired
+    private TaskCacheMapper taskCacheMapper;
+
+
+    /**
+     * 娣诲姞鐞嗙墖绗间换鍔�
+     *
+     * @param taskCache
+     * @return
+     */
+    @Override
+    public boolean insertTaskCache(TaskCache taskCache) {
+        baseMapper.insert(taskCache);
+        return true;
+    }
+
+    /**
+     * 鏌ヨ纾ㄨ竟浠诲姟
+     *
+     * @param line
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> selectEdgInfo(String line) {
+        List<TaskCache> taskCache = baseMapper.selectList(new MPJLambdaWrapper<TaskCache>()
+                .selectAll(TaskCache.class)
+                .eq(TaskCache::getEndCell, line)
+                .eq(TaskCache::getTaskStatus, 1)
+                .orderByAsc(TaskCache::getCreateTime));
+        List<Map<String, Object>> result = new ArrayList<>();
+        int serialNumber = 1;
+        for (TaskCache taskCache1 : taskCache) {
+            Map<String, Object> map = new HashMap<>();
+//            GlassInfo glassInfo=glassInfoMapper.selectOne(new MPJLambdaWrapper<GlassInfo>()
+//                    .selectAll(GlassInfo.class)
+//                    .eq(GlassInfo::getGlassId,taskCache1.getGlassId()));
+            List<GlassInfo> glassInfos = glassInfoMapper.selectJoinList(GlassInfo.class, new MPJLambdaWrapper<GlassInfo>()
+                    .selectAll(GlassInfo.class)
+                    .innerJoin(EdgStorageCageDetails.class, on -> on
+                            .eq(EdgStorageCageDetails::getGlassId, GlassInfo::getGlassId)
+                            .eq(EdgStorageCageDetails::getEngineerId, GlassInfo::getEngineerId))
+                    .eq(GlassInfo::getGlassId, taskCache1.getGlassId())
+                    .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+            );
+            if (glassInfos.size() == 1) {
+                GlassInfo glassInfo = glassInfos.get(0);
+                map.put("Line", line);//绾胯矾   2001  1绾匡紝 2002 2绾�
+                map.put("Width", glassInfo.getWidth());//瀹�
+                map.put("Height", glassInfo.getHeight());//楂�
+                map.put("Thickness", glassInfo.getThickness());//鍘�
+                map.put("GlassId", glassInfo.getGlassId());//鐜荤拑ID
+                map.put("FlowCardId", glassInfo.getFlowCardId());//娴佺▼鍗″彿
+                map.put("TemperingLayoutId", glassInfo.getTemperingLayoutId());// 鏆備笉鏄剧ず  閽㈠寲鐗堝浘ID
+                map.put("TemperingFeedSequence", glassInfo.getTemperingFeedSequence());// 鏆備笉鏄剧ず  閽㈠寲鐗堝浘ID鍐呯殑搴忓彿
+                map.put("FilmsId", glassInfo.getFilmsid());//鑶滅郴
+                map.put("SerialNumber", serialNumber);//鍑虹墖椤哄簭
+                result.add(map);
+            } else if (glassInfos.size() > 1) {
+                log.info("鏁版嵁涓嶇鍚堥�昏緫--纾ㄨ竟闃熷垪glassId閲嶅:", glassInfos);
+                return new ArrayList<>();
+            }
+            serialNumber++;
+        }
+
+        return result;
+//        return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("end_cell",line));
+    }
+
+    @Override
+    public TaskCache queryGlassByTaskCache(int line, List<Integer> taskTypes) {
+        return baseMapper.queryGlassByTaskCache(line, taskTypes);
+    }
+
+    /**
+     * 鏌ヨ寰呯悊鐗囧伐浣滅殑浠诲姟
+     *
+     * @return
+     */
+    @Override
+    public List<TaskCache> selectCacheInfo() {
+        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus, 0));
+//        return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("task_status",0));
+    }
+
+    /**
+     * 鏌ヨ鍏ㄩ儴浠诲姟
+     *
+     * @return
+     */
+    @Override
+    public List<TaskCache> selectAll() {
+        return baseMapper.selectList(null);
+    }
+
+    /**
+     * 鏌ヨ寰呰繘鐗囦换鍔�
+     *
+     * @return
+     */
+    @Override
+    public List<TaskCache> selectInputTaskCache() {
+        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus, 0).eq(TaskCache::getTaskType, 1));
+
+//        return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("task_status",0).eq("task_type",1));
+    }
+
+    /**
+     * 鏌ヨ寰呭嚭鐗囦换鍔�
+     *
+     * @return
+     */
+    @Override
+    public List<TaskCache> selectOutTaskCache() {
+        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus, 0).eq(TaskCache::getTaskType, 2));
+//        return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("task_status",0).eq("task_type",2));
+    }
+
+    /**
+     * 鏌ヨ  A09  鎴� A10 鏈�鏂扮殑涓�鐗� 鍑虹墖浠诲姟
+     *
+     * @param line
+     * @return
+     */
+    @Override
+    public List<TaskCache> selectLastOutCacheInfos(int line) {
+        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getEndCell, line).eq(TaskCache::getTaskStatus, 1).orderByDesc(TaskCache::getCreateTime));
+//        return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("end_cell",line).eq("task_status",1).orderByDesc("ID"));
+    }
+
+    /**
+     * 鏌ヨ  A09  鎴� A10 鏈�鏂扮殑涓�鐗� 鍑虹墖浠诲姟
+     *
+     * @param line
+     * @return
+     */
+    @Override
+    public TaskCache selectLastOutCacheInfo(int line) {
+        return baseMapper.selectOne(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getEndCell, line).eq(TaskCache::getTaskStatus, 1).orderByDesc(TaskCache::getCreateTime));
+    }
+
+
+
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/JsonFile/PlcCacheGlass.json b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/JsonFile/PlcCacheGlass.json
new file mode 100644
index 0000000..01969b7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/JsonFile/PlcCacheGlass.json
@@ -0,0 +1,64 @@
+{
+   "plcAddressBegin":"DB11.0",
+   "plcAddressLenght":"80",
+   "dataType":"word",
+   "parameteInfor":[
+      {
+         "codeId": "A06_request_word",
+         "addressIndex":"0",
+         "addressLenght":"2", 
+         "ratio":"1", 
+         "unit":"m/min"    
+      },
+      {
+          "codeId": "A05_scanning_ID",
+          "addressIndex":"2",
+          "addressLenght":"30",
+          "ratio":"1",
+          "unit":""
+       },
+       {
+          "codeId": "Current_slot",
+          "addressIndex":"36",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       },
+        {
+          "codeId": "MES_confirmation_word",
+          "addressIndex":"38",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       },
+       {
+          "codeId": "A08_glass_status",
+          "addressIndex":"68",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       },
+       {
+          "codeId": "A10_glass_status",
+          "addressIndex":"70",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       },
+       {
+          "codeId": "A09_prohibit_film_production",
+          "addressIndex":"72",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       }
+       ,
+       {
+          "codeId": "A10_prohibit_film_production",
+          "addressIndex":"74",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       }
+   ]
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-cz.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-cz.yml
new file mode 100644
index 0000000..7196a66
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-cz.yml
@@ -0,0 +1,32 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.1.199:3306/hangzhoumes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://192.168.1.199:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://192.168.10.2:1433;databasename=hangzhoumes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  application:
+    name: cacheGlass
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-dev.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..96caa07
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-dev.yml
@@ -0,0 +1,42 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://127.0.0.1:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  application:
+    name: cacheGlass
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: false
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://192.168.2.100:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..912772f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-prod.yml
@@ -0,0 +1,42 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://10.153.19.150:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://10.153.19.150:1433;databasename=north_glass_mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 10.153.19.150:8849
+  application:
+    name: cacheGlass
+  redis:
+    database: 0
+    host: 10.153.19.150
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://10.153.19.150:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-yw.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-yw.yml
new file mode 100644
index 0000000..b299563
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-yw.yml
@@ -0,0 +1,42 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.2.100:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://192.168.2.100:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://192.168.2.100:1433;databasename=mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 192.168.2.100:8848
+  application:
+    name: cacheGlass
+  redis:
+    database: 0
+    host: 192.168.2.100
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://192.168.2.100:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
new file mode 100644
index 0000000..3d17dbf
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
@@ -0,0 +1,40 @@
+server:
+  port: 10011
+
+spring:
+  profiles:
+    active: dev
+  application:
+    name: cacheGlass
+  liquibase:
+    enabled: false
+  task:
+    scheduling:
+      pool:
+        size: 10
+      thread-name-prefix: task-cache
+mybatis-plus:
+  mapper-locations: classpath*:mapper/*.xml
+#  configuration:
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+mes:
+  threshold: 3
+  ratio: 10
+  cache: # 鍗у紡鐞嗙墖鏈�澶у昂瀵�
+    cacheWidth: 3600
+    cacheHeight: 3000
+  max: # 绗簩鏉$嚎鐨勬渶澶у昂瀵镐俊鎭�
+    firstLength: 3500
+    secondLength: 2500
+  min:
+    one: #绗竴鏉$(杈圭嚎鐨勬渶灏忓昂瀵镐俊鎭�
+      firstLength: 460
+      secondLength: 390
+    two: #绗簩鏉$(杈圭嚎鐨勬渶灏忓昂瀵镐俊鎭�
+      firstLength: 300
+      secondLength: 300
+  glassGap: 2500
+  cellLength: 2500
+  maxThickness: 8
+  sequence:
+    order: false
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/logback-spring.xml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..643b7af
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/logback-spring.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="10 seconds">
+    <!-- logger涓婁笅鏂囧悕绉帮紙鏍规嵁涓氬姟淇敼锛� -->
+    <contextName>cacheGlass</contextName>
+
+    <!-- 瀹氫箟浜嗕竴涓悕涓簊erverName鐨勫睘鎬э紝瀹冪殑鍊兼潵鑷簬logging.file.name锛屽鏋滄病鏈夋壘鍒拌灞炴�ч粯璁や负MyServerName锛堟牴鎹笟鍔′慨鏀癸級 -->
+    <springProperty name="serverName" source="logging.file.name" defaultValue="cacheGlass"/>
+    <springProperty name="logging.path" source="logging.file.path" defaultValue="././logs/"/>
+
+    <!-- 褰╄壊鏃ュ織渚濊禆鐨勬覆鏌撶被 -->
+    <!-- 瀹氫箟浜嗕竴涓悕涓篶lr鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.ColorConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗘棩蹇楄緭鍑轰腑鐨勬枃鏈潃鑹诧紝浠ヤ究鏇村鏄撳湴鍖哄垎涓嶅悓鐨勬棩蹇楃骇鍒垨鍏朵粬淇℃伅 -->
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
+    <!-- WhitespaceThrowableProxyConverter鍜孍xtendedWhitespaceThrowableProxyConverter閮芥槸鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず鐨勭被銆傚畠浠箣闂寸殑鍖哄埆鍦ㄤ簬锛孍xtendedWhitespaceThrowableProxyConverter鍦ㄨ緭鍑哄紓甯镐俊鎭椂浼氬寘鍚洿澶氱殑璇︾粏淇℃伅锛屼緥濡傚紓甯哥殑绫诲悕銆佹柟娉曞悕鍜岃鍙风瓑 -->
+    <!-- 瀹氫箟浜嗕竴涓悕涓簑ex鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <conversionRule conversionWord="wex"
+                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
+    <!-- 瀹氫箟浜嗕竴涓悕涓簑Ex鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <conversionRule conversionWord="wEx"
+                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
+
+    <!-- 褰╄壊鏃ュ織鏍煎紡 -->
+    <!-- value鍊兼槸鏃ュ織杈撳嚭妯℃澘锛� :-鏄睘鎬у悕鍜屽叾榛樿鍊间箣闂寸殑鍒嗛殧绗︼紝浣滅敤涓�:鐩稿悓 -->
+    <!-- 瀹氫箟鏃ュ織杈撳嚭鏍煎紡鐨勮浆鎹㈣鍒欙紝%d{yyyy-MM-dd HH:mm:ss.SSS}琛ㄧず鏃ユ湡鍜屾椂闂达紝%clr琛ㄧず灏嗚緭鍑烘枃鏈潃鑹诧紝{faint}琛ㄧず浣跨敤娣¤壊 -->
+    <!-- %5p琛ㄧず鏃ュ織绾у埆杈撳嚭鍙冲榻愶紝宸﹁竟浠ョ┖鏍煎~鍏� -->
+    <!-- ${PID:- }琛ㄧず杩涚▼ID锛�%clr琛ㄧず灏嗚緭鍑烘枃鏈潃鑹诧紝{magenta}琛ㄧず浣跨敤娲嬬孩鑹� -->
+    <!-- -琛ㄧず涓�涓垎闅旂 -->
+    <!-- %t锛氭樉绀轰骇鐢熻鏃ュ織鐨勭嚎绋嬪悕锛�%15锛氳嫢瀛楃闀垮害灏忎簬15锛屽垯宸﹁竟鐢ㄧ┖鏍煎~鍏咃紱%.15锛氳嫢瀛楃闀垮害瓒呰繃15锛屾埅鍘诲浣欏瓧绗� -->
+    <!-- %-40锛氳嫢瀛楃闀垮害灏忎簬40锛屽垯鍙宠竟鐢ㄧ┖鏍煎~鍏咃紱%.40锛氳嫢瀛楃闀垮害瓒呰繃40锛屾埅鍘诲浣欏瓧绗︼紱logger{39}瀵瑰簲鐨勬槸鈥渓ogging.WARNING鈥濈骇鍒�傚叿浣撴潵璇达紝Python鐨刲ogging妯″潡瀹氫箟浜嗕互涓嬪嚑涓骇鍒紙浠庝綆鍒伴珮锛夛細NOTSET銆丏EBUG銆両NFO銆乄ARNING銆丒RROR銆丆RITICAL銆傚洜姝わ紝logger{39}琛ㄧず鐨勬槸WARNING绾у埆锛屽嵆鏃ュ織璁板綍鍣ㄤ細璁板綍鎵�鏈塛ARNING绾у埆鍙婁互涓婄殑鏃ュ織淇℃伅 -->
+    <!-- %m琛ㄧず鏃ュ織娑堟伅锛�%n琛ㄧず鎹㈣绗︼紱${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}琛ㄧず寮傚父淇℃伅銆傚鏋滄棩蹇楄緭鍑轰腑鍖呭惈寮傚父淇℃伅锛岃繖涓鍒欏皢浼氬皢鍏惰浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <property name="CONSOLE_LOG_PATTERN"
+              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+
+    <!--1. 杈撳嚭鍒版帶鍒跺彴-->
+    <!-- 瀹氫箟鎺у埗鍙版棩蹇楄緭鍑虹殑appender锛宑lass="ch.qos.logback.core.ConsoleAppender"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凜onsoleAppender绫绘潵杈撳嚭鏃ュ織鍒版帶鍒跺彴 -->
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <!--姝ゆ棩蹇梐ppender鏄负寮�鍙戜娇鐢紝鍙厤缃渶搴曠骇鍒紝鎺у埗鍙拌緭鍑虹殑鏃ュ織绾у埆鏄ぇ浜庢垨绛変簬姝ょ骇鍒殑鏃ュ織淇℃伅-->
+        <!-- 瀹氫箟鏃ュ織杈撳嚭绾у埆鐨勮繃婊ゅ櫒锛宑lass="ch.qos.logback.classic.filter.ThresholdFilter"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凾hresholdFilter绫绘潵杩囨护鏃ュ織杈撳嚭锛�<level>debug</level>琛ㄧず鍙緭鍑篸ebug绾у埆鍙婁互涓婄殑鏃ュ織 -->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>debug</level>
+        </filter>
+        <encoder>
+            <!-- ${CONSOLE_LOG_PATTERN}琛ㄧず鎺у埗鍙版棩蹇楄緭鍑烘牸寮忥紝UTF-8琛ㄧず缂栫爜鏍煎紡 -->
+            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
+            <!-- 璁剧疆瀛楃闆� -->
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+    <!--2. 杈撳嚭鍒版枃妗�-->
+    <!-- 2.1 level涓� DEBUG 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <!-- 瀹氫箟鏂囦欢鏃ュ織杈撳嚭鐨刟ppender锛宑lass="ch.qos.logback.core.rolling.RollingFileAppender"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凴ollingFileAppender绫绘潵杈撳嚭鏃ュ織鍒版枃浠� -->
+    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_debug.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <!-- 瀹氫箟鏃ュ織鏂囦欢婊氬姩绛栫暐鐨勬爣绛撅紝class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凾imeBasedRollingPolicy绫绘潵瀹氫箟鏃ュ織鏂囦欢鐨勬粴鍔ㄧ瓥鐣� -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 鏃ュ織褰掓。 -->
+            <!-- 瀹氫箟鏃ュ織鏂囦欢鍚嶇殑妯″紡銆傚湪杩欎釜妯″紡涓紝${logging.path}琛ㄧず鏃ュ織鏂囦欢鐨勮矾寰勶紝%d{yyyy-MM-dd}琛ㄧず鏃ユ湡鏍煎紡锛�%i琛ㄧず鏂囦欢绱㈠紩 -->
+            <fileNamePattern>${logging.path}/${serverName}/web-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <!-- 瀹氫箟鏃ュ織鏂囦欢婊氬姩绛栫暐鐨勬爣绛撅紝class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凷izeAndTimeBasedFNATP绫绘潵瀹氫箟鏃ュ織鏂囦欢鐨勬粴鍔ㄧ瓥鐣ワ紝<maxFileSize>100MB</maxFileSize>琛ㄧず鏃ュ織鏂囦欢鐨勬渶澶уぇ灏忎负100MB銆傝繖涓粴鍔ㄧ瓥鐣ラ�氬父鐢ㄤ簬鎸夌収鏃堕棿鍜屾枃浠跺ぇ灏忔粴鍔ㄦ棩蹇楁枃浠讹紝浠ヤ究鏇村ソ鍦扮鐞嗘棩蹇楁枃浠剁殑澶у皬鍜屾暟閲� -->
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍debug绾у埆鐨� -->
+        <!-- 瀹氫箟鏃ュ織杈撳嚭绾у埆鐨勮繃婊ゅ櫒銆傚湪杩欎釜杩囨护鍣ㄤ腑锛宑lass="ch.qos.logback.classic.filter.LevelFilter"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凩evelFilter绫绘潵杩囨护鏃ュ織杈撳嚭锛�<level>debug</level>琛ㄧず鍙緭鍑篸ebug绾у埆鍙婁互涓婄殑鏃ュ織 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>debug</level>
+            <!-- <onMatch>ACCEPT</onMatch>琛ㄧず濡傛灉鏃ュ織浜嬩欢涓庤繃婊ゅ櫒鍖归厤锛屽垯鎺ュ彈璇ヤ簨浠讹紝<onMismatch>DENY</onMismatch>琛ㄧず濡傛灉鏃ュ織浜嬩欢涓庤繃婊ゅ櫒涓嶅尮閰嶏紝鍒欐嫆缁濊浜嬩欢 -->
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.2 level涓� INFO 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_info.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 澶╁ぉ鏃ュ織褰掓。璺緞浠ュ強鏍煎紡 -->
+            <fileNamePattern>${logging.path}/${serverName}/web-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍info绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>info</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.3 level涓� WARN 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_warn.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 姝ゅ璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logging.path}/${serverName}/web-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍warn绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>warn</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.4 level涓� ERROR 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_error.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 姝ゅ璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logging.path}/${serverName}/web-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍ERROR绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!--     4.1 寮�鍙戠幆澧�:鎵撳嵃鎺у埗鍙�-->
+    <!-- 鐢ㄤ簬鍦⊿pring Boot搴旂敤绋嬪簭涓厤缃棩蹇楄褰曠殑鏍囩銆傚湪杩欎釜鏍囩涓紝name="dev"琛ㄧず杩欎釜閰嶇疆鏂囦欢鍙湪dev鐜涓敓鏁堬紝<logger name="com.myClass.controller" level="debug"/>琛ㄧず涓篶om.myClass.controller锛堟牴鎹笟鍔′慨鏀癸級杩欎釜鍖呬笅鐨勭被閰嶇疆鏃ュ織杈撳嚭绾у埆涓篸ebug -->
+    <!--    <springProfile name="dev">-->
+    <!--        <logger name="com.myClass.controller" level="debug"/>-->
+    <!--    </springProfile>-->
+    <!-- 鐢ㄤ簬閰嶇疆鏃ュ織杈撳嚭鐨勬爣绛俱�傚湪杩欎釜鏍囩涓紝level="info"琛ㄧず鏃ュ織杈撳嚭绾у埆涓篿nfo锛�<appender-ref ref="CONSOLE"/>銆�<appender-ref ref="DEBUG_FILE"/>銆�<appender-ref ref="INFO_FILE"/>銆�<appender-ref ref="WARN_FILE"/>銆�<appender-ref ref="ERROR_FILE"/>琛ㄧず灏嗘棩蹇楄緭鍑哄埌涓嶅悓鐨刟ppender涓紝鍒嗗埆涓烘帶鍒跺彴銆乨ebug鏂囦欢銆乮nfo鏂囦欢銆亀arn鏂囦欢鍜宔rror鏂囦欢 -->
+    <root level="info">
+        <appender-ref ref="CONSOLE"/>
+        <appender-ref ref="INFO_FILE"/>
+        <appender-ref ref="WARN_FILE"/>
+        <appender-ref ref="ERROR_FILE"/>
+    </root>
+</configuration>
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageDetailsMapper.xml
new file mode 100644
index 0000000..af01a6f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageDetailsMapper.xml
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper">
+
+    <resultMap id="baseMap" type="com.mes.edgstoragecage.entity.EdgStorageCageDetails">
+        <id column="id" property="id"/>
+        <result column="engineer_id" property="engineerId"/>
+        <result column="device_id" property="deviceId"/>
+        <result column="slot" property="slot"/>
+        <result column="glass_id" property="glassId"/>
+        <result column="sequence" property="sequence"/>
+        <result column="flow_card_id" property="flowCardId"/>
+        <result column="glass_type" property="glassType"/>
+        <result column="width" property="width"/>
+        <result column="height" property="height"/>
+        <result column="thickness" property="thickness"/>
+        <result column="edg_width" property="edgWidth"/>
+        <result column="edg_height" property="edgHeight"/>
+        <result column="tempering_layout_id" property="temperingLayoutId"/>
+        <result column="tempering_feed_sequence" property="temperingFeedSequence"/>
+        <result column="pattern_sequence" property="patternSequence"/>
+        <result column="state" property="state"/>
+        <result column="gap" property="gap"/>
+        <result column="glass_count" property="count"/>
+    </resultMap>
+
+    <select id="queryEdgStorageDetailsBySize" resultMap="baseMap">
+        with min_id_temp as (
+        select slot, min(id) as id, count(*) as glass_count
+        from edg_storage_cage_details
+        where state = 100
+        and device_id = #{deviceId}
+        group by slot
+        ),
+        size_max_temp as (
+        select width, height, count(*) as total_count
+        from edg_storage_cage_details t
+        inner join min_id_temp t1 on t.id = t1.id
+        group by width, height
+        ),
+        slot_temp as (
+        select t.*, t1.glass_count
+        from edg_storage_cage_details t
+        inner join min_id_temp t1 on t.id = t1.id
+        inner join size_max_temp t2 on t.width = t2.width and t.height = t2.height
+        <where>
+            <if test="width != 0">
+                and t.width = #{width}
+            </if>
+            <if test="height != 0">
+                and t.height = #{height}
+            </if>
+            <if test="cell == 2">
+                and t.thickness &lt; #{maxThickness}
+            </if>
+        </where>
+        order by total_count desc, glass_count, abs(t.slot - #{currentSlot})
+        )
+        select *
+        from slot_temp limit 1
+    </select>
+    <select id="queryCutDrawingByEngineerId" resultType="com.mes.edgstoragecage.entity.vo.CutDrawingVO">
+        with glass_temp as (
+        select * from glass_info where engineer_id = #{engineerId} and pattern_sequence = #{patternSequence}
+        ), cut_drawing_temp as (
+        select t.*,
+        case when t2.glass_id is not null then t2.type
+        when t1.glass_id is not null then t1.state
+        else 0 end as state
+        from glass_temp t
+        left join edg_storage_cage_details t1 on t.glass_id = t1.glass_id
+        left join damage t2 on t.glass_id = t2.glass_id and t2.type in (8,9)
+        )select * from cut_drawing_temp where 1=1
+        <if test="isAll == 1">
+            and state = 0
+        </if>
+
+    </select>
+    <select id="querySlotRemainWidth" resultType="com.mes.edgstoragecage.entity.vo.EdgSlotRemainVO">
+        select device_id,
+               slot,
+               if(#{cellLength} - sum(GREATEST(width, height) + #{glassGap}) &lt; 0, 0, #{cellLength} -
+                                                                                        sum(GREATEST(width, height) + #{glassGap})) as
+                   remain_width
+        from edg_storage_cage_details
+        where state = 100
+        group by device_id, slot
+    </select>
+    <select id="queryEdgStorageDetailsByLimitSize" resultMap="baseMap">
+        SELECT t1.*
+        FROM edg_storage_cage t
+        LEFT JOIN edg_storage_cage_details t1 ON t.device_id = t1.device_id
+        AND t.slot = t1.slot
+        <where>
+            t.enable_state = 1
+            AND t1.state = 100
+            AND t1.device_id = #{deviceId}
+            <if test="width != 0">
+                and t1.width = #{width}
+            </if>
+            <if test="height != 0">
+                and t1.height = #{height}
+            </if>
+            <if test="cell == 1">
+                and #{minOneFirstLength} &lt;= GREATEST(t1.width, t1.height)
+                and #{minOneSecondLength} &lt;= least(t1.width, t1.height)
+            </if>
+            <if test="cell == 2">
+                and #{maxTwoFirstLength} &gt;= GREATEST(t1.width, t1.height)
+                and #{maxTwoSecondLength} &gt;= least(t1.width, t1.height)
+                and t1.thickness &lt; #{maxThickness}
+            </if>
+        </where>
+        ORDER BY abs(t.slot - #{currentCell})
+        limit 1
+    </select>
+    <select id="queryPieChart" resultType="com.mes.largenscreen.entity.PieChartVO">
+        SELECT round(sum(CASE WHEN e.station_cell = 5 THEN 1 ELSE 0 END), 2)                                                   as oneCompletedQuantity,
+               round(sum(CASE WHEN e.station_cell = 5 THEN escd.width * escd.height / 1000000 ELSE 0 END),
+                     2)                                                                                                        as oneCompletedArea,
+               round(sum(CASE WHEN e.station_cell = 6 THEN 1 ELSE 0 END), 2)                                                   as twoCompletedQuantity,
+               round(sum(CASE WHEN e.station_cell = 6 THEN escd.width * escd.height / 1000000 ELSE 0 END),
+                     2)                                                                                                        as twoCompletedArea,
+               round(sum(CASE WHEN e.station_cell = 5 and escd.device_id is null THEN 1 ELSE 0 END),
+                     2)                                                                                                        as oneUncompletedQuantity,
+               round(sum(CASE
+                             WHEN e.station_cell = 5 and escd.device_id is null THEN gi.width * gi.height / 1000000
+                             ELSE 0 END),
+                     2)                                                                                                        as oneUncompletedArea,
+               round(sum(CASE WHEN e.station_cell = 6 and escd.device_id is null THEN 1 ELSE 0 END),
+                     2)                                                                                                        as twoUncompletedQuantity,
+            round(sum( CASE WHEN e.station_cell = 6 and escd.device_id is null THEN gi.width*gi.height/1000000 ELSE 0 END ),2) as twoUncompletedArea
+        FROM
+            glass_info gi
+                left join edg_storage_cage_details escd ON gi.glass_id = escd.glass_id
+                left join engineering e on gi.engineer_id=e.engineer_id
+        WHERE
+            date(e.create_time) = date(now())
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageMapper.xml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageMapper.xml
new file mode 100644
index 0000000..cd4c157
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageMapper.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.edgstoragecage.mapper.EdgStorageCageMapper">
+
+    <resultMap id="baseMap" type="com.mes.edgstoragecage.entity.EdgStorageCage">
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="device_id" property="deviceId" jdbcType="INTEGER"/>
+        <result column="slot" property="slot" jdbcType="INTEGER"/>
+        <result column="enable_state" property="enableState" jdbcType="INTEGER"/>
+        <result column="remain_width" property="remainWidth" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <update id="resetSlotRemainWidth">
+        <foreach collection="list" item="item" separator=";" open="begin" close=";end;">
+            update edg_storage_cage set remain_width = #{item.remainWidth} where
+            device_id = #{item.deviceId} and slot = #{item.slot}
+        </foreach>
+    </update>
+
+    <select id="getEdgStorageCageBySize" resultMap="baseMap">
+        select t.*
+        from edg_storage_cage t
+                 left join edg_storage_cage_details t1 on t.slot = t1.slot
+        where t.device_id = #{deviceId}
+          and t1.state = 100
+          and t.remain_width >= GREATEST(#{width}, #{height})
+          and t1.width = #{width}
+          and t1.height = #{height}
+          and t.enable_state = 1
+        order by abs(t.slot - #{slot})
+        limit 1
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageDeviceTaskHistoryMapper.xml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageDeviceTaskHistoryMapper.xml
new file mode 100644
index 0000000..238ae73
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageDeviceTaskHistoryMapper.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.opctask.mapper.EdgStorageDeviceTaskHistoryMapper">
+
+    <resultMap id="baseMap" type="com.mes.largenscreen.entity.DailyProductionVO">
+        <result column="date" property="date"/>
+        <result column="count_out_one" property="countOutOne"/>
+        <result column="total_area_out_one" property="totalAreaOutOne"/>
+        <result column="count_out_two" property="countOutTwo"/>
+        <result column="total_area_out_two" property="totalAreaOutTwo"/>
+        <result column="count_in" property="countIn"/>
+        <result column="total_area_in" property="totalAreaIn"/>
+        <result column="count_out" property="countOut"/>
+        <result column="total_area_out" property="totalAreaOut"/>
+        <result column="hollow_count_out_one" property="hollowCountOutOne"/>
+        <result column="hollow_total_area_out_one" property="hollowTotalAreaOutOne"/>
+        <result column="hollow_count_out_two" property="hollowCountOutTwo"/>
+        <result column="hollow_total_area_out_two" property="hollowTotalAreaOutTwo"/>
+    </resultMap>
+
+
+    <select id="queryEdgDailyProduction" resultMap="baseMap">
+        SELECT
+        count( t.glass_id_out ) AS count_out_one,
+        round( sum( t1.width * t1.height )/ 1000000, 2 ) AS total_area_out_one
+        FROM
+        edg_storage_device_task_history t
+        INNER JOIN glass_info t1 ON t.glass_id_out = t1.glass_id
+        WHERE
+        t.task_type IN ( 2, 3 )
+        <if test="beginDate != null and beginDate != ''">
+            AND STR_TO_DATE( t.create_time, '%Y-%m-%d' ) BETWEEN #{beginDate}
+            AND #{endDate}
+        </if>
+        <if test="deviceId != null and deviceId != 0">
+            AND device_id = #{deviceId}
+        </if>
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageDeviceTaskMapper.xml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageDeviceTaskMapper.xml
new file mode 100644
index 0000000..340bb78
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageDeviceTaskMapper.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.opctask.mapper.EdgStorageDeviceTaskMapper">
+
+    <resultMap id="baseMap" type="com.mes.opctask.entity.EdgStorageDeviceTask">
+        <id column="task_running" property="taskRunning"/>
+        <id column="glass_id" property="glassId"/>
+        <id column="in_place" property="inPlace"/>
+        <id column="glass_id_in" property="glassIdIn"/>
+        <id column="glass_id_out" property="glassIdOut"/>
+        <id column="current_cell" property="currentCell"/>
+        <id column="start_cell" property="startCell"/>
+        <id column="end_cell" property="endCell"/>
+        <id column="task_state" property="taskState"/>
+        <id column="create_time" property="createTime"/>
+        <id column="update_time" property="updateTime"/>
+    </resultMap>
+
+    <select id="queryTaskMessage" resultMap="baseMap">
+        select *
+        from ${tableName}
+        limit 1
+    </select>
+
+    <update id="updateTaskMessage">
+        UPDATE ${tableName}
+        SET task_running = #{task.taskRunning},
+        glass_id_out = #{task.glassIdOut},
+        current_cell = #{task.currentCell},
+        start_cell = #{task.startCell},
+        end_cell = #{task.endCell}
+    </update>
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/TaskCacheMapper.xml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/TaskCacheMapper.xml
new file mode 100644
index 0000000..8ddf253
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/TaskCacheMapper.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.taskcache.mapper.TaskCacheMapper">
+
+    <select id="queryGlassByTaskCache" resultType="com.mes.taskcache.entity.TaskCache">
+        SELECT top 1
+        glass_id
+        ,start_cell
+        , end_cell
+        , task_type
+        , task_status
+        , create_time
+        FROM task_cache
+        <where>
+            end_cell = #{line}
+            and deleted = 0
+            AND task_type in
+            <foreach collection="taskTypes" item="item" open='(' close=')' separator=','>
+                #{item}
+            </foreach>
+        </where>
+        ORDER BY create_time desc
+    </select>
+
+</mapper>
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java
new file mode 100644
index 0000000..ca10149
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java
@@ -0,0 +1,166 @@
+package com.mes;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.github.yulichang.toolkit.JoinWrappers;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
+import com.mes.edgstoragecage.service.EdgStorageCageService;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.pp.entity.OptimizeDetail;
+import com.mes.pp.entity.OptimizeLayout;
+import com.mes.pp.mapper.OptimizeDetailMapper;
+import com.mes.taskcache.entity.TaskCache;
+import com.mes.taskcache.mapper.TaskCacheMapper;
+import com.mes.taskcache.service.TaskCacheService;
+import com.mes.taskcache.service.impl.TaskCacheServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/3/27 16:37
+ * @Description:
+ */
+@Slf4j
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = CacheGlassModuleApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+public class CacheGlassModuleApplicationTest {
+
+    @Autowired
+    EdgStorageCageService edgStorageCageService;
+    @Autowired
+    EdgStorageCageDetailsService edgStorageCageDetailsService;
+    @Resource
+    TaskCacheMapper taskCacheMapper;
+
+    @Autowired
+    TaskCacheServiceImpl taskCacheServiceImpl;
+    @Resource
+    OptimizeDetailMapper optimizeDetailMapper;
+    @Autowired
+    GlassInfoService glassInfoService;
+//    @Autowired
+//    CacheGlassTask cacheGlassTask;
+
+    @Autowired
+    TaskCacheService taskCacheService;
+
+    @Test
+    public void testFindPath() {
+        String url = getClass().getResource("").getPath();
+        log.info("瀹屾暣璺緞锛歿}", Arrays.asList(url));
+    }
+
+//    @Test
+//    public void queryChangeGlassInfo() {
+//        cacheGlassTask.queryChangeGlassInfo(Const.A10_OUT_TARGET_POSITION, "");
+//    }
+//
+//    @Test
+//    public void testChangeCellSize() {
+//        cacheGlassTask.queryChangeGlassInfo(Const.A09_OUT_TARGET_POSITION, "");
+//    }
+//
+//    @Test
+//    public void testCellSize() {
+//        cacheGlassTask.outTo(0, 0, "", "NG24051802A001|1|1|1|1", 0);
+//    }
+//
+//    @Test
+//    public void testinTo() {
+//        cacheGlassTask.inTo("NG24051802A001|1|1|2|1", "1", "1");
+//    }
+//
+//    @Test
+//    public void testChangeGlassInfo() {
+//        cacheGlassTask.queryAndChangeGlass("NG24051802A001|1|1|1|1");
+//    }
+
+    @Test
+    public void testSqlServer() {
+        List<TaskCache> list = taskCacheMapper.selectList(null);
+        log.info("鏁版嵁{}", list);
+        log.info("Sql鏁版嵁锛歿}", Arrays.asList(list));
+    }
+
+    @Test
+    public void testEdgtask() {
+        List<Map<String,Object>> list=taskCacheServiceImpl.selectEdgInfo("2001");
+        log.info("鏁版嵁{}",list);
+        log.info("Sql鏁版嵁锛歿}", Arrays.asList(list));
+    }
+
+
+
+    @Test
+    public void testEngineerTerritory() {
+        List<Map<String, Object>> map = edgStorageCageDetailsService.selectTemperingTerritory("P24052203");
+        log.info("閽㈠寲宸ョ▼鐗堝浘淇℃伅锛歿}", Arrays.asList(map));
+    }
+
+    @Test
+    public void testidentWorn() {
+        Map<String, Object> arguments=new HashMap<>();
+        arguments.put("glassId","NG24051802A002-1-4-2-4");//鐜荤拑ID
+        arguments.put("state","8");        //鎷胯蛋锛�200/鐮存崯锛�201
+        arguments.put("line","1001");             //绾胯矾锛�
+        arguments.put("workingProcedure","璇嗗埆");           //璁惧鍚嶇О锛�
+//        edgStorageCageDetailsService.identWorn(arguments);
+        log.info("璇嗗埆鍙般�愮牬鎹�/鎷胯蛋銆戯細{}", 1);
+    }
+    @Test
+    public void testInToVerify() {
+        boolean result=edgStorageCageDetailsService.inToVerify("P24060405|30|1");
+        log.info("鏄惁瀛樺湪閲嶅ID 銆嬪厑璁歌繘鐗囷細{}", result);
+    }
+
+    @Test
+    public void testPpOptimizeDetail() {
+        List<OptimizeDetail> optimizeDetail = optimizeDetailMapper.selectList(new QueryWrapper<OptimizeDetail>()
+                .eq("project_no", "P24032204")
+                .eq("stock_id", 5)
+        );
+        log.info("鍒囧壊褰撳墠鐗堝浘淇℃伅锛歿}", Arrays.asList(optimizeDetail));
+
+    }
+
+    @Test
+    public void testOptimizeDetail() {
+        List<Map<String, Object>> map2 = optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
+                .selectAll(OptimizeDetail.class)
+                .selectAs(OptimizeLayout::getWidth, "olWidth")
+                .selectAs(OptimizeLayout::getWidth, "olHeight")
+                .select(OptimizeLayout::getWidth, OptimizeLayout::getHeight)
+                .leftJoin(OptimizeLayout.class, on -> on.eq(OptimizeLayout::getProjectNo, OptimizeDetail::getProjectNo)
+                        .eq(OptimizeLayout::getStockId, OptimizeDetail::getStockId))
+                .eq(OptimizeDetail::getProjectNo, "P24032204")
+                .eq(OptimizeDetail::getStockId, 5)
+        );
+        log.info("鍒囧壊褰撳墠鐗堝浘淇℃伅1锛歿}", Arrays.asList(map2));
+    }
+
+    @Test
+    public void testOutTask() {
+        EdgStorageCageDetails edgStorageCageDetails = edgStorageCageDetailsService.selectConformGlass("1", 3);
+
+        log.info("鍑虹墖浠诲姟锛歿}", Arrays.asList(edgStorageCageDetails));
+    }
+
+    @Test
+    public void testedgTask() {
+        List<Map<String,Object>> EdgTasks = taskCacheService.selectEdgInfo("2001");
+
+        log.info("纾ㄨ竟浠诲姟锛歿}", Arrays.asList(EdgTasks));
+    }
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/JsonFile/PlcCacheGlass.json b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/JsonFile/PlcCacheGlass.json
new file mode 100644
index 0000000..01969b7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/JsonFile/PlcCacheGlass.json
@@ -0,0 +1,64 @@
+{
+   "plcAddressBegin":"DB11.0",
+   "plcAddressLenght":"80",
+   "dataType":"word",
+   "parameteInfor":[
+      {
+         "codeId": "A06_request_word",
+         "addressIndex":"0",
+         "addressLenght":"2", 
+         "ratio":"1", 
+         "unit":"m/min"    
+      },
+      {
+          "codeId": "A05_scanning_ID",
+          "addressIndex":"2",
+          "addressLenght":"30",
+          "ratio":"1",
+          "unit":""
+       },
+       {
+          "codeId": "Current_slot",
+          "addressIndex":"36",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       },
+        {
+          "codeId": "MES_confirmation_word",
+          "addressIndex":"38",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       },
+       {
+          "codeId": "A08_glass_status",
+          "addressIndex":"68",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       },
+       {
+          "codeId": "A10_glass_status",
+          "addressIndex":"70",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       },
+       {
+          "codeId": "A09_prohibit_film_production",
+          "addressIndex":"72",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       }
+       ,
+       {
+          "codeId": "A10_prohibit_film_production",
+          "addressIndex":"74",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":""
+       }
+   ]
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/application-cz.yml b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/application-cz.yml
new file mode 100644
index 0000000..7196a66
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/application-cz.yml
@@ -0,0 +1,32 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.1.199:3306/hangzhoumes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://192.168.1.199:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://192.168.10.2:1433;databasename=hangzhoumes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  application:
+    name: cacheGlass
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/application-dev.yml b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/application-dev.yml
new file mode 100644
index 0000000..96caa07
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/application-dev.yml
@@ -0,0 +1,42 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://127.0.0.1:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  application:
+    name: cacheGlass
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: false
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://192.168.2.100:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/application-prod.yml b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/application-prod.yml
new file mode 100644
index 0000000..912772f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/application-prod.yml
@@ -0,0 +1,42 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://10.153.19.150:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://10.153.19.150:1433;databasename=north_glass_mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 10.153.19.150:8849
+  application:
+    name: cacheGlass
+  redis:
+    database: 0
+    host: 10.153.19.150
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://10.153.19.150:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/application-yw.yml b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/application-yw.yml
new file mode 100644
index 0000000..b299563
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/application-yw.yml
@@ -0,0 +1,42 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.2.100:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://192.168.2.100:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://192.168.2.100:1433;databasename=mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 192.168.2.100:8848
+  application:
+    name: cacheGlass
+  redis:
+    database: 0
+    host: 192.168.2.100
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://192.168.2.100:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/application.yml b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/application.yml
new file mode 100644
index 0000000..3d17dbf
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/application.yml
@@ -0,0 +1,40 @@
+server:
+  port: 10011
+
+spring:
+  profiles:
+    active: dev
+  application:
+    name: cacheGlass
+  liquibase:
+    enabled: false
+  task:
+    scheduling:
+      pool:
+        size: 10
+      thread-name-prefix: task-cache
+mybatis-plus:
+  mapper-locations: classpath*:mapper/*.xml
+#  configuration:
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+mes:
+  threshold: 3
+  ratio: 10
+  cache: # 鍗у紡鐞嗙墖鏈�澶у昂瀵�
+    cacheWidth: 3600
+    cacheHeight: 3000
+  max: # 绗簩鏉$嚎鐨勬渶澶у昂瀵镐俊鎭�
+    firstLength: 3500
+    secondLength: 2500
+  min:
+    one: #绗竴鏉$(杈圭嚎鐨勬渶灏忓昂瀵镐俊鎭�
+      firstLength: 460
+      secondLength: 390
+    two: #绗簩鏉$(杈圭嚎鐨勬渶灏忓昂瀵镐俊鎭�
+      firstLength: 300
+      secondLength: 300
+  glassGap: 2500
+  cellLength: 2500
+  maxThickness: 8
+  sequence:
+    order: false
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/logback-spring.xml b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/logback-spring.xml
new file mode 100644
index 0000000..643b7af
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/logback-spring.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="10 seconds">
+    <!-- logger涓婁笅鏂囧悕绉帮紙鏍规嵁涓氬姟淇敼锛� -->
+    <contextName>cacheGlass</contextName>
+
+    <!-- 瀹氫箟浜嗕竴涓悕涓簊erverName鐨勫睘鎬э紝瀹冪殑鍊兼潵鑷簬logging.file.name锛屽鏋滄病鏈夋壘鍒拌灞炴�ч粯璁や负MyServerName锛堟牴鎹笟鍔′慨鏀癸級 -->
+    <springProperty name="serverName" source="logging.file.name" defaultValue="cacheGlass"/>
+    <springProperty name="logging.path" source="logging.file.path" defaultValue="././logs/"/>
+
+    <!-- 褰╄壊鏃ュ織渚濊禆鐨勬覆鏌撶被 -->
+    <!-- 瀹氫箟浜嗕竴涓悕涓篶lr鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.ColorConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗘棩蹇楄緭鍑轰腑鐨勬枃鏈潃鑹诧紝浠ヤ究鏇村鏄撳湴鍖哄垎涓嶅悓鐨勬棩蹇楃骇鍒垨鍏朵粬淇℃伅 -->
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
+    <!-- WhitespaceThrowableProxyConverter鍜孍xtendedWhitespaceThrowableProxyConverter閮芥槸鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず鐨勭被銆傚畠浠箣闂寸殑鍖哄埆鍦ㄤ簬锛孍xtendedWhitespaceThrowableProxyConverter鍦ㄨ緭鍑哄紓甯镐俊鎭椂浼氬寘鍚洿澶氱殑璇︾粏淇℃伅锛屼緥濡傚紓甯哥殑绫诲悕銆佹柟娉曞悕鍜岃鍙风瓑 -->
+    <!-- 瀹氫箟浜嗕竴涓悕涓簑ex鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <conversionRule conversionWord="wex"
+                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
+    <!-- 瀹氫箟浜嗕竴涓悕涓簑Ex鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <conversionRule conversionWord="wEx"
+                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
+
+    <!-- 褰╄壊鏃ュ織鏍煎紡 -->
+    <!-- value鍊兼槸鏃ュ織杈撳嚭妯℃澘锛� :-鏄睘鎬у悕鍜屽叾榛樿鍊间箣闂寸殑鍒嗛殧绗︼紝浣滅敤涓�:鐩稿悓 -->
+    <!-- 瀹氫箟鏃ュ織杈撳嚭鏍煎紡鐨勮浆鎹㈣鍒欙紝%d{yyyy-MM-dd HH:mm:ss.SSS}琛ㄧず鏃ユ湡鍜屾椂闂达紝%clr琛ㄧず灏嗚緭鍑烘枃鏈潃鑹诧紝{faint}琛ㄧず浣跨敤娣¤壊 -->
+    <!-- %5p琛ㄧず鏃ュ織绾у埆杈撳嚭鍙冲榻愶紝宸﹁竟浠ョ┖鏍煎~鍏� -->
+    <!-- ${PID:- }琛ㄧず杩涚▼ID锛�%clr琛ㄧず灏嗚緭鍑烘枃鏈潃鑹诧紝{magenta}琛ㄧず浣跨敤娲嬬孩鑹� -->
+    <!-- -琛ㄧず涓�涓垎闅旂 -->
+    <!-- %t锛氭樉绀轰骇鐢熻鏃ュ織鐨勭嚎绋嬪悕锛�%15锛氳嫢瀛楃闀垮害灏忎簬15锛屽垯宸﹁竟鐢ㄧ┖鏍煎~鍏咃紱%.15锛氳嫢瀛楃闀垮害瓒呰繃15锛屾埅鍘诲浣欏瓧绗� -->
+    <!-- %-40锛氳嫢瀛楃闀垮害灏忎簬40锛屽垯鍙宠竟鐢ㄧ┖鏍煎~鍏咃紱%.40锛氳嫢瀛楃闀垮害瓒呰繃40锛屾埅鍘诲浣欏瓧绗︼紱logger{39}瀵瑰簲鐨勬槸鈥渓ogging.WARNING鈥濈骇鍒�傚叿浣撴潵璇达紝Python鐨刲ogging妯″潡瀹氫箟浜嗕互涓嬪嚑涓骇鍒紙浠庝綆鍒伴珮锛夛細NOTSET銆丏EBUG銆両NFO銆乄ARNING銆丒RROR銆丆RITICAL銆傚洜姝わ紝logger{39}琛ㄧず鐨勬槸WARNING绾у埆锛屽嵆鏃ュ織璁板綍鍣ㄤ細璁板綍鎵�鏈塛ARNING绾у埆鍙婁互涓婄殑鏃ュ織淇℃伅 -->
+    <!-- %m琛ㄧず鏃ュ織娑堟伅锛�%n琛ㄧず鎹㈣绗︼紱${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}琛ㄧず寮傚父淇℃伅銆傚鏋滄棩蹇楄緭鍑轰腑鍖呭惈寮傚父淇℃伅锛岃繖涓鍒欏皢浼氬皢鍏惰浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <property name="CONSOLE_LOG_PATTERN"
+              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+
+    <!--1. 杈撳嚭鍒版帶鍒跺彴-->
+    <!-- 瀹氫箟鎺у埗鍙版棩蹇楄緭鍑虹殑appender锛宑lass="ch.qos.logback.core.ConsoleAppender"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凜onsoleAppender绫绘潵杈撳嚭鏃ュ織鍒版帶鍒跺彴 -->
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <!--姝ゆ棩蹇梐ppender鏄负寮�鍙戜娇鐢紝鍙厤缃渶搴曠骇鍒紝鎺у埗鍙拌緭鍑虹殑鏃ュ織绾у埆鏄ぇ浜庢垨绛変簬姝ょ骇鍒殑鏃ュ織淇℃伅-->
+        <!-- 瀹氫箟鏃ュ織杈撳嚭绾у埆鐨勮繃婊ゅ櫒锛宑lass="ch.qos.logback.classic.filter.ThresholdFilter"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凾hresholdFilter绫绘潵杩囨护鏃ュ織杈撳嚭锛�<level>debug</level>琛ㄧず鍙緭鍑篸ebug绾у埆鍙婁互涓婄殑鏃ュ織 -->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>debug</level>
+        </filter>
+        <encoder>
+            <!-- ${CONSOLE_LOG_PATTERN}琛ㄧず鎺у埗鍙版棩蹇楄緭鍑烘牸寮忥紝UTF-8琛ㄧず缂栫爜鏍煎紡 -->
+            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
+            <!-- 璁剧疆瀛楃闆� -->
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+    <!--2. 杈撳嚭鍒版枃妗�-->
+    <!-- 2.1 level涓� DEBUG 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <!-- 瀹氫箟鏂囦欢鏃ュ織杈撳嚭鐨刟ppender锛宑lass="ch.qos.logback.core.rolling.RollingFileAppender"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凴ollingFileAppender绫绘潵杈撳嚭鏃ュ織鍒版枃浠� -->
+    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_debug.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <!-- 瀹氫箟鏃ュ織鏂囦欢婊氬姩绛栫暐鐨勬爣绛撅紝class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凾imeBasedRollingPolicy绫绘潵瀹氫箟鏃ュ織鏂囦欢鐨勬粴鍔ㄧ瓥鐣� -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 鏃ュ織褰掓。 -->
+            <!-- 瀹氫箟鏃ュ織鏂囦欢鍚嶇殑妯″紡銆傚湪杩欎釜妯″紡涓紝${logging.path}琛ㄧず鏃ュ織鏂囦欢鐨勮矾寰勶紝%d{yyyy-MM-dd}琛ㄧず鏃ユ湡鏍煎紡锛�%i琛ㄧず鏂囦欢绱㈠紩 -->
+            <fileNamePattern>${logging.path}/${serverName}/web-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <!-- 瀹氫箟鏃ュ織鏂囦欢婊氬姩绛栫暐鐨勬爣绛撅紝class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凷izeAndTimeBasedFNATP绫绘潵瀹氫箟鏃ュ織鏂囦欢鐨勬粴鍔ㄧ瓥鐣ワ紝<maxFileSize>100MB</maxFileSize>琛ㄧず鏃ュ織鏂囦欢鐨勬渶澶уぇ灏忎负100MB銆傝繖涓粴鍔ㄧ瓥鐣ラ�氬父鐢ㄤ簬鎸夌収鏃堕棿鍜屾枃浠跺ぇ灏忔粴鍔ㄦ棩蹇楁枃浠讹紝浠ヤ究鏇村ソ鍦扮鐞嗘棩蹇楁枃浠剁殑澶у皬鍜屾暟閲� -->
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍debug绾у埆鐨� -->
+        <!-- 瀹氫箟鏃ュ織杈撳嚭绾у埆鐨勮繃婊ゅ櫒銆傚湪杩欎釜杩囨护鍣ㄤ腑锛宑lass="ch.qos.logback.classic.filter.LevelFilter"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凩evelFilter绫绘潵杩囨护鏃ュ織杈撳嚭锛�<level>debug</level>琛ㄧず鍙緭鍑篸ebug绾у埆鍙婁互涓婄殑鏃ュ織 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>debug</level>
+            <!-- <onMatch>ACCEPT</onMatch>琛ㄧず濡傛灉鏃ュ織浜嬩欢涓庤繃婊ゅ櫒鍖归厤锛屽垯鎺ュ彈璇ヤ簨浠讹紝<onMismatch>DENY</onMismatch>琛ㄧず濡傛灉鏃ュ織浜嬩欢涓庤繃婊ゅ櫒涓嶅尮閰嶏紝鍒欐嫆缁濊浜嬩欢 -->
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.2 level涓� INFO 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_info.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 澶╁ぉ鏃ュ織褰掓。璺緞浠ュ強鏍煎紡 -->
+            <fileNamePattern>${logging.path}/${serverName}/web-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍info绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>info</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.3 level涓� WARN 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_warn.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 姝ゅ璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logging.path}/${serverName}/web-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍warn绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>warn</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.4 level涓� ERROR 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_error.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 姝ゅ璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logging.path}/${serverName}/web-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍ERROR绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!--     4.1 寮�鍙戠幆澧�:鎵撳嵃鎺у埗鍙�-->
+    <!-- 鐢ㄤ簬鍦⊿pring Boot搴旂敤绋嬪簭涓厤缃棩蹇楄褰曠殑鏍囩銆傚湪杩欎釜鏍囩涓紝name="dev"琛ㄧず杩欎釜閰嶇疆鏂囦欢鍙湪dev鐜涓敓鏁堬紝<logger name="com.myClass.controller" level="debug"/>琛ㄧず涓篶om.myClass.controller锛堟牴鎹笟鍔′慨鏀癸級杩欎釜鍖呬笅鐨勭被閰嶇疆鏃ュ織杈撳嚭绾у埆涓篸ebug -->
+    <!--    <springProfile name="dev">-->
+    <!--        <logger name="com.myClass.controller" level="debug"/>-->
+    <!--    </springProfile>-->
+    <!-- 鐢ㄤ簬閰嶇疆鏃ュ織杈撳嚭鐨勬爣绛俱�傚湪杩欎釜鏍囩涓紝level="info"琛ㄧず鏃ュ織杈撳嚭绾у埆涓篿nfo锛�<appender-ref ref="CONSOLE"/>銆�<appender-ref ref="DEBUG_FILE"/>銆�<appender-ref ref="INFO_FILE"/>銆�<appender-ref ref="WARN_FILE"/>銆�<appender-ref ref="ERROR_FILE"/>琛ㄧず灏嗘棩蹇楄緭鍑哄埌涓嶅悓鐨刟ppender涓紝鍒嗗埆涓烘帶鍒跺彴銆乨ebug鏂囦欢銆乮nfo鏂囦欢銆亀arn鏂囦欢鍜宔rror鏂囦欢 -->
+    <root level="info">
+        <appender-ref ref="CONSOLE"/>
+        <appender-ref ref="INFO_FILE"/>
+        <appender-ref ref="WARN_FILE"/>
+        <appender-ref ref="ERROR_FILE"/>
+    </root>
+</configuration>
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/mapper/EdgStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/mapper/EdgStorageCageDetailsMapper.xml
new file mode 100644
index 0000000..af01a6f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/mapper/EdgStorageCageDetailsMapper.xml
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper">
+
+    <resultMap id="baseMap" type="com.mes.edgstoragecage.entity.EdgStorageCageDetails">
+        <id column="id" property="id"/>
+        <result column="engineer_id" property="engineerId"/>
+        <result column="device_id" property="deviceId"/>
+        <result column="slot" property="slot"/>
+        <result column="glass_id" property="glassId"/>
+        <result column="sequence" property="sequence"/>
+        <result column="flow_card_id" property="flowCardId"/>
+        <result column="glass_type" property="glassType"/>
+        <result column="width" property="width"/>
+        <result column="height" property="height"/>
+        <result column="thickness" property="thickness"/>
+        <result column="edg_width" property="edgWidth"/>
+        <result column="edg_height" property="edgHeight"/>
+        <result column="tempering_layout_id" property="temperingLayoutId"/>
+        <result column="tempering_feed_sequence" property="temperingFeedSequence"/>
+        <result column="pattern_sequence" property="patternSequence"/>
+        <result column="state" property="state"/>
+        <result column="gap" property="gap"/>
+        <result column="glass_count" property="count"/>
+    </resultMap>
+
+    <select id="queryEdgStorageDetailsBySize" resultMap="baseMap">
+        with min_id_temp as (
+        select slot, min(id) as id, count(*) as glass_count
+        from edg_storage_cage_details
+        where state = 100
+        and device_id = #{deviceId}
+        group by slot
+        ),
+        size_max_temp as (
+        select width, height, count(*) as total_count
+        from edg_storage_cage_details t
+        inner join min_id_temp t1 on t.id = t1.id
+        group by width, height
+        ),
+        slot_temp as (
+        select t.*, t1.glass_count
+        from edg_storage_cage_details t
+        inner join min_id_temp t1 on t.id = t1.id
+        inner join size_max_temp t2 on t.width = t2.width and t.height = t2.height
+        <where>
+            <if test="width != 0">
+                and t.width = #{width}
+            </if>
+            <if test="height != 0">
+                and t.height = #{height}
+            </if>
+            <if test="cell == 2">
+                and t.thickness &lt; #{maxThickness}
+            </if>
+        </where>
+        order by total_count desc, glass_count, abs(t.slot - #{currentSlot})
+        )
+        select *
+        from slot_temp limit 1
+    </select>
+    <select id="queryCutDrawingByEngineerId" resultType="com.mes.edgstoragecage.entity.vo.CutDrawingVO">
+        with glass_temp as (
+        select * from glass_info where engineer_id = #{engineerId} and pattern_sequence = #{patternSequence}
+        ), cut_drawing_temp as (
+        select t.*,
+        case when t2.glass_id is not null then t2.type
+        when t1.glass_id is not null then t1.state
+        else 0 end as state
+        from glass_temp t
+        left join edg_storage_cage_details t1 on t.glass_id = t1.glass_id
+        left join damage t2 on t.glass_id = t2.glass_id and t2.type in (8,9)
+        )select * from cut_drawing_temp where 1=1
+        <if test="isAll == 1">
+            and state = 0
+        </if>
+
+    </select>
+    <select id="querySlotRemainWidth" resultType="com.mes.edgstoragecage.entity.vo.EdgSlotRemainVO">
+        select device_id,
+               slot,
+               if(#{cellLength} - sum(GREATEST(width, height) + #{glassGap}) &lt; 0, 0, #{cellLength} -
+                                                                                        sum(GREATEST(width, height) + #{glassGap})) as
+                   remain_width
+        from edg_storage_cage_details
+        where state = 100
+        group by device_id, slot
+    </select>
+    <select id="queryEdgStorageDetailsByLimitSize" resultMap="baseMap">
+        SELECT t1.*
+        FROM edg_storage_cage t
+        LEFT JOIN edg_storage_cage_details t1 ON t.device_id = t1.device_id
+        AND t.slot = t1.slot
+        <where>
+            t.enable_state = 1
+            AND t1.state = 100
+            AND t1.device_id = #{deviceId}
+            <if test="width != 0">
+                and t1.width = #{width}
+            </if>
+            <if test="height != 0">
+                and t1.height = #{height}
+            </if>
+            <if test="cell == 1">
+                and #{minOneFirstLength} &lt;= GREATEST(t1.width, t1.height)
+                and #{minOneSecondLength} &lt;= least(t1.width, t1.height)
+            </if>
+            <if test="cell == 2">
+                and #{maxTwoFirstLength} &gt;= GREATEST(t1.width, t1.height)
+                and #{maxTwoSecondLength} &gt;= least(t1.width, t1.height)
+                and t1.thickness &lt; #{maxThickness}
+            </if>
+        </where>
+        ORDER BY abs(t.slot - #{currentCell})
+        limit 1
+    </select>
+    <select id="queryPieChart" resultType="com.mes.largenscreen.entity.PieChartVO">
+        SELECT round(sum(CASE WHEN e.station_cell = 5 THEN 1 ELSE 0 END), 2)                                                   as oneCompletedQuantity,
+               round(sum(CASE WHEN e.station_cell = 5 THEN escd.width * escd.height / 1000000 ELSE 0 END),
+                     2)                                                                                                        as oneCompletedArea,
+               round(sum(CASE WHEN e.station_cell = 6 THEN 1 ELSE 0 END), 2)                                                   as twoCompletedQuantity,
+               round(sum(CASE WHEN e.station_cell = 6 THEN escd.width * escd.height / 1000000 ELSE 0 END),
+                     2)                                                                                                        as twoCompletedArea,
+               round(sum(CASE WHEN e.station_cell = 5 and escd.device_id is null THEN 1 ELSE 0 END),
+                     2)                                                                                                        as oneUncompletedQuantity,
+               round(sum(CASE
+                             WHEN e.station_cell = 5 and escd.device_id is null THEN gi.width * gi.height / 1000000
+                             ELSE 0 END),
+                     2)                                                                                                        as oneUncompletedArea,
+               round(sum(CASE WHEN e.station_cell = 6 and escd.device_id is null THEN 1 ELSE 0 END),
+                     2)                                                                                                        as twoUncompletedQuantity,
+            round(sum( CASE WHEN e.station_cell = 6 and escd.device_id is null THEN gi.width*gi.height/1000000 ELSE 0 END ),2) as twoUncompletedArea
+        FROM
+            glass_info gi
+                left join edg_storage_cage_details escd ON gi.glass_id = escd.glass_id
+                left join engineering e on gi.engineer_id=e.engineer_id
+        WHERE
+            date(e.create_time) = date(now())
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/mapper/EdgStorageCageMapper.xml b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/mapper/EdgStorageCageMapper.xml
new file mode 100644
index 0000000..cd4c157
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/mapper/EdgStorageCageMapper.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.edgstoragecage.mapper.EdgStorageCageMapper">
+
+    <resultMap id="baseMap" type="com.mes.edgstoragecage.entity.EdgStorageCage">
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="device_id" property="deviceId" jdbcType="INTEGER"/>
+        <result column="slot" property="slot" jdbcType="INTEGER"/>
+        <result column="enable_state" property="enableState" jdbcType="INTEGER"/>
+        <result column="remain_width" property="remainWidth" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <update id="resetSlotRemainWidth">
+        <foreach collection="list" item="item" separator=";" open="begin" close=";end;">
+            update edg_storage_cage set remain_width = #{item.remainWidth} where
+            device_id = #{item.deviceId} and slot = #{item.slot}
+        </foreach>
+    </update>
+
+    <select id="getEdgStorageCageBySize" resultMap="baseMap">
+        select t.*
+        from edg_storage_cage t
+                 left join edg_storage_cage_details t1 on t.slot = t1.slot
+        where t.device_id = #{deviceId}
+          and t1.state = 100
+          and t.remain_width >= GREATEST(#{width}, #{height})
+          and t1.width = #{width}
+          and t1.height = #{height}
+          and t.enable_state = 1
+        order by abs(t.slot - #{slot})
+        limit 1
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/mapper/EdgStorageDeviceTaskHistoryMapper.xml b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/mapper/EdgStorageDeviceTaskHistoryMapper.xml
new file mode 100644
index 0000000..238ae73
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/mapper/EdgStorageDeviceTaskHistoryMapper.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.opctask.mapper.EdgStorageDeviceTaskHistoryMapper">
+
+    <resultMap id="baseMap" type="com.mes.largenscreen.entity.DailyProductionVO">
+        <result column="date" property="date"/>
+        <result column="count_out_one" property="countOutOne"/>
+        <result column="total_area_out_one" property="totalAreaOutOne"/>
+        <result column="count_out_two" property="countOutTwo"/>
+        <result column="total_area_out_two" property="totalAreaOutTwo"/>
+        <result column="count_in" property="countIn"/>
+        <result column="total_area_in" property="totalAreaIn"/>
+        <result column="count_out" property="countOut"/>
+        <result column="total_area_out" property="totalAreaOut"/>
+        <result column="hollow_count_out_one" property="hollowCountOutOne"/>
+        <result column="hollow_total_area_out_one" property="hollowTotalAreaOutOne"/>
+        <result column="hollow_count_out_two" property="hollowCountOutTwo"/>
+        <result column="hollow_total_area_out_two" property="hollowTotalAreaOutTwo"/>
+    </resultMap>
+
+
+    <select id="queryEdgDailyProduction" resultMap="baseMap">
+        SELECT
+        count( t.glass_id_out ) AS count_out_one,
+        round( sum( t1.width * t1.height )/ 1000000, 2 ) AS total_area_out_one
+        FROM
+        edg_storage_device_task_history t
+        INNER JOIN glass_info t1 ON t.glass_id_out = t1.glass_id
+        WHERE
+        t.task_type IN ( 2, 3 )
+        <if test="beginDate != null and beginDate != ''">
+            AND STR_TO_DATE( t.create_time, '%Y-%m-%d' ) BETWEEN #{beginDate}
+            AND #{endDate}
+        </if>
+        <if test="deviceId != null and deviceId != 0">
+            AND device_id = #{deviceId}
+        </if>
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/mapper/EdgStorageDeviceTaskMapper.xml b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/mapper/EdgStorageDeviceTaskMapper.xml
new file mode 100644
index 0000000..340bb78
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/mapper/EdgStorageDeviceTaskMapper.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.opctask.mapper.EdgStorageDeviceTaskMapper">
+
+    <resultMap id="baseMap" type="com.mes.opctask.entity.EdgStorageDeviceTask">
+        <id column="task_running" property="taskRunning"/>
+        <id column="glass_id" property="glassId"/>
+        <id column="in_place" property="inPlace"/>
+        <id column="glass_id_in" property="glassIdIn"/>
+        <id column="glass_id_out" property="glassIdOut"/>
+        <id column="current_cell" property="currentCell"/>
+        <id column="start_cell" property="startCell"/>
+        <id column="end_cell" property="endCell"/>
+        <id column="task_state" property="taskState"/>
+        <id column="create_time" property="createTime"/>
+        <id column="update_time" property="updateTime"/>
+    </resultMap>
+
+    <select id="queryTaskMessage" resultMap="baseMap">
+        select *
+        from ${tableName}
+        limit 1
+    </select>
+
+    <update id="updateTaskMessage">
+        UPDATE ${tableName}
+        SET task_running = #{task.taskRunning},
+        glass_id_out = #{task.glassIdOut},
+        current_cell = #{task.currentCell},
+        start_cell = #{task.startCell},
+        end_cell = #{task.endCell}
+    </update>
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/mapper/TaskCacheMapper.xml b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/mapper/TaskCacheMapper.xml
new file mode 100644
index 0000000..8ddf253
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/target/classes/mapper/TaskCacheMapper.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.taskcache.mapper.TaskCacheMapper">
+
+    <select id="queryGlassByTaskCache" resultType="com.mes.taskcache.entity.TaskCache">
+        SELECT top 1
+        glass_id
+        ,start_cell
+        , end_cell
+        , task_type
+        , task_status
+        , create_time
+        FROM task_cache
+        <where>
+            end_cell = #{line}
+            and deleted = 0
+            AND task_type in
+            <foreach collection="taskTypes" item="item" open='(' close=')' separator=','>
+                #{item}
+            </foreach>
+        </where>
+        ORDER BY create_time desc
+    </select>
+
+</mapper>
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/pom.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/pom.xml
new file mode 100644
index 0000000..955faaf
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/pom.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>moduleService</artifactId>
+        <groupId>com.mes</groupId>
+        <version>1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>cacheVerticalGlass</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/AppRunnerConfig.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/AppRunnerConfig.java
new file mode 100644
index 0000000..722766f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/AppRunnerConfig.java
@@ -0,0 +1,28 @@
+package com.mes;
+
+import com.mes.job.PlcStorageCageTask;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+@Order(1)
+
+public class AppRunnerConfig implements ApplicationRunner {
+
+    private final PlcStorageCageTask plcStorageCageTask;
+
+    public AppRunnerConfig(PlcStorageCageTask plcStorageCageTask) {
+        this.plcStorageCageTask = plcStorageCageTask;
+    }
+
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+        log.info("鍚姩瀹屾垚");
+//        S7object.getinstance().start();
+
+    }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/CacheVerticalClassModuleApplication.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/CacheVerticalClassModuleApplication.java
new file mode 100644
index 0000000..ecfee1f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/CacheVerticalClassModuleApplication.java
@@ -0,0 +1,30 @@
+package com.mes;
+
+import lombok.extern.slf4j.Slf4j;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/3/25 10:49
+ * @Description:
+ */
+@Slf4j
+@SpringBootApplication
+@EnableSwagger2WebMvc
+@EnableDiscoveryClient
+@MapperScan(basePackages = "com.mes.*.mapper")
+@EnableScheduling
+public class CacheVerticalClassModuleApplication {
+    public static void main(String[] args) {
+        try {
+            SpringApplication.run(CacheVerticalClassModuleApplication.class, args);
+        }catch (Exception e){
+            log.error(e.getMessage());
+        }
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageController.java
new file mode 100644
index 0000000..f10dcd7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageController.java
@@ -0,0 +1,49 @@
+package com.mes.bigstorage.controller;
+
+import com.mes.bigstorage.entity.dto.BigStorageAndDetailsDTO;
+import com.mes.bigstorage.entity.vo.BigStorageDetailsQueryVO;
+import com.mes.bigstorage.service.BigStorageCageService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Api(tags = "鐞嗙墖绗间俊鎭�")
+@RestController
+@RequestMapping("/bigStorageCage")
+public class BigStorageCageController {
+
+    @Autowired
+    private BigStorageCageService bigStorageCageService;
+
+    @ApiOperation("鐞嗙墖绗煎惎鐢ㄧ鐢�")
+    @GetMapping("/updateStorageCageDisabled")
+    public Result updateStorageCageDisabled(int slot, int enableState) {
+        bigStorageCageService.updateStorageCageDisabled(slot, enableState);
+        return Result.build(200, "鍚敤/绂佺敤鎴愬姛", 1);
+    }
+
+    @ApiOperation("鎸夌収鏌ヨ鏉′欢锛堣澶噄d銆佹祦绋嬪崱銆佽啘绯伙級鑾峰彇璁惧瀵瑰簲鐨勭瀛愮幓鐠冧俊鎭�")
+    @PostMapping("/querybigStorageCageDetail")
+    public Result<List<BigStorageAndDetailsDTO>> querybigStorageCageDetail(@RequestBody BigStorageDetailsQueryVO query) {
+        return Result.build(200, "鏌ヨ鎴愬姛", bigStorageCageService.querybigStorageCageDetail(query));
+    }
+    @ApiOperation("澶嶄綅锛氶噸缃悊鐗囩鍩虹淇℃伅1娓呴櫎绗煎唴鐘舵�佷负0鐨勮剰鏁版嵁銆�2灏嗙┖鏍煎瓙鐨勫昂瀵哥疆涓哄垵濮嬪昂瀵�")
+    @PostMapping("/resetCage")
+    public Result<Boolean> resetCage() {
+        return Result.build(200, "鏌ヨ鎴愬姛", bigStorageCageService.resetCage());
+    }
+
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
new file mode 100644
index 0000000..5e56064
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
@@ -0,0 +1,201 @@
+package com.mes.bigstorage.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.entity.dto.GlassInfoLackDTO;
+import com.mes.bigstorage.entity.dto.TemperingGlassCountDTO;
+import com.mes.bigstorage.entity.vo.BigStorageQueryVO;
+import com.mes.bigstorage.service.BigStorageCageDetailsService;
+import com.mes.bigstorage.service.BigStorageCageService;
+import com.mes.common.config.Const;
+import com.mes.utils.RedisUtil;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Api(tags = "鐞嗙墖绗艰鎯�")
+@RestController
+@RequestMapping("/bigStorageCageDetails")
+public class BigStorageCageDetailsController {
+
+    @Autowired
+    private BigStorageCageDetailsService bigStorageCageDetailsService;
+    @Autowired
+    private BigStorageCageService bigStorageCageService;
+    @Resource
+    private RedisUtil redisUtil;
+
+
+    @ApiOperation("鐜荤拑璇︽儏鏌ヨ")
+    @PostMapping("/selectBigStorageCageDetails")
+    public Result selectBigStorageCageDetails(@RequestBody Map map) {
+        List<BigStorageCageDetails> bigStorageCageDetails = bigStorageCageDetailsService.selectBigStorageCageDetails(map.get("glassId").toString());
+        if (bigStorageCageDetails.size() > 0) {
+            return Result.build(200, "鏌ヨ鎴愬姛", bigStorageCageDetails);
+        } else {
+            return Result.build(200, "鏌ヨ澶辫触锛屾棤姝ょ幓鐠僫d", bigStorageCageDetails);
+        }
+    }
+
+    @ApiOperation("鐞嗙墖绗艰鎯呮坊鍔�")
+    @PostMapping("/insertBigStorageCageDetails")
+    public Result insertBigStorageCageDetails(@RequestBody BigStorageCageDetails bigStorageCageDetails) {
+        bigStorageCageDetailsService.insertBigStorageCageDetails(bigStorageCageDetails);
+        return Result.build(200, "娣诲姞鎴愬姛", bigStorageCageService.querybigStorageCageDetail());
+    }
+
+    @ApiOperation("鐞嗙墖绗艰鎯呭垹闄�")
+    @PostMapping("/deleteBigStorageCageDetails")
+    public Result deleteBigStorageCageDetails(@RequestBody BigStorageCageDetails bigStorageCageDetails) {
+        bigStorageCageDetailsService.deleteBigStorageCageDetails(bigStorageCageDetails);
+        return Result.build(200, "鍒犻櫎鎴愬姛", bigStorageCageService.querybigStorageCageDetail());
+    }
+
+    @ApiOperation("鐞嗙墖绗肩鍐呯幓鐠冪牬鎹�0/鎷胯蛋1")
+    @PostMapping("/damageBigStorageCageDetails")
+    public Result damageBigStorageCageDetails(@RequestBody BigStorageCageDetails bigStorageCageDetails, int status) {
+        bigStorageCageDetailsService.damageBigStorageCageDetails(bigStorageCageDetails.getGlassId(), status);
+        return Result.build(200, "鐮存崯/鎷胯蛋鎴愬姛", 1);
+    }
+
+    @ApiOperation("鐞嗙墖绗间换鍔″畬鎴�")
+    @PostMapping("/finishBigStorageCageDetails")
+    public Result finishBigStorageCageDetails(@RequestBody BigStorageCageDetails bigStorageCageDetails) {
+        bigStorageCageDetailsService.finishBigStorageCageDetails(bigStorageCageDetails);
+        return Result.build(200, "浠诲姟瀹屾垚鎴愬姛", 1);
+    }
+
+    @ApiOperation("鐞嗙墖绗间换鍔″嚭鐗�")
+    @PostMapping("/outBigStorageCageDetails")
+    public Result outBigStorageCageDetails(@RequestBody BigStorageCageDetails bigStorageCageDetails) {
+        bigStorageCageDetailsService.outBigStorageCageDetails(bigStorageCageDetails);
+        return Result.build(200, "鍑虹墖娣诲姞鎴愬姛", 1);
+    }
+
+    @ApiOperation("鎸囧畾閽㈠寲")
+    @PostMapping("/TemperingGlass")
+    public Result temperingGlass(@RequestBody BigStorageCageDetails bigStorageCageDetails) {
+        boolean result = bigStorageCageDetailsService
+                .temperingGlass(bigStorageCageDetails.getTemperingLayoutId().toString(), bigStorageCageDetails.getEngineerId(), bigStorageCageDetails.getTemperingFeedSequence().toString());
+        if (result == true) {
+            return Result.build(200, "鎸囧畾閽㈠寲鎴愬姛", 1);
+        } else {
+            return Result.build(200, "宸插瓨鍦ㄩ挗鍖栦换鍔★紝璇风瓑寰呴挗鍖栧畬鎴愬啀鎸囧畾閽㈠寲", 1);
+        }
+    }
+
+    @ApiOperation("鎸囧畾閽㈠寲宸ョ▼")
+    @PostMapping("/appointTemperingEngineerId")
+    public Result appointTemperingEngineerId(String engineerId) {
+        boolean result = bigStorageCageDetailsService.appointTemperingEngineerId(engineerId);
+        if (result == true) {
+            return Result.build(200, "鎸囧畾閽㈠寲鎴愬姛", 1);
+        } else {
+            return Result.build(200, "宸插瓨鍦ㄩ挗鍖栦换鍔★紝璇风瓑寰呴挗鍖栧畬鎴愬啀鎸囧畾閽㈠寲", 1);
+        }
+    }
+
+    @ApiOperation("鍙栨秷褰撳墠閽㈠寲")
+    @PostMapping("/cancelTemperingTask")
+    public Result<Boolean> cancelTemperingTask() {
+        boolean result = bigStorageCageDetailsService.cancelTemperingTask();
+        if (result == true) {
+            return Result.build(200, "鍙栨秷褰撳墠閽㈠寲鎴愬姛", result);
+        } else {
+            return Result.build(200, "鍙栨秷褰撳墠閽㈠寲澶辫触", result);
+        }
+    }
+
+    @ApiOperation("閽㈠寲/闈為挗鍖栨煡璇細0 闈為挗鍖�  1锛氶挗鍖�")
+    @PostMapping("/selectTemperingGlass")
+    public Result<List<TemperingGlassCountDTO>> selectTemperingGlass(int isTempering) {
+        return Result.build(200, "鏌ヨ鎴愬姛", bigStorageCageDetailsService.selectTemperingGlass(isTempering));
+    }
+
+    @ApiOperation("绗煎唴瀹為檯鏁伴噺鏌ヨ")
+    @PostMapping("/queryRealGlassInfo")
+    public Result<List<BigStorageCageDetails>> queryRealGlassInfo(@RequestBody BigStorageQueryVO bigStorageQueryVO) {
+        return Result.build(200, "鏌ヨ鎴愬姛", bigStorageCageDetailsService.queryRealGlassInfo(bigStorageQueryVO));
+    }
+
+    @ApiOperation("缂虹墖鏁伴噺鏌ヨ")
+    @PostMapping("/queryLackGlassInfo")
+    public Result<List<GlassInfoLackDTO>> queryLackGlassInfo(@RequestBody BigStorageQueryVO bigStorageQueryVO) {
+        return Result.build(200, "鏌ヨ鎴愬姛", bigStorageCageDetailsService.queryLackGlassInfo(bigStorageQueryVO));
+    }
+
+    @ApiOperation("鏄惁璋冨害寮�鍏�")
+    @PostMapping("/dispatchSwitch")
+    public Result dispatchSwitch(Boolean flag) {
+        bigStorageCageDetailsService.dispatchSwitch(flag);
+        return Result.build(200, "淇敼鎴愬姛", redisUtil.getCacheObject("dispatchSwitch"));
+    }
+
+    @ApiOperation("鏄惁閽㈠寲寮�鍏�")
+    @PostMapping("/temperingSwitch")
+    public Result temperingSwitch(Boolean flag) {
+        bigStorageCageDetailsService.temperingSwitch(flag);
+        return Result.build(200, "淇敼鎴愬姛", redisUtil.getCacheObject("temperingSwitch"));
+    }
+
+    @ApiOperation("娴佺▼鍗℃煡璇�")
+    @PostMapping("/selectFlowCardByCache")
+    public Result selectFlowCardByCache() {
+        List<Map<String, Object>> flowCardIdCount = bigStorageCageDetailsService.listMaps(
+                new QueryWrapper<BigStorageCageDetails>()
+                        .select("flow_card_id,layer,count(*) as count")
+                        .eq("state", Const.GLASS_STATE_IN)
+                        .eq("tempering_layout_id", 0)
+                        .groupBy("flow_card_id,layer")
+        );
+        return Result.build(200, "鏌ヨ鎴愬姛", flowCardIdCount);
+    }
+
+    @ApiOperation("鎸囧畾娴佺▼鍗�")
+    @PostMapping("/appointFlowCard")
+    public Result appointFlowCard(@RequestBody BigStorageCageDetails bigStorageCageDetails) {
+        List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsService.list(
+                new LambdaQueryWrapper<BigStorageCageDetails>()
+                        .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_ARTIFICIAL)
+        );
+        if (bigStorageCageDetailsList.size() == 0) {
+            bigStorageCageDetailsService.update(
+                    new LambdaUpdateWrapper<BigStorageCageDetails>()
+                            .set(BigStorageCageDetails::getState, Const.GLASS_STATE_ARTIFICIAL)
+                            .eq(BigStorageCageDetails::getFlowCardId, bigStorageCageDetails.getFlowCardId())
+                            .eq(BigStorageCageDetails::getLayer, bigStorageCageDetails.getLayer())
+                            .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+            );
+            return Result.build(200, "鎸囧畾娴佺▼鍗℃垚鍔�", 1);
+        } else {
+            return Result.build(200, "鎸囧畾娴佺▼鍗℃垚鍔�", 1);
+        }
+    }
+
+    @ApiOperation("澶х悊鐗囩鎶ョ牬鎹�")
+    @PostMapping("/bigStorageGlassDamageByGlassId")
+    public Result<String> bigStorageGlassDamageByGlassId(@RequestBody Map<String, String> map) {
+        String glassId = map.get("glassId");
+        return Result.build(200, "鎶ョ牬鎹熸垚鍔�", bigStorageCageDetailsService.bigStorageGlassDamageByGlassId(glassId));
+    }
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageGlassInfoController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageGlassInfoController.java
new file mode 100644
index 0000000..ad1c7f3
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageGlassInfoController.java
@@ -0,0 +1,18 @@
+package com.mes.bigstorage.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * (BigStorageGlassInfo)琛ㄦ帶鍒跺眰
+ *
+ * @author makejava
+ * @since 2024-11-24 10:15:34
+ */
+@RestController
+@RequestMapping("bigStorageGlassInfo")
+public class BigStorageGlassInfoController {
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageGlassRelationInfoController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageGlassRelationInfoController.java
new file mode 100644
index 0000000..54ce5a4
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageGlassRelationInfoController.java
@@ -0,0 +1,18 @@
+package com.mes.bigstorage.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * (BigStorageGlassRelationInfo)琛ㄦ帶鍒跺眰
+ *
+ * @author makejava
+ * @since 2024-11-24 10:17:42
+ */
+@RestController
+@RequestMapping("bigStorageGlassRelationInfo")
+public class BigStorageGlassRelationInfoController {
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java
new file mode 100644
index 0000000..5a79a88
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java
@@ -0,0 +1,76 @@
+package com.mes.bigstorage.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Api(description = "澶х悊鐗囩")
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BigStorageCage implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 澶х悊鐗囩琛╥d
+     */
+    @ApiModelProperty(value = "澶х悊鐗囩琛╥d", position = 2)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 璁惧id
+     */
+    @ApiModelProperty(value = "璁惧id", position = 3)
+    private Integer deviceId;
+
+    /**
+     * 鏍呮牸鍙�
+     */
+    @ApiModelProperty(value = "鏍呮牸鍙�", position = 4)
+    private Integer slot;
+
+    /**
+     * 鏍呮牸鍙�
+     */
+    @ApiModelProperty(value = "鏈�灏忓帤搴�", position = 5)
+    private Integer minThickness;
+    /**
+     * 鏍呮牸鍙�
+     */
+    @ApiModelProperty(value = "鏈�澶у帤搴�", position = 6)
+    private Integer maxThickness;
+
+    /**
+     * 鍚敤鐘舵��
+     */
+    @ApiModelProperty(value = "鍚敤鐘舵��", position = 7)
+    private Integer enableState;
+
+    /**
+     * 鍓╀綑瀹藉害
+     */
+    @ApiModelProperty(value = "鍓╀綑瀹藉害", position = 8)
+    private Integer remainWidth;
+
+    @ApiModelProperty(hidden = true)
+    @TableField(exist = false)
+    private List<BigStorageCageDetails> bigStorageCageDetails;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java
new file mode 100644
index 0000000..0cf7da5
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java
@@ -0,0 +1,120 @@
+package com.mes.bigstorage.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.mes.base.entity.BigStorageCageBaseInfo;
+import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
+import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Api(description = "澶х悊鐗囩璇︽儏")
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BigStorageCageDetails extends BigStorageCageBaseInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 澶х悊鐗囩璇︽儏琛╥d
+     */
+    @ApiModelProperty(value = "澶х悊鐗囩璇︽儏琛╥d", position = 2)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 璁惧id
+     */
+    @ApiModelProperty(value = "璁惧id", position = 3)
+    private Integer deviceId;
+
+
+    /**
+     * 灏忕墖鍦ㄦ牸鍐呯殑椤哄簭
+     */
+    @ApiModelProperty(value = "灏忕墖鍦ㄦ牸鍐呯殑椤哄簭", position = 6)
+    private Integer sequence;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    @ApiModelProperty(value = "娴佺▼鍗″彿", position = 7)
+    private String flowCardId;
+
+    /**
+     * 鐜荤拑绫诲瀷
+     */
+    @ApiModelProperty(value = "鐜荤拑绫诲瀷", position = 8)
+    private Integer glassType;
+
+    @ApiModelProperty(value = "鏃嬭浆瑙掑害", position = 12)
+    private Integer angle;
+
+    /**
+     * x鍧愭爣
+     */
+    @ApiModelProperty(value = "x鍧愭爣", position = 13)
+    private Integer xCoordinate;
+
+    /**
+     * y鍧愭爣
+     */
+    @ApiModelProperty(value = "y鍧愭爣", position = 14)
+    private Integer yCoordinate;
+
+    /**
+     * 鐘舵��
+     */
+    @ApiModelProperty(value = "鐘舵��", position = 14)
+    private Integer state;
+
+    /**
+     * 鐜荤拑闂撮殭
+     */
+    @ApiModelProperty(value = "鐜荤拑闂撮殭", position = 15)
+    private Integer gap;
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    @ApiModelProperty(value = "灞�", position = 17)
+    private int layer;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+    /**
+     * 鏇存柊鏃堕棿
+     */
+    private Date updateTime;
+
+    /**
+     * 杩涚墖浠诲姟
+     */
+    @ApiModelProperty(value = "杩涚墖浠诲姟", position = 18)
+    @TableField(exist = false)
+    private BigStorageCageFeedTask bigStorageCageFeedTask;
+
+    /**
+     * 鍑虹墖浠诲姟
+     */
+    @ApiModelProperty(value = "鍑虹墖浠诲姟", position = 19)
+    @TableField(exist = false)
+    private BigStorageCageOutTask bigStorageCageOutTask;
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageGlassInfo.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageGlassInfo.java
new file mode 100644
index 0000000..767fc19
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageGlassInfo.java
@@ -0,0 +1,77 @@
+package com.mes.bigstorage.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+/**
+ * (BigStorageGlassInfo)琛ㄥ疄浣撶被
+ *
+ * @author makejava
+ * @since 2024-11-24 10:15:35
+ */
+@Data
+public class BigStorageGlassInfo {
+    /**
+     * /*澶х悊鐗囩淇℃伅琛╥d
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * /*鐜荤拑id
+     */
+    private String glassId;
+    /**
+     * /*娴佺▼鍗″彿
+     */
+    private String flowCardId;
+    /**
+     * /*鐜荤拑绫诲瀷
+     */
+    private Integer glassType;
+    /**
+     * /*瀹�
+     */
+    private Double width;
+    /**
+     * /*楂�
+     */
+    private Double height;
+    /**
+     * /*鍘氬害
+     */
+    private Double thickness;
+    /**
+     * /*閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+    /**
+     * /*閽㈠寲鐗堝浘鐗囧簭
+     */
+    private Integer temperingFeedSequence;
+    /**
+     * /*x鍧愭爣
+     */
+    private Integer xCoordinate;
+    /**
+     * /*y鍧愭爣
+     */
+    private Integer yCoordinate;
+
+    private String engineerId;
+    /**
+     * /*灞傚彿
+     */
+    private Integer layer;
+    /**
+     * /*铏氭嫙鏍煎瓙鍙�
+     */
+    private Integer virtualSlot;
+    /**
+     * /*鏍煎瓙娆″簭
+     */
+    private Integer slotSequence;
+
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageGlassRelationInfo.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageGlassRelationInfo.java
new file mode 100644
index 0000000..8cb3996
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageGlassRelationInfo.java
@@ -0,0 +1,53 @@
+package com.mes.bigstorage.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+/**
+ * (BigStorageGlassRelationInfo)琛ㄥ疄浣撶被
+ *
+ * @author makejava
+ * @since 2024-11-24 10:17:43
+ */
+@Data
+public class BigStorageGlassRelationInfo {
+    /**
+     * /*閽㈠寲鐜荤拑鍏崇郴琛╥d
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    private String engineerId;
+    /**
+     * /*鐜荤拑id
+     */
+    private String glassId;
+    /**
+     * /*閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+    /**
+     * /*閽㈠寲鐗堝浘鐗囧簭
+     */
+    private Integer temperingFeedSequence;
+    /**
+     * /*铏氭嫙鏍煎瓙
+     */
+    private Integer virtualSlot;
+    /**
+     * /*鏍煎瓙鍐呮搴�
+     */
+    private Integer slotSequence;
+    /**
+     * /*瀹為檯绗煎瓙鍙�
+     */
+    private Integer deviceId;
+    /**
+     * /*瀹為檯鏍煎瓙鍙�
+     */
+    private Integer slot;
+
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageAndDetailsDTO.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageAndDetailsDTO.java
new file mode 100644
index 0000000..4acd70a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageAndDetailsDTO.java
@@ -0,0 +1,18 @@
+package com.mes.bigstorage.entity.dto;
+
+import com.mes.bigstorage.entity.BigStorageCage;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/6/11 16:45
+ * @Description:
+ */
+@Data
+public class BigStorageAndDetailsDTO extends BigStorageCage {
+
+    private List<BigStorageCageDetails> bigStorageCageDetails;
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageDTO.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageDTO.java
new file mode 100644
index 0000000..decf3f3
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageDTO.java
@@ -0,0 +1,34 @@
+package com.mes.bigstorage.entity.dto;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/6/11 16:45
+ * @Description:
+ */
+@Data
+public class BigStorageDTO {
+    /**
+     * 鏍煎瓙鍙�
+     */
+    private Integer slot;
+    /**
+     * 鍓╀綑瀹藉害
+     */
+    private Integer width;
+
+    /**
+     * 鐜荤拑鏁伴噺
+     */
+    private Integer glassCount;
+
+    /**
+     * 绗煎瓙鍙�
+     */
+    private Integer deviceId;
+    /**
+     * 搴忓彿
+     */
+    private Integer slotSequence;
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageRelationDTO.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageRelationDTO.java
new file mode 100644
index 0000000..9ab2385
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageRelationDTO.java
@@ -0,0 +1,24 @@
+package com.mes.bigstorage.entity.dto;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/11/25 18:53
+ * @Description:
+ */
+@Data
+public class BigStorageRelationDTO {
+
+
+    private String engineerId;
+    /**
+     * /*閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+    /**
+     * /*铏氭嫙鏍煎瓙
+     */
+    private Integer virtualSlot;
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageSequenceDTO.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageSequenceDTO.java
new file mode 100644
index 0000000..a976537
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageSequenceDTO.java
@@ -0,0 +1,17 @@
+package com.mes.bigstorage.entity.dto;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/11/25 18:53
+ * @Description:
+ */
+@Data
+public class BigStorageSequenceDTO {
+
+    private Integer slot;
+    private Integer maxSequence;
+    private Integer minSequence;
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageSummaryDTO.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageSummaryDTO.java
new file mode 100644
index 0000000..a80b998
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/BigStorageSummaryDTO.java
@@ -0,0 +1,47 @@
+package com.mes.bigstorage.entity.dto;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/6/11 16:45
+ * @Description:
+ */
+@Data
+public class BigStorageSummaryDTO {
+    /**
+     * 宸ョ▼鍙�
+     */
+    private String engineerId;
+
+    /**
+     * 绗煎唴鎬荤倝鏁�
+     */
+    private Integer countTemp;
+
+    /**
+     * 绗煎唴鐜荤拑鏁伴噺
+     */
+    private Integer countGlass;
+
+    /**
+     * 闈㈢Н
+     */
+    private Double area;
+
+    /**
+     * 婊$倝鏁�
+     */
+    private Integer fullTemp;
+
+    /**
+     * 鍗犵敤鏍煎瓙鏁�
+     */
+    private Integer countSlot;
+
+    /**
+     * 杩涘害
+     */
+    private Double percent;
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/GlassInfoLackDTO.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/GlassInfoLackDTO.java
new file mode 100644
index 0000000..d835d5f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/GlassInfoLackDTO.java
@@ -0,0 +1,18 @@
+package com.mes.bigstorage.entity.dto;
+
+import com.mes.glassinfo.entity.GlassInfo;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/12/16 16:17
+ * @Description:
+ */
+@Data
+public class GlassInfoLackDTO extends GlassInfo {
+
+    /**
+     * 鏄惁鐮存崯
+     */
+    private int isDamage;
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/SlotSequenceDTO.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/SlotSequenceDTO.java
new file mode 100644
index 0000000..1d12320
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/SlotSequenceDTO.java
@@ -0,0 +1,42 @@
+package com.mes.bigstorage.entity.dto;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/6/13 15:51
+ * @Description:
+ */
+@Data
+public class SlotSequenceDTO {
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private String engineerId;
+
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+    /**
+     * 鐜荤拑鏁伴噺
+     */
+    private Integer glassCount;
+    /**
+     * 澶х悊鐗囪鎯呬腑鏍煎瓙鍙�
+     */
+    private Integer slot;
+    /**
+     * 鏍煎瓙鍐呯殑鏈�澶у簭鍙�
+     */
+    private Integer maxSequence;
+    /**
+     * 鏍煎瓙鍐呯殑鏈�灏忓簭鍙�
+     */
+    private Integer minSequence;
+
+    /**
+     * 鏍煎瓙鍓╀綑瀹藉害
+     */
+    private Integer remainWidth;
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/TemperingGlassCountDTO.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/TemperingGlassCountDTO.java
new file mode 100644
index 0000000..18316aa
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/TemperingGlassCountDTO.java
@@ -0,0 +1,46 @@
+package com.mes.bigstorage.entity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/11/25 18:53
+ * @Description:
+ */
+@Data
+public class TemperingGlassCountDTO {
+    /**
+     * 宸ョ▼鍙�
+     */
+    private String engineerId;
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+    /**
+     * 鑶滅郴
+     */
+    private String filmsId;
+    /**
+     * /*鍘氬害
+     */
+    private Double thickness;
+    /**
+     * 鎬荤墖鏁�
+     */
+    private Integer totalCount;
+    /**
+     * 瀹為檯鐗囨暟
+     */
+    private Integer realCount;
+    /**
+     * 鐮存崯鐗囨暟
+     */
+    private Integer damageCount;
+    /**
+     * 缂哄皯鐗囨暟
+     */
+    private Integer lackCount;
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/TemperingLayoutDTO.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/TemperingLayoutDTO.java
new file mode 100644
index 0000000..18d4edb
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/TemperingLayoutDTO.java
@@ -0,0 +1,30 @@
+package com.mes.bigstorage.entity.dto;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/6/13 15:51
+ * @Description:
+ */
+@Data
+public class TemperingLayoutDTO {
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private String engineerId;
+
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+    /**
+     * 褰撳墠鐗堝浘鏁伴噺
+     */
+    private Integer count;
+
+    /**
+     * 褰撳墠鐗堝浘鍗犵敤鏍煎瓙鏁伴噺
+     */
+    private Integer slotCount;
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/vo/BigStorageDetailsQueryVO.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/vo/BigStorageDetailsQueryVO.java
new file mode 100644
index 0000000..ff5ed78
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/vo/BigStorageDetailsQueryVO.java
@@ -0,0 +1,40 @@
+package com.mes.bigstorage.entity.vo;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/6/13 15:51
+ * @Description:
+ */
+@Data
+public class BigStorageDetailsQueryVO {
+    /**
+     * 璁惧id
+     */
+    private Integer deviceId;
+    /**
+     * 娴佺▼鍗�
+     */
+    private String flowCardId;
+    /**
+     * 鑶滅郴
+     */
+    private String filmsId;
+//    /**
+//     *鏈�灏忓搴�
+//     */
+//    private Integer minWidth;
+//    /**
+//     *鏈�澶у搴�
+//     */
+//    private Integer maxWidth;
+//    /**
+//     *鏈�灏忛珮搴�
+//     */
+//    private Integer minHeight;
+//    /**
+//     *鏈�澶ч珮搴�
+//     */
+//    private Integer maxHeight;
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/vo/BigStorageQueryVO.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/vo/BigStorageQueryVO.java
new file mode 100644
index 0000000..5d24dac
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/vo/BigStorageQueryVO.java
@@ -0,0 +1,21 @@
+package com.mes.bigstorage.entity.vo;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/6/13 15:51
+ * @Description:
+ */
+@Data
+public class BigStorageQueryVO {
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private String engineerId;
+
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java
new file mode 100644
index 0000000..68793aa
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java
@@ -0,0 +1,60 @@
+package com.mes.bigstorage.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.base.entity.vo.BigStorageVO;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.entity.dto.*;
+import com.mes.bigstorage.entity.vo.BigStorageQueryVO;
+import com.mes.bigstoragetask.entity.UpdateBigStorageCageDTO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface BigStorageCageDetailsMapper extends MPJBaseMapper<BigStorageCageDetails> {
+
+    /**
+     * 鑾峰彇閽㈠寲鐗堝浘宸茬粡鍒伴綈鐨勫伐绋嬪彿鍙婄増鍥緄d
+     *
+     * @return
+     */
+    List<TemperingLayoutDTO> temperingIsAll();
+
+    /**
+     * 鑾峰彇姣忎釜閽㈠寲鐗堝浘鍗犵敤鐨勬牸瀛愭暟閲�
+     *
+     * @return
+     */
+    List<TemperingLayoutDTO> queryTemperingOccupySlot(@Param(value = "count") int count);
+
+
+    List<SlotSequenceDTO> queryGlassMaxAndMin(@Param(value = "engineerId") String engineerId, @Param(value = "temperingLayoutId") Integer temperingLayoutId);
+
+    /**
+     * 鎸夌収鐜荤拑id鍜岀洰鏍囨牸瀛愭洿鏂扮鍐呯幓鐠冧俊鎭�
+     *
+     * @param glassList
+     * @param state
+     */
+    void updateBySlot(@Param(value = "list") List<UpdateBigStorageCageDTO> glassList, @Param(value = "state") int state);
+
+    List<TemperingGlassCountDTO> selectTemperingGlassCount(int isTempering);
+
+    List<BigStorageRelationDTO> queryIsAllNeedDispatchVirtualSlot();
+
+    List<BigStorageSequenceDTO> queryNeedDispatchSlot(BigStorageRelationDTO bigStorageRelationDTO);
+
+    List<GlassInfoLackDTO> queryLackGlassInfo(BigStorageQueryVO bigStorageQueryVO);
+
+    void updateDeviceIdBySlot(@Param("list") List<Integer> slotList);
+
+    List<BigStorageVO> querybigStorageCageDetail();
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java
new file mode 100644
index 0000000..5db80cd
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java
@@ -0,0 +1,28 @@
+package com.mes.bigstorage.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.bigstorage.entity.BigStorageCage;
+import com.mes.bigstorage.entity.dto.BigStorageSummaryDTO;
+import com.mes.largenscreen.entity.PieChartVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface BigStorageCageMapper extends MPJBaseMapper<BigStorageCage> {
+
+    List<Integer> queryFreeDeviceByUsed(@Param(value = "thickness") double thickness);
+
+    List<BigStorageSummaryDTO> selectBigStorageSummary();
+
+    List<PieChartVO> queryPieChart();
+//
+//    List<Integer> queryFreeDeviceByNotUsed(@Param(value = "thickness") double thickness);
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageGlassInfoMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageGlassInfoMapper.java
new file mode 100644
index 0000000..5516c61
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageGlassInfoMapper.java
@@ -0,0 +1,15 @@
+package com.mes.bigstorage.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.bigstorage.entity.BigStorageGlassInfo;
+
+/**
+ * (BigStorageGlassInfo)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author makejava
+ * @since 2024-11-24 10:15:34
+ */
+public interface BigStorageGlassInfoMapper extends BaseMapper<BigStorageGlassInfo> {
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageGlassRelationInfoMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageGlassRelationInfoMapper.java
new file mode 100644
index 0000000..2d86be6
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageGlassRelationInfoMapper.java
@@ -0,0 +1,19 @@
+package com.mes.bigstorage.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.bigstorage.entity.BigStorageGlassRelationInfo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * (BigStorageGlassRelationInfo)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author makejava
+ * @since 2024-11-24 10:17:43
+ */
+public interface BigStorageGlassRelationInfoMapper extends BaseMapper<BigStorageGlassRelationInfo> {
+
+    List<String> queryNeedOutGlassId(@Param("engineerId") String engineerId, @Param("temperingLayoutId") Integer temperingLayoutId, @Param("temperingFeedSequence") Integer temperingFeedSequence);
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java
new file mode 100644
index 0000000..098362d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java
@@ -0,0 +1,119 @@
+package com.mes.bigstorage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.base.entity.vo.BigStorageVO;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.entity.dto.*;
+import com.mes.bigstorage.entity.vo.BigStorageQueryVO;
+import com.mes.bigstoragetask.entity.UpdateBigStorageCageDTO;
+import com.mes.glassinfo.entity.GlassInfo;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface BigStorageCageDetailsService extends IService<BigStorageCageDetails> {
+
+    List<BigStorageCageDetails> selectFeedTask();
+
+    List<BigStorageCageDetails> selectOutTask();
+
+    double selectGetBoard(String plcFeedReqLine);
+
+    void deleteBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails);
+
+    void damageBigStorageCageDetails(String glassId, int status);
+
+    List<BigStorageCageDetails> selectBigStorageCageDetails(String glassId);
+
+    void insertBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails);
+
+    void finishBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails);
+
+    void outBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails);
+
+    /**
+     * 鎸夌収鐗堝浘淇℃伅鑾峰彇杩涚墖绗煎瓙淇℃伅
+     *
+     * @param glassInfo
+     */
+    BigStorageDTO queryTargetSlotByTempering(GlassInfo glassInfo);
+
+    /**
+     * 鑾峰彇閽㈠寲鐗堝浘宸茬粡鍒伴綈鐨勫伐绋嬪彿鍙婄増鍥緄d
+     *
+     * @return
+     */
+    List<TemperingLayoutDTO> temperingIsAll();
+
+    /**
+     * 鑾峰彇姣忎釜閽㈠寲鐗堝浘鍗犵敤鐨勬牸瀛愭暟閲�
+     *
+     * @return
+     */
+    List<TemperingLayoutDTO> queryTemperingOccupySlot();
+
+    /**
+     * 鑾峰彇鐗堝浘姣忎釜鏍煎瓙鐨勬渶澶ф渶灏忓簭鍙�
+     *
+     * @param engineerId
+     * @param temperingLayoutId
+     * @return
+     */
+    List<SlotSequenceDTO> queryGlassMaxAndMin(String engineerId, Integer temperingLayoutId);
+
+    boolean temperingGlass(String temperingLayoutId, String engineerId, String temperingFeedSequence);
+
+    List<TemperingGlassCountDTO> selectTemperingGlass(int isTempering);
+
+    void updateBySlot(List<UpdateBigStorageCageDTO> glassList, int state);
+
+    String temperingSwitch(Boolean flag);
+
+    boolean appointTemperingEngineerId(String engineerId);
+
+    List<BigStorageRelationDTO> queryIsAllNeedDispatchVirtualSlot();
+
+    List<BigStorageSequenceDTO> dispatchBigStorageGlassInfo(BigStorageRelationDTO bigStorageRelationDTO);
+
+    String dispatchSwitch(Boolean flag);
+
+    /**
+     * 鎸夌収宸ョ▼淇℃伅鍙婇挗鍖杋d(鐐夊彿)鑾峰彇缂哄皯鐨勭幓鐠冧俊鎭�
+     * @param bigStorageQueryVO
+     * @return
+     */
+    List<GlassInfoLackDTO> queryLackGlassInfo(BigStorageQueryVO bigStorageQueryVO);
+
+    String bigStorageGlassDamageByGlassId(String glassId);
+
+    /**
+     * 鎸夌収鏍煎瓙鍙锋洿鏂拌鎯呰〃鍐呯殑鏍煎瓙瀵瑰簲鐨勮澶噄d
+     * @param slotList
+     */
+    void updateDeviceIdBySlot(List<Integer> slotList);
+
+    /**
+     * 鎸夌収宸ョ▼淇℃伅鍙婇挗鍖杋d(鐐夊彿)鑾峰彇瀹為檯绗煎唴鐨勭幓鐠冧俊鎭�
+     *
+     * @param bigStorageQueryVO
+     * @return
+     */
+    List<BigStorageCageDetails> queryRealGlassInfo(BigStorageQueryVO bigStorageQueryVO);
+
+    Map<Integer, List<BigStorageVO>> querybigStorageCageDetail();
+
+    /**
+     * 鍙栨秷閽㈠寲浠诲姟
+     *
+     * @return
+     */
+    boolean cancelTemperingTask();
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
new file mode 100644
index 0000000..4fc5b37
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
@@ -0,0 +1,53 @@
+package com.mes.bigstorage.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.mes.bigstorage.entity.BigStorageCage;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.entity.dto.BigStorageAndDetailsDTO;
+import com.mes.bigstorage.entity.dto.BigStorageSummaryDTO;
+import com.mes.bigstorage.entity.vo.BigStorageDetailsQueryVO;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.largenscreen.entity.PieChartVO;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface BigStorageCageService extends MPJBaseService<BigStorageCage> {
+
+    void updateRemainWidth(int slot);
+
+    BigStorageCageDetails feedGlass(GlassInfo glassInfo, BigStorageCageDetails bigStorageCageDetails);
+
+    boolean outGlass();
+    /**
+     * 鎸夌収鏌ヨ鏉′欢锛堣澶噄d銆佹祦绋嬪崱銆佽啘绯伙級鑾峰彇璁惧瀵瑰簲鐨勭瀛愮幓鐠冧俊鎭�
+     * @return
+     */
+    List<BigStorageAndDetailsDTO> querybigStorageCageDetail(BigStorageDetailsQueryVO query);
+
+    List<BigStorageCage> querybigStorageCageDetailAll();
+
+    Map<Integer, List<BigStorageCage>> querybigStorageCageDetail();
+
+    List<Map<String, Object>> selectBigStorageCageUsage();
+
+    void updateStorageCageDisabled(int slot, int enableState);
+
+    List<Integer> queryFreeDeviceByUsed(double thickness);
+
+    List<BigStorageSummaryDTO> selectBigStorageSummary();
+
+    Boolean resetCage();
+
+    List<PieChartVO> queryPieChart();
+
+//    List<Integer> queryFreeDeviceByNotUsed(double thickness);
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageGlassInfoService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageGlassInfoService.java
new file mode 100644
index 0000000..6464aad
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageGlassInfoService.java
@@ -0,0 +1,35 @@
+package com.mes.bigstorage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.bigstorage.entity.BigStorageGlassInfo;
+import com.mes.bigstorage.entity.dto.BigStorageDTO;
+
+/**
+ * (BigStorageGlassInfo)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author makejava
+ * @since 2024-11-24 10:15:35
+ */
+public interface BigStorageGlassInfoService extends IService<BigStorageGlassInfo> {
+
+    /**
+     * 鎸夌収鐜荤拑id鑾峰彇涓┖鐩爣鏍煎瓙
+     *
+     * @return
+     */
+    BigStorageDTO queryBigStorageTargetSlot(String engineerId, Integer temperingLayoutId, Integer temperingFeedSequence);
+
+    /**
+     * 鐢熸垚涓┖鐜荤拑淇℃伅
+     */
+    void generateBigStorageGlassInfo(String engineerId, int temperingLayoutId);
+
+    /**
+     * 鏍煎瓙閰嶅
+     *
+     * @param bigStorageGlassInfo
+     * @return
+     */
+    int bigStorageSlotPair(BigStorageGlassInfo bigStorageGlassInfo);
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageGlassRelationInfoService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageGlassRelationInfoService.java
new file mode 100644
index 0000000..da1456b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageGlassRelationInfoService.java
@@ -0,0 +1,18 @@
+package com.mes.bigstorage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.bigstorage.entity.BigStorageGlassRelationInfo;
+
+import java.util.List;
+
+/**
+ * (BigStorageGlassRelationInfo)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author makejava
+ * @since 2024-11-24 10:17:43
+ */
+public interface BigStorageGlassRelationInfoService extends IService<BigStorageGlassRelationInfo> {
+
+    List<String> queryNeedOutGlassId(String engineerId, Integer temperingLayoutId, Integer temperingFeedSequence);
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
new file mode 100644
index 0000000..b0aa717
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -0,0 +1,554 @@
+package com.mes.bigstorage.service.impl;
+
+import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.toolkit.JoinWrappers;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.google.common.collect.Lists;
+import com.mes.base.entity.vo.BigStorageVO;
+import com.mes.bigstorage.entity.BigStorageCage;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.entity.dto.*;
+import com.mes.bigstorage.entity.vo.BigStorageQueryVO;
+import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper;
+import com.mes.bigstorage.service.BigStorageCageDetailsService;
+import com.mes.bigstorage.service.BigStorageCageService;
+import com.mes.bigstoragecagetask.entity.BigStorageCageHistoryTask;
+import com.mes.bigstoragecagetask.service.BigStorageCageHistoryTaskService;
+import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
+import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
+import com.mes.bigstoragetask.entity.UpdateBigStorageCageDTO;
+import com.mes.bigstoragetask.mapper.BigStorageCageFeedTaskMapper;
+import com.mes.bigstoragetask.mapper.BigStorageCageOutTaskMapper;
+import com.mes.common.config.Const;
+import com.mes.common.config.ConstSysConfig;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.mapper.GlassInfoMapper;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.sysconfig.entity.SysConfig;
+import com.mes.sysconfig.service.SysConfigService;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
+import com.mes.utils.RedisUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Slf4j
+@Service
+public class BigStorageCageDetailsServiceImpl extends MPJBaseServiceImpl<BigStorageCageDetailsMapper, BigStorageCageDetails> implements BigStorageCageDetailsService {
+
+    @Resource
+    private BigStorageCageOutTaskMapper bigStorageCageOutTaskMapper;
+    @Resource
+    private BigStorageCageFeedTaskMapper bigStorageCageFeedTaskMapper;
+    @Resource
+    private TemperingGlassInfoMapper temperingGlassInfoMapper;
+    @Resource
+    private BigStorageCageService bigStorageCageService;
+    @Resource
+    private GlassInfoMapper glassInfoMapper;
+
+    @Resource
+    private GlassInfoService glassInfoService;
+
+    @Resource
+    private TemperingGlassInfoService temperingGlassInfoService;
+    @Resource
+    private SysConfigService sysConfigService;
+
+//    @Resource
+//    private PlcStorageCageTask plcStorageCageTask;
+
+    @Resource
+    private DamageService damageService;
+    @Resource
+    private RedisUtil redisUtil;
+
+    @Resource
+    BigStorageCageHistoryTaskService bigStorageCageHistoryTaskService;
+//
+//    @Value("${mes.minCount}")
+//    private int minCount;
+//
+//    @Value("${mes.slotWidth}")
+//    private Integer slotWidth;
+//
+//    @Value("${mes.glassGap}")
+//    private Integer glassGap;
+//
+//    @Value("${mes.sequence.order}")
+//    private boolean sequenceOrder;
+
+
+    @Override
+    public List<BigStorageCageDetails> selectFeedTask() {
+        //杩涚墖浠诲姟鏁版嵁
+        LambdaQueryWrapper<BigStorageCageDetails> feedWrapper = new LambdaQueryWrapper<>();
+        feedWrapper.eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW);
+        List<BigStorageCageDetails> bigStorageCageDetailsList = baseMapper.selectList(feedWrapper);
+
+        LambdaQueryWrapper<BigStorageCageFeedTask> feedTaskWrapper = new LambdaQueryWrapper<>();
+        feedTaskWrapper
+                .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
+                .isNotNull(BigStorageCageFeedTask::getTargetSlot);
+        List<BigStorageCageFeedTask> bigStorageCageFeedTaskList = bigStorageCageFeedTaskMapper.selectList(feedTaskWrapper);
+        Map<String, BigStorageCageFeedTask> listMap = bigStorageCageFeedTaskList.stream()
+                .collect(Collectors.toMap(BigStorageCageFeedTask::getGlassId, task -> task));
+        Iterator<BigStorageCageDetails> iterator = bigStorageCageDetailsList.iterator();
+        while (iterator.hasNext()) {
+            BigStorageCageDetails bigStorageCageDetails = iterator.next();
+            BigStorageCageFeedTask bigStorageCageFeedTask = listMap.get(bigStorageCageDetails.getGlassId());
+            bigStorageCageDetails.setBigStorageCageFeedTask(bigStorageCageFeedTask);
+        }
+        return bigStorageCageDetailsList;
+    }
+
+    @Override
+    public List<BigStorageCageDetails> selectOutTask() {
+        LambdaQueryWrapper<BigStorageCageDetails> outWrapper = new LambdaQueryWrapper<>();
+        outWrapper.in(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING, Const.GLASS_STATE_SCHEDULE_ING);
+        List<BigStorageCageDetails> bigStorageCageDetailsList = baseMapper.selectList(outWrapper);
+        LambdaQueryWrapper<BigStorageCageOutTask> outTaskWrapper = new LambdaQueryWrapper<>();
+        outTaskWrapper.lt(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_SUCCESS);
+        List<BigStorageCageOutTask> bigStorageCageOutTaskList = bigStorageCageOutTaskMapper.selectList(outTaskWrapper);
+
+        Map<String, BigStorageCageOutTask> listMap = bigStorageCageOutTaskList.stream()
+                .collect(Collectors.toMap(BigStorageCageOutTask::getGlassId, task -> task));
+        for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList) {
+            BigStorageCageOutTask bigStorageCageOutTask = listMap.get(bigStorageCageDetails.getGlassId());
+            bigStorageCageDetails.setBigStorageCageOutTask(bigStorageCageOutTask);
+        }
+        Iterator<BigStorageCageDetails> iterator = bigStorageCageDetailsList.iterator();
+        while (iterator.hasNext()) {
+            BigStorageCageDetails bigStorageCageDetails = iterator.next();
+            BigStorageCageOutTask bigStorageCageOutTask = listMap.get(bigStorageCageDetails.getGlassId());
+            bigStorageCageDetails.setBigStorageCageOutTask(bigStorageCageOutTask);
+        }
+        return bigStorageCageDetailsList;
+    }
+
+
+    /**
+     * 鍒ゆ柇褰撳墠鐜荤拑鏄惁鑳戒笂杞�
+     */
+    @Override
+    public double selectGetBoard(String plcFeedReqLine) {
+        double carWidth = 5000;
+        LambdaQueryWrapper<BigStorageCageDetails> feedWrapper = new LambdaQueryWrapper<>();
+        feedWrapper.eq(BigStorageCageDetails::getState, plcFeedReqLine);
+        List<BigStorageCageDetails> bigStorageCageDetailsList = baseMapper.selectList(feedWrapper);
+
+        LambdaQueryWrapper<BigStorageCageFeedTask> bigStorageCageFeedTaskWrapper = new LambdaQueryWrapper<>();
+        bigStorageCageFeedTaskWrapper
+                .eq(BigStorageCageFeedTask::getTaskState, plcFeedReqLine)
+                .eq(BigStorageCageFeedTask::getLine, plcFeedReqLine);
+
+        List<BigStorageCageFeedTask> bigStorageCageFeedTaskList = bigStorageCageFeedTaskMapper.selectList(bigStorageCageFeedTaskWrapper);
+        Map<String, BigStorageCageFeedTask> listMap = bigStorageCageFeedTaskList.stream()
+                .collect(Collectors.toMap(BigStorageCageFeedTask::getGlassId, task -> task));
+        for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList) {
+            BigStorageCageFeedTask bigStorageCageFeedTask = listMap.get(bigStorageCageDetails.getGlassId());
+            bigStorageCageDetails.setBigStorageCageFeedTask(bigStorageCageFeedTask);
+        }
+        for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList
+        ) {
+            if (bigStorageCageDetails.getBigStorageCageFeedTask().getTaskState() == 0) {
+                carWidth = carWidth - bigStorageCageDetails.getWidth() - 250;
+            }
+        }
+        return carWidth;
+
+    }
+
+
+    //鏍撻櫎鍑虹墖浠诲姟.鏇存柊鏍煎瓙瀹藉害
+    @Override
+    public void deleteBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails) {
+        baseMapper.deleteById(bigStorageCageDetails.getId());
+        bigStorageCageService.updateRemainWidth(bigStorageCageDetails.getSlot());
+    }
+
+    //鐞嗙墖绗艰鎯呯牬鎹�
+    @Override
+    public void damageBigStorageCageDetails(String glassId, int status) {
+
+        LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoWrapper = new LambdaQueryWrapper<>();
+        temperingGlassInfoWrapper.eq(TemperingGlassInfo::getGlassId, glassId);
+        TemperingGlassInfo temperingGlassInfo = temperingGlassInfoMapper.selectOne(temperingGlassInfoWrapper);
+
+        LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailsWrapper = new LambdaQueryWrapper<>();
+        bigStorageCageDetailsWrapper
+                .eq(BigStorageCageDetails::getGlassId, glassId)
+                .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN);
+        BigStorageCageDetails bigStorageCageDetails = baseMapper.selectOne(bigStorageCageDetailsWrapper);
+
+        if (temperingGlassInfo != null) {
+            if (status == 0) {
+                temperingGlassInfo.setState(Const.GLASS_STATE_DAMAGE);
+            } else {
+                temperingGlassInfo.setState(Const.GLASS_STATE_TAKE);
+            }
+            temperingGlassInfoMapper.updateById(temperingGlassInfo);
+        }
+        Damage damage = new Damage();
+        if (status == 0) {
+            bigStorageCageDetails.setState(Const.GLASS_STATE_DAMAGE);
+            damage.setType(Const.GLASS_STATE_DAMAGE);
+        } else {
+            bigStorageCageDetails.setState(Const.GLASS_STATE_TAKE);
+            damage.setType(Const.GLASS_STATE_TAKE);
+        }
+        baseMapper.updateById(bigStorageCageDetails);
+        bigStorageCageService.updateRemainWidth(bigStorageCageDetails.getSlot());
+        damage.setGlassId(bigStorageCageDetails.getGlassId());
+        damage.setWorkingProcedure("閽㈠寲");
+        damage.setLine(4001);
+        damage.setRemark("澶х悊鐗囩");
+        damage.setStatus(1);
+        damageService.insertDamage(damage);
+    }
+
+    //鏌ヨ鐜荤拑淇℃伅
+    @Override
+    public List<BigStorageCageDetails> selectBigStorageCageDetails(String glassId) {
+        LambdaQueryWrapper<GlassInfo> glassInfoWrapper = new LambdaQueryWrapper<>();
+        List<BigStorageCageDetails> bigStorageCageDetailsList = new ArrayList<>();
+        glassInfoWrapper.eq(GlassInfo::getGlassId, glassId);
+        GlassInfo glassInfo = glassInfoMapper.selectOne(glassInfoWrapper);
+        BigStorageCageDetails bigStorageCageDetails = new BigStorageCageDetails();
+        if (glassInfo != null) {
+            BeanUtils.copyProperties(glassInfo, bigStorageCageDetails);
+            bigStorageCageDetails.setState(1);
+            bigStorageCageDetails.setGap(250);
+            bigStorageCageDetailsList = new ArrayList<>();
+            bigStorageCageDetailsList.add(bigStorageCageDetails);
+        }
+        return bigStorageCageDetailsList;
+    }
+
+    //鐞嗙墖绗艰鎯呮坊鍔�
+    @Override
+    public void insertBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails) {
+        bigStorageCageDetails.setState(100);
+        baseMapper.insert(bigStorageCageDetails);
+        bigStorageCageService.updateRemainWidth(bigStorageCageDetails.getSlot());
+    }
+
+    //鐞嗙墖绗艰鎯呭畬鎴�
+    @Override
+    public void finishBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails) {
+//        if (bigStorageCageDetails.getBigStorageCageFeedTask() != null) {
+//            bigStorageCageDetails.setState(Const.BIG_STORAGE_INSIDE);
+//            baseMapper.updateById(bigStorageCageDetails);
+//        } else {
+//            bigStorageCageDetails.setState(Const.BIG_STORAGE_OUTSIDE);
+//            baseMapper.updateById(bigStorageCageDetails);
+//            bigStorageCageService.updateRemainWidth(bigStorageCageDetails.getSlot());
+//        }
+    }
+
+    //鎵嬪姩鍑虹墖
+    @Override
+    public void outBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails) {
+        bigStorageCageDetails.setState(Const.GLASS_STATE_ARTIFICIAL);
+        baseMapper.updateById(bigStorageCageDetails);
+    }
+
+    @Override
+    public BigStorageDTO queryTargetSlotByTempering(GlassInfo glassInfo) {
+        BigStorageDTO bigStorageDTO = null;
+        int slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
+        MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>(BigStorageCage.class)
+                .selectAll(BigStorageCage.class)
+                .leftJoin(BigStorageCageDetails.class, BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
+                .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+                .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
+                .eq(BigStorageCageDetails::getEngineerId, glassInfo.getEngineerId())
+                .eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
+                .gt(BigStorageCage::getRemainWidth, Math.max(glassInfo.getWidth(), glassInfo.getHeight()))
+                .last("limit 1");
+        if (glassInfo.getTemperingLayoutId() == 0) {
+            wrapper.eq(BigStorageCageDetails::getFlowCardId, glassInfo.getFlowCardId())
+                    .eq(BigStorageCageDetails::getLayer, glassInfo.getLayer());
+//            wrapper.eq(BigStorageCageDetails::getWidth, glassInfo.getWidth()).eq(BigStorageCageDetails::getHeight, glassInfo.getHeight());
+        } else {
+            wrapper.eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() - 1);
+        }
+        BigStorageCage bigStorageCage = bigStorageCageService.selectJoinOne(BigStorageCage.class, wrapper);
+        if (null != bigStorageCage) {
+            log.info("鏃犻挗鍖栫増鍥緄d鎴栨牴鎹綋鍓嶇幓鐠冪墖搴�+1鎵惧埌鐩爣鏍煎瓙锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
+            bigStorageDTO = new BigStorageDTO();
+            bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+            bigStorageDTO.setSlot(bigStorageCage.getSlot());
+            bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+            return bigStorageDTO;
+        }
+        bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+                .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+                .eq(BigStorageCage::getRemainWidth, slotWidth).orderByAsc(BigStorageCage::getSlot)
+//                .notInSql(BigStorageCage::getSlot, "select distinct slot from big_storage_cage_details where state = 0")
+                .inSql(BigStorageCage::getDeviceId,
+                        "select distinct device_id from big_storage_cage_details where engineer_id = '" + glassInfo.getEngineerId() + "' and tempering_layout_id = " + glassInfo.getTemperingLayoutId())
+                .last("limit 1"));
+        if (null != bigStorageCage) {
+            log.info("鏍规嵁鐗堝浘id鎵惧埌绗煎瓙鍐呯殑鐩爣鏍煎瓙锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
+            bigStorageDTO = new BigStorageDTO();
+            bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+            bigStorageDTO.setSlot(bigStorageCage.getSlot());
+            bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+            return bigStorageDTO;
+        }
+
+        //鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨 鍥犱负瀛愭煡璇㈡帓搴忓涓籹ql鏃犲奖鍝嶏紝鎵�浠ュ厛鎵ц瀛愭煡璇㈣幏鍙栭『搴忥紝鐒跺悗涓�娆″幓鏌ヨ
+        List<Integer> deviceUsedList = bigStorageCageService.queryFreeDeviceByUsed(glassInfo.getThickness());
+        List<Integer> deviceUseds = bigStorageCageService.queryFreeDeviceByUsed(glassInfo.getThickness());
+        List<BigStorageCageDetails> engineerCount1 = baseMapper.selectList(
+                new LambdaQueryWrapper<BigStorageCageDetails>()
+                        .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
+                        .select(BigStorageCageDetails::getEngineerId)
+                        .groupBy(BigStorageCageDetails::getEngineerId)
+                        .between(BigStorageCageDetails::getDeviceId, 1, 5)
+        );
+        List<BigStorageCageDetails> engineerCount2 = baseMapper.selectList(
+                new LambdaQueryWrapper<BigStorageCageDetails>()
+                        .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
+                        .select(BigStorageCageDetails::getEngineerId)
+                        .groupBy(BigStorageCageDetails::getEngineerId)
+                        .between(BigStorageCageDetails::getDeviceId, 6, 8)
+        );
+        if (engineerCount1.size() > engineerCount2.size()) {
+            deviceUsedList.removeIf(device -> device < 6);
+        } else {
+            deviceUsedList.removeIf(device -> device > 5);
+        }
+        if (CollectionUtils.isEmpty(deviceUsedList)) {
+            deviceUsedList = deviceUseds;
+        }
+        for (Integer item : deviceUsedList) {
+            bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+                    .eq(BigStorageCage::getRemainWidth, slotWidth).orderByAsc(BigStorageCage::getSlot)
+                    .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+                    .eq(BigStorageCage::getDeviceId, item)
+                    .last("limit 1"));
+            if (null != bigStorageCage) {
+                log.info("鎸夌収瀛樼鐜荤拑鏍煎瓙鏁板崰鐢ㄦ渶灏戞柟寮忚幏鍙栦俊鎭牸瀛愪负锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
+                bigStorageDTO = new BigStorageDTO();
+                bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+                bigStorageDTO.setSlot(bigStorageCage.getSlot());
+                bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+                return bigStorageDTO;
+            }
+        }
+
+        //鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨
+//        List<Integer> deviceNotUsedList = bigStorageCageService.queryFreeDeviceByNotUsed(glassInfo.getThickness());
+//        for (Integer item : deviceNotUsedList) {
+//            bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+//                    .eq(BigStorageCage::getRemainWidth, slotWidth)
+//                    .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+//                    .eq(BigStorageCage::getDeviceId, item)
+//                    .last("limit 1"));
+//            if (null != bigStorageCage) {
+//                log.info("鎸夌収瀛樼鐜荤拑鏍煎瓙鏁板墿浣欐渶澶氬緱鏂瑰紡鑾峰彇淇℃伅鐗堝浘id:{},鏍煎瓙锛歿},鐜荤拑id锛歿}", glassInfo.getTemperingLayoutId(), bigStorageCage.getSlot(), glassInfo.getGlassId());
+//                bigStorageDTO = new BigStorageDTO();
+//                bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+//                bigStorageDTO.setSlot(bigStorageCage.getSlot());
+//                bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+//                return bigStorageDTO;
+//            }
+//        }
+        Assert.isTrue(null != bigStorageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�");
+        return bigStorageDTO;
+    }
+
+    @Override
+    public List<TemperingLayoutDTO> temperingIsAll() {
+        return baseMapper.temperingIsAll();
+    }
+
+
+    @Override
+    public List<TemperingLayoutDTO> queryTemperingOccupySlot() {
+        return baseMapper.queryTemperingOccupySlot(10);
+    }
+
+    @Override
+    public List<SlotSequenceDTO> queryGlassMaxAndMin(String engineerId, Integer temperingLayoutId) {
+        return baseMapper.queryGlassMaxAndMin(engineerId, temperingLayoutId);
+    }
+
+    @Override
+    public boolean temperingGlass(String temperingLayoutId, String engineerId, String temperingFeedSequence) {
+        LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        SysConfig sysConfig = sysConfigService.queryConfigById(ConstSysConfig.CACHE_SEQUENCE_ORDER_TRUE);
+        boolean sequenceOrder = Boolean.parseBoolean(sysConfig.getConfigValue());
+        temperingGlassInfoLambdaQueryWrapper
+                .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW);
+        List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoMapper.selectList(temperingGlassInfoLambdaQueryWrapper);
+
+        if (temperingGlassInfoList.size() == 0) {
+            List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, JoinWrappers.lambda(GlassInfo.class)
+                    .select("-1 as state,t.filmsid as films_id,t.glass_id,t.flow_card_id,t.glass_type,t.width,t.height" +
+                            ",t.thickness,t.ishorizontal,t.tempering_layout_id,t.tempering_feed_sequence,t.x_coordinate,t.y_coordinate," +
+                            "t.angle,t1.slot,t.engineer_id")
+                    .innerJoin(BigStorageCageDetails.class, BigStorageCageDetails::getGlassId, GlassInfo::getGlassId)
+                    .eq(GlassInfo::getTemperingLayoutId, temperingLayoutId)
+                    .eq(GlassInfo::getEngineerId, engineerId)
+                    .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                    .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence));
+            if (CollectionUtils.isNotEmpty(temperingGlassInfos)) {
+                if ("0".equals(temperingFeedSequence)) {
+                    if (CollectionUtils.isNotEmpty(temperingGlassInfos)) {
+//                        plcStorageCageTask.computeOutMoreGlassInfo(temperingGlassInfos, Boolean.FALSE, "");
+                    }
+                } else {
+                    temperingGlassInfoService.saveBatch(temperingGlassInfos);
+                }
+                return true;
+            }
+        }
+        return false;
+    }
+
+
+    @Override
+    public List<TemperingGlassCountDTO> selectTemperingGlass(int isTempering) {
+        return baseMapper.selectTemperingGlassCount(isTempering);
+    }
+
+    @Override
+    public void updateBySlot(List<UpdateBigStorageCageDTO> glassList, int state) {
+        baseMapper.updateBySlot(glassList, state);
+    }
+
+    @Override
+    public String dispatchSwitch(Boolean flag) {
+        redisUtil.setCacheObject("dispatchSwitch", flag);
+        return "success";
+    }
+
+    @Override
+    public List<GlassInfoLackDTO> queryLackGlassInfo(BigStorageQueryVO bigStorageQueryVO) {
+        return baseMapper.queryLackGlassInfo(bigStorageQueryVO);
+    }
+
+    @Override
+    public List<BigStorageCageDetails> queryRealGlassInfo(BigStorageQueryVO bigStorageQueryVO) {
+        return this.list(new LambdaQueryWrapper<BigStorageCageDetails>()
+                .eq(BigStorageCageDetails::getEngineerId, bigStorageQueryVO.getEngineerId())
+                .eq(BigStorageCageDetails::getTemperingLayoutId, bigStorageQueryVO.getTemperingLayoutId())
+                .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL).orderByAsc(BigStorageCageDetails::getTemperingFeedSequence));
+    }
+
+    @Override
+    public Map<Integer, List<BigStorageVO>> querybigStorageCageDetail() {
+        List<BigStorageVO> bigStorageCages = baseMapper.querybigStorageCageDetail();
+        return bigStorageCages.stream().collect(Collectors.groupingBy(item -> item.getDeviceId()));
+    }
+
+    @Override
+    public boolean cancelTemperingTask() {
+        //褰撳墠姝e湪鎵ц鐨勫嚭鐗囦换鍔�
+        List<BigStorageCageHistoryTask> historyTaskList = bigStorageCageHistoryTaskService.list(new LambdaQueryWrapper<BigStorageCageHistoryTask>()
+                .eq(BigStorageCageHistoryTask::getTaskState, Const.GLASS_STATE_NEW)
+                .eq(BigStorageCageHistoryTask::getTargetSlot, Const.TEMPERING_OUT_TARGET_POSITION));
+        //涓嶅瓨鍦ㄥ嚭鐗囦换鍔★紝鐩存帴鍒犻櫎閽㈠寲灏忕墖琛ㄦ湭鍑虹墖鐨勪换鍔�
+        if (CollectionUtils.isEmpty(historyTaskList)) {
+            temperingGlassInfoMapper.delete(new LambdaQueryWrapper<TemperingGlassInfo>().eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW));
+            return Boolean.TRUE;
+        }
+        //瀛樺湪鍑虹墖浠诲姟锛屽垹闄ら挗鍖栧皬鐗囪〃
+        List<String> glassIdList = historyTaskList.stream().map(BigStorageCageHistoryTask::getGlassId).collect(Collectors.toList());
+        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().in(GlassInfo::getGlassId, glassIdList)
+                .orderByDesc(GlassInfo::getTemperingFeedSequence).last("limit 1"));
+        temperingGlassInfoMapper.delete(new LambdaQueryWrapper<TemperingGlassInfo>()
+                .eq(TemperingGlassInfo::getEngineerId, glassInfo.getEngineerId())
+                .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW)
+                .ge(TemperingGlassInfo::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
+                .gt(TemperingGlassInfo::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence())
+        );
+        return Boolean.TRUE;
+    }
+
+    @Override
+    public String temperingSwitch(Boolean flag) {
+        redisUtil.setCacheObject("temperingSwitch", flag);
+        return "success";
+    }
+
+    @Override
+    public boolean appointTemperingEngineerId(String engineerId) {
+        LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        temperingGlassInfoLambdaQueryWrapper
+                .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW);
+        List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoMapper.selectList(temperingGlassInfoLambdaQueryWrapper);
+
+        if (temperingGlassInfoList.size() == 0) {
+            List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, JoinWrappers.lambda(GlassInfo.class)
+                    .select("-1 as state,t.filmsid as films_id,t.glass_id,t.flow_card_id,t.glass_type,t.width,t.height" +
+                            ",t.thickness,t.ishorizontal,t.tempering_layout_id,t.tempering_feed_sequence,t.x_coordinate,t.y_coordinate," +
+                            "t.angle,t1.slot,t.engineer_id")
+                    .innerJoin(BigStorageCageDetails.class, BigStorageCageDetails::getGlassId, GlassInfo::getGlassId)
+                    .eq(GlassInfo::getEngineerId, engineerId)
+                    .ne(GlassInfo::getTemperingLayoutId, 0)
+                    .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                    .orderByAsc(BigStorageCageDetails::getTemperingLayoutId)
+                    .orderByAsc(BigStorageCageDetails::getTemperingFeedSequence)
+            );
+            if (CollectionUtils.isNotEmpty(temperingGlassInfos)) {
+                //閬垮厤澶ч噺鏁版嵁鎻掑叆瀵艰嚧sqlserver鏁版嵁搴撳紓甯革紝鍒嗘壒娆℃瘡璋冨瓨鍌ㄤ緷娆�
+                List<List<TemperingGlassInfo>> temperingGlassInfoLists = Lists.partition(temperingGlassInfos, 50);
+                for (List<TemperingGlassInfo> item : temperingGlassInfoLists) {
+                    temperingGlassInfoService.saveBatch(item);
+                }
+                return true;
+            }
+        }
+        return false;
+    }
+
+    @Override
+    public List<BigStorageRelationDTO> queryIsAllNeedDispatchVirtualSlot() {
+        return baseMapper.queryIsAllNeedDispatchVirtualSlot();
+    }
+
+    @Override
+    public List<BigStorageSequenceDTO> dispatchBigStorageGlassInfo(BigStorageRelationDTO bigStorageRelationDTO) {
+        return baseMapper.queryNeedDispatchSlot(bigStorageRelationDTO);
+    }
+
+    @Override
+    public String bigStorageGlassDamageByGlassId(String glassId) {
+        Damage damage = new Damage();
+        damage.setGlassId(glassId);
+        damage.setType(Const.GLASS_STATE_DAMAGE);
+        damageService.insertDamage(damage);
+        return "success";
+    }
+
+    @Override
+    public void updateDeviceIdBySlot(List<Integer> slotList) {
+        baseMapper.updateDeviceIdBySlot(slotList);
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
new file mode 100644
index 0000000..c1c8415
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
@@ -0,0 +1,336 @@
+package com.mes.bigstorage.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.bigstorage.entity.BigStorageCage;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.entity.dto.BigStorageAndDetailsDTO;
+import com.mes.bigstorage.entity.dto.BigStorageSummaryDTO;
+import com.mes.bigstorage.entity.vo.BigStorageDetailsQueryVO;
+import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper;
+import com.mes.bigstorage.mapper.BigStorageCageMapper;
+import com.mes.bigstorage.service.BigStorageCageService;
+import com.mes.common.config.Const;
+import com.mes.common.config.ConstSysConfig;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.largenscreen.entity.PieChartVO;
+import com.mes.sysconfig.service.SysConfigService;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Service
+@Slf4j
+public class BigStorageCageServiceImpl extends MPJBaseServiceImpl<BigStorageCageMapper, BigStorageCage> implements BigStorageCageService {
+    @Resource
+    private BigStorageCageMapper bigStorageCageMapper;
+
+    @Resource
+    private BigStorageCageDetailsMapper bigStorageCageDetailsMapper;
+
+    @Resource
+    private TemperingGlassInfoService temperingGlassInfoService;
+
+    @Resource
+    private GlassInfoService glassInfoService;
+    @Resource
+    private SysConfigService sysConfigService;
+
+//    @Value("${mes.glassGap}")
+//    private Integer glassGap;
+//
+//    @Value("${mes.slotWidth}")
+//    private Integer slotWidth;
+
+    //杩涚墖閫昏緫
+    @Override
+    public BigStorageCageDetails feedGlass(GlassInfo glassInfo, BigStorageCageDetails bigStorageCageDetails) {
+        BeanUtils.copyProperties(glassInfo, bigStorageCageDetails);
+        //鐜荤拑涓嶉挗鍖栨椂
+        if (glassInfo.getTemperingLayoutId() == null) {
+
+            BigStorageCage bigStorageCage = baseMapper.selectJoinOne(BigStorageCage.class, new MPJLambdaWrapper<BigStorageCage>()
+                    .selectAll(BigStorageCage.class)
+                    .leftJoin(BigStorageCageDetails.class, on -> on
+                            .eq(BigStorageCage::getDeviceId, BigStorageCageDetails::getDeviceId)
+                            .eq(BigStorageCage::getSlot, BigStorageCageDetails::getSlot))
+                    .isNull(BigStorageCageDetails::getTemperingLayoutId)
+                    .gt(BigStorageCage::getRemainWidth, 2000)
+                    .orderByAsc(BigStorageCage::getDeviceId, BigStorageCage::getSlot)
+                    .last("limit 1")
+            );
+
+            if (bigStorageCage.getSlot() != null) {
+                bigStorageCageDetails.setSlot(bigStorageCage.getSlot());
+                bigStorageCageDetails.setDeviceId(bigStorageCage.getDeviceId());
+            }
+        } else {
+            //鐜荤拑閽㈠寲鏃�
+            BigStorageCage bigStorageCage = new BigStorageCage();
+
+            bigStorageCage = baseMapper.selectJoinOne(BigStorageCage.class, new MPJLambdaWrapper<BigStorageCage>()
+                    .selectAll(BigStorageCage.class)
+                    .leftJoin(BigStorageCageDetails.class, on -> on
+                            .eq(BigStorageCage::getDeviceId, BigStorageCageDetails::getDeviceId)
+                            .eq(BigStorageCage::getSlot, BigStorageCageDetails::getSlot))
+                    .eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
+                    .eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() - 1)
+                    .gt(BigStorageCage::getRemainWidth, glassInfo.getWidth())
+            );
+            log.info("1銆佹煡璇㈢悊鐗囩鍐呯墖搴�-1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠�" + bigStorageCage);
+
+            log.info("2銆佹煡璇㈢悊鐗囩鍐呯墖搴�-1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠冪殑缁撴灉涓嶄负绌烘椂" + bigStorageCage.getSlot());
+            if (bigStorageCage.getSlot() != null) {
+                bigStorageCageDetails.setSlot(bigStorageCage.getSlot());
+                bigStorageCageDetails.setDeviceId(bigStorageCage.getDeviceId());
+            } else {
+                log.info("3銆佹煡璇㈢悊鐗囩鍐呯墖搴�-1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠冪殑缁撴灉涓虹┖鏃惰幏鍙栧綋鍓嶇幓鐠冪増鍥緄d鏄惁瀛樺湪鐞嗙墖绗煎唴");
+
+                bigStorageCage = baseMapper.selectJoinOne(BigStorageCage.class, new MPJLambdaWrapper<BigStorageCage>()
+                        .selectAll(BigStorageCage.class)
+                        .leftJoin(BigStorageCageDetails.class, on -> on
+                                .eq(BigStorageCage::getDeviceId, BigStorageCageDetails::getDeviceId)
+                                .eq(BigStorageCage::getSlot, BigStorageCageDetails::getSlot))
+                        .eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
+                        .gt(BigStorageCage::getRemainWidth, glassInfo.getWidth())
+                );
+
+                if (bigStorageCage != null) {
+                    log.info("4銆佽幏鍙栫瀛愬唴閫傚悎鐨勬牸瀛�");
+                    BigStorageCage bigStorageCages = bigStorageCageSlot(bigStorageCage.getDeviceId());
+                    bigStorageCageDetails.setSlot(bigStorageCages.getSlot());
+                    bigStorageCageDetails.setDeviceId(bigStorageCages.getDeviceId());
+                } else {
+                    log.info("5銆佽幏鍙栨瘡涓瀛愮増鍥緄d鐨勪釜鏁�");
+                    QueryWrapper<BigStorageCageDetails> queryWrapper = new QueryWrapper<>();
+                    queryWrapper.select("a.device_id", "COUNT(DISTINCT b.tempering_layout_id) AS layoutCount")
+                            .groupBy("a.device_id")
+                            .apply("LEFT JOIN (SELECT device_id, tempering_layout_id FROM big_storage_cage_details) b ON a.device_id = b.device_id AND a.slot = b.slot")
+                            .orderByAsc("layoutCount")
+                            .orderByAsc("a.device_id");
+                    List<Map<String, Object>> bigStorageCageDetailsCount = bigStorageCageDetailsMapper.selectMaps(queryWrapper);
+
+                    log.info("5銆佹煡璇㈢瀛愬唴鏄惁鏈夊悎閫傜殑鏍煎瓙");
+                    boolean found = false;
+                    for (Map<String, Object> map : bigStorageCageDetailsCount) {
+                        for (Map.Entry<String, Object> entry : map.entrySet()) {
+                            int deviceId = Integer.parseInt(entry.getKey());
+                            BigStorageCage bigStorageCages = bigStorageCageSlot(deviceId);
+                            if (bigStorageCage != null) {
+                                bigStorageCageDetails.setSlot(bigStorageCages.getSlot());
+                                bigStorageCageDetails.setDeviceId(deviceId);
+                                found = true;
+                                break;
+                            }
+                        }
+                        if (found) {
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+
+
+        if (bigStorageCageDetails.getSlot() != null) {
+            log.info("6銆佸綋鎵惧埌鍚堥�傜殑鏍煎瓙鏃舵坊鍔犵幓鐠冨埌绗煎瓙琛�");
+            bigStorageCageDetails.setState(0);
+            bigStorageCageDetailsMapper.insert(bigStorageCageDetails);
+            updateRemainWidth(bigStorageCageDetails.getSlot());
+        }
+        return bigStorageCageDetails;
+    }
+
+    //鑾峰彇绗煎瓙鍐呯殑绌烘牸瀛�
+    private BigStorageCage bigStorageCageSlot(Integer deviceId) {
+        LambdaQueryWrapper<BigStorageCage> bigStorageCageWrapper = new LambdaQueryWrapper<>();
+        bigStorageCageWrapper
+                .eq(BigStorageCage::getRemainWidth, "5000")
+                .eq(BigStorageCage::getEnableState, "0")
+                .eq(BigStorageCage::getDeviceId, deviceId)
+                .orderByAsc(BigStorageCage::getSlot)
+                .last("LIMIT 1");
+        return bigStorageCageMapper.selectOne(bigStorageCageWrapper);
+    }
+
+    //鍑虹墖閫昏緫
+    @Override
+    public boolean outGlass() {
+        LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoWrapper = new LambdaQueryWrapper<>();
+        temperingGlassInfoWrapper.eq(TemperingGlassInfo::getState, -1);
+        List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.list(temperingGlassInfoWrapper);
+        log.info("1銆佹煡璇㈤挗鍖栧皬鐗囦换鍔¤〃鏄惁鏈夊緟鍑虹幓鐠�" + temperingGlassInfoList.size());
+        if (temperingGlassInfoList.size() > 0) {
+            temperingGlassInfoService.addOutTask(temperingGlassInfoList);
+            log.info("2銆佹坊鍔犱换鍔″埌浠诲姟琛�");
+            return true;
+        } else {
+            log.info("3銆佹病鏈夊彲鍑虹殑鐜荤拑鏃惰幏鍙栨槸鍚︽湁灏忕墖鍒伴綈鐨勭増鍥�");
+
+            QueryWrapper<BigStorageCageDetails> wrapper = Wrappers.query();
+            wrapper.select("tempering_layout_id", "count(tempering_layout_id)")
+                    .groupBy("tempering_layout_id");
+            List<Map<String, Object>> temperingLayoutIdList = bigStorageCageDetailsMapper.selectMaps(wrapper);
+
+            boolean key = false;
+            for (Map<String, Object> row : temperingLayoutIdList) {
+                for (Map.Entry<String, Object> entry : row.entrySet()) {
+                    String temperingId = entry.getKey();
+                    Object temperingNo = entry.getValue();
+
+                    LambdaQueryWrapper<GlassInfo> glassInfoWrapper = new LambdaQueryWrapper<>();
+                    glassInfoWrapper.eq(GlassInfo::getTemperingLayoutId, temperingId)
+                            .orderByDesc(GlassInfo::getTemperingFeedSequence);
+                    List<GlassInfo> glassInfoList = glassInfoService.list(glassInfoWrapper);
+                    if (glassInfoList.size() == Integer.parseInt(temperingNo.toString())) {
+                        for (GlassInfo glassInfo : glassInfoList) {
+                            TemperingGlassInfo temperingGlassInfo = new TemperingGlassInfo();
+                            BeanUtils.copyProperties(glassInfo, temperingGlassInfo);
+                            temperingGlassInfoService.save(temperingGlassInfo);
+                        }
+                        key = true;
+                    }
+                    if (key) {
+                        return false;
+                    }
+                }
+            }
+        }
+        return false;
+    }
+
+    @Override
+    public List<BigStorageAndDetailsDTO> querybigStorageCageDetail(BigStorageDetailsQueryVO query) {
+        MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>();
+        wrapper.selectAll(BigStorageCage.class).selectCollection(BigStorageCageDetails.class, BigStorageCage::getBigStorageCageDetails)
+                .leftJoin(BigStorageCageDetails.class, on -> on.eq(BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
+                        .like(StringUtils.isNotBlank(query.getFilmsId()), BigStorageCageDetails::getFilmsId, query.getFilmsId())
+                        .like(StringUtils.isNotBlank(query.getFlowCardId()), BigStorageCageDetails::getFlowCardId, query.getFlowCardId())
+                        .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL, Const.GLASS_STATE_OUT_ING))
+//                .eq(BigStorageCage::getDeviceId, query.getDeviceId())
+                .orderByAsc(BigStorageCage::getDeviceId)
+                .orderByAsc(BigStorageCage::getSlot);
+        return bigStorageCageMapper.selectJoinList(BigStorageAndDetailsDTO.class, wrapper);
+    }
+
+    //璁$畻鏍煎瓙鍓╀綑瀹藉害
+    @Override
+    public void updateRemainWidth(int slot) {
+        log.info("鑾峰彇璇ユ牸瀛愬唴鐜荤拑淇℃伅锛岃绠楁牸瀛愬墿浣欏搴�");
+        double width = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
+        double glassGap = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_GLASS_GAP);
+        LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailsWrapper = new LambdaQueryWrapper();
+        bigStorageCageDetailsWrapper
+                .eq(BigStorageCageDetails::getSlot, slot)
+                .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL);
+
+        List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsMapper.selectList(bigStorageCageDetailsWrapper);
+        for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList
+        ) {
+            double widths = Math.max(bigStorageCageDetails.getWidth(), bigStorageCageDetails.getHeight());
+            width = width - widths - glassGap;
+        }
+        //淇敼鏍煎瓙鍓╀綑瀹藉害
+        BigStorageCage bigStorageCage = new BigStorageCage();
+        bigStorageCage.setRemainWidth((int) width);
+        UpdateWrapper<BigStorageCage> bigStorageCageWrapper = new UpdateWrapper<>();
+        bigStorageCageWrapper.eq("slot", slot);
+        bigStorageCageMapper.update(bigStorageCage, bigStorageCageWrapper);
+    }
+
+    //鏌ヨ澶х悊鐗囦俊鎭紝鍓嶇灞曠ず鐢�
+    @Override
+    public List<BigStorageCage> querybigStorageCageDetailAll() {
+        MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>();
+        wrapper.selectAll(BigStorageCage.class).selectCollection(BigStorageCageDetails.class, BigStorageCage::getBigStorageCageDetails)
+                .leftJoin(BigStorageCageDetails.class, on -> on.eq(BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
+                        .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL, Const.GLASS_STATE_OUT_ING))
+                .orderByAsc(BigStorageCage::getDeviceId)
+                .orderByAsc(BigStorageCage::getSlot);
+        return bigStorageCageMapper.selectJoinList(BigStorageCage.class, wrapper);
+    }
+
+    //鏌ヨ澶х悊鐗囦俊鎭紝鍓嶇灞曠ず鐢�
+    @Override
+    public Map<Integer, List<BigStorageCage>> querybigStorageCageDetail() {
+
+        MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>();
+        wrapper.selectAll(BigStorageCage.class).selectCollection(BigStorageCageDetails.class, BigStorageCage::getBigStorageCageDetails)
+                .leftJoin(BigStorageCageDetails.class, on -> on.eq(BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
+                        .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL).orderByAsc(BigStorageCageDetails::getUpdateTime));
+        List<BigStorageCage> bigStorageCages = bigStorageCageMapper.selectJoinList(BigStorageCage.class, wrapper);
+        Map<Integer, List<BigStorageCage>> listMap = bigStorageCages.stream().collect(Collectors.groupingBy(item -> item.getDeviceId()));
+        return listMap;
+    }
+
+    //绗煎瓙浣跨敤鎯呭喌锛岀晫闈㈠睍绀虹敤
+    @Override
+    public List<Map<String, Object>> selectBigStorageCageUsage() {
+        QueryWrapper<BigStorageCage> wrapper = new QueryWrapper<>();
+        double slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
+        wrapper.select("device_id,ROUND(1 - SUM(CASE WHEN remain_width = " + slotWidth + " THEN 1 ELSE 0 END) / COUNT(device_id), 2)*100 AS percentage,SUM(CASE WHEN remain_width = " + slotWidth + " THEN 1 ELSE 0 END) AS count")
+                .eq("enable_state", Const.SLOT_ON)
+                .groupBy("device_id");
+        List<Map<String, Object>> bigStorageCageUsages = baseMapper.selectMaps(wrapper);
+
+        return bigStorageCageUsages;
+    }
+
+    //绗煎瓙鐨勫惎鐢�/绂佺敤
+    @Override
+    public void updateStorageCageDisabled(int slot, int enableState) {
+        BigStorageCage bigStorageCage = new BigStorageCage();
+        bigStorageCage.setEnableState(enableState);
+        LambdaQueryWrapper<BigStorageCage> bigStorageCageWrapper = new LambdaQueryWrapper<>();
+        bigStorageCageWrapper.eq(BigStorageCage::getSlot, slot);
+        baseMapper.update(bigStorageCage, bigStorageCageWrapper);
+    }
+
+    @Override
+    public List<Integer> queryFreeDeviceByUsed(double thickness) {
+        return baseMapper.queryFreeDeviceByUsed(thickness);
+    }
+
+    @Override
+    public List<BigStorageSummaryDTO> selectBigStorageSummary() {
+        return baseMapper.selectBigStorageSummary();
+    }
+
+    @Override
+    public Boolean resetCage() {
+        double slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
+        bigStorageCageDetailsMapper.delete(Wrappers.<BigStorageCageDetails>lambdaQuery().eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW));
+        this.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, slotWidth)
+                .notInSql(BigStorageCage::getSlot, "select distinct slot from big_storage_cage_details where state in ( 100, 102, 103, 104)"));
+        return Boolean.TRUE;
+    }
+
+    @Override
+    public List<PieChartVO> queryPieChart() {
+        return baseMapper.queryPieChart();
+    }
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageGlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageGlassInfoServiceImpl.java
new file mode 100644
index 0000000..13340eb
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageGlassInfoServiceImpl.java
@@ -0,0 +1,218 @@
+package com.mes.bigstorage.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.bigstorage.entity.BigStorageCage;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.entity.BigStorageGlassInfo;
+import com.mes.bigstorage.entity.BigStorageGlassRelationInfo;
+import com.mes.bigstorage.entity.dto.BigStorageDTO;
+import com.mes.bigstorage.mapper.BigStorageGlassInfoMapper;
+import com.mes.bigstorage.service.BigStorageCageDetailsService;
+import com.mes.bigstorage.service.BigStorageCageService;
+import com.mes.bigstorage.service.BigStorageGlassInfoService;
+import com.mes.bigstorage.service.BigStorageGlassRelationInfoService;
+import com.mes.common.config.Const;
+import com.mes.common.config.ConstSysConfig;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.sysconfig.service.SysConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * (BigStorageGlassInfo)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author makejava
+ * @since 2024-11-24 10:15:35
+ */
+@Service
+@Slf4j
+public class BigStorageGlassInfoServiceImpl extends ServiceImpl<BigStorageGlassInfoMapper, BigStorageGlassInfo> implements BigStorageGlassInfoService {
+    @Resource
+    GlassInfoService glassInfoService;
+    @Resource
+    BigStorageCageService bigStorageCageService;
+    @Resource
+    BigStorageCageDetailsService bigStorageCageDetailsService;
+    @Resource
+    BigStorageGlassRelationInfoService bigStorageGlassRelationInfoService;
+    @Resource
+    SysConfigService sysConfigService;
+//    @Value("${mes.slotWidth}")
+//    private Integer slotWidth;
+//    @Value("${mes.glassGap}")
+//    private Integer glassGap;
+//    @Value("${mes.outCarMaxSize}")
+//    private Integer outCarMaxSize;
+
+    @Override
+    public BigStorageDTO queryBigStorageTargetSlot(String engineerId, Integer temperingLayoutId, Integer temperingFeedSequence) {
+        //鎸夌収鐜荤拑淇℃伅鑾峰彇鍏崇郴琛ㄦ槸鍚︽湁瀵瑰簲鐨勫叧绯�
+        BigStorageGlassRelationInfo relationInfoOne = bigStorageGlassRelationInfoService.getOne(new LambdaQueryWrapper<BigStorageGlassRelationInfo>()
+                .eq(BigStorageGlassRelationInfo::getEngineerId, engineerId)
+                .eq(BigStorageGlassRelationInfo::getTemperingLayoutId, temperingLayoutId)
+                .eq(BigStorageGlassRelationInfo::getTemperingFeedSequence, temperingFeedSequence)
+        );
+        if (relationInfoOne == null) {
+            //鐞嗙墖绗煎叧绯昏〃涓病鏈夊搴旂殑鏁版嵁锛屾煡鐪嬬悊鐗囩铏氭嫙浣嶇疆琛ㄦ槸鍚︽湁鏈伐绋嬩笅鐨勬墍鏈夌幓鐠冭櫄鎷熶俊鎭�
+            BigStorageGlassInfo bigStorageGlassInfo = this.getOne(new LambdaQueryWrapper<BigStorageGlassInfo>()
+                    .eq(BigStorageGlassInfo::getEngineerId, engineerId)
+                    .eq(BigStorageGlassInfo::getTemperingLayoutId, temperingLayoutId)
+                    .eq(BigStorageGlassInfo::getTemperingFeedSequence, temperingFeedSequence));
+            if (null == bigStorageGlassInfo) {
+                //铏氭嫙浣嶇疆琛ㄦ病鏈夋湰宸ョ▼涓嬬殑鎵�鏈夌幓鐠冭櫄鎷熶俊鎭紝鎸夌収鐜荤拑id鐢熸垚鏈伐绋嬩笅鎵�鏈夌幓鐠冪殑铏氭嫙淇℃伅
+                generateBigStorageGlassInfo(engineerId, temperingLayoutId);
+                bigStorageGlassInfo = this.getOne(new LambdaQueryWrapper<BigStorageGlassInfo>()
+                        .eq(BigStorageGlassInfo::getEngineerId, engineerId)
+                        .eq(BigStorageGlassInfo::getTemperingLayoutId, temperingLayoutId)
+                        .eq(BigStorageGlassInfo::getTemperingFeedSequence, temperingFeedSequence));
+            }
+            //鎸夌収铏氭嫙浣嶇疆鍜屽ぇ鐞嗙墖绗肩幇鏈夊彲鐢ㄦ牸瀛愮敓鎴愬叧绯昏〃
+            bigStorageSlotPair(bigStorageGlassInfo);
+            //鍏崇郴琛ㄨ幏鍙栧疄闄呬綅缃�
+            relationInfoOne = bigStorageGlassRelationInfoService.getOne(new LambdaQueryWrapper<BigStorageGlassRelationInfo>()
+                    .eq(BigStorageGlassRelationInfo::getEngineerId, engineerId)
+                    .eq(BigStorageGlassRelationInfo::getTemperingLayoutId, temperingLayoutId)
+                    .eq(BigStorageGlassRelationInfo::getTemperingFeedSequence, temperingFeedSequence));
+        }
+        Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
+        BigStorageCageDetails bigStorageCageDetails = bigStorageCageDetailsService.getOne(new LambdaQueryWrapper<BigStorageCageDetails>()
+                .eq(BigStorageCageDetails::getSlot, relationInfoOne.getSlot()).in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
+                .orderByDesc(BigStorageCageDetails::getSequence).last("limit 1"));
+        if (null == bigStorageCageDetails) {
+            BigStorageDTO storageDTO = new BigStorageDTO();
+            storageDTO.setDeviceId(relationInfoOne.getDeviceId());
+            storageDTO.setSlot(relationInfoOne.getSlot());
+            storageDTO.setSlotSequence(relationInfoOne.getSlotSequence());
+            storageDTO.setWidth(slotWidth);
+            return storageDTO;
+        }
+        BigStorageGlassRelationInfo relationInfoBefore = bigStorageGlassRelationInfoService.getOne(new LambdaQueryWrapper<BigStorageGlassRelationInfo>()
+                .eq(BigStorageGlassRelationInfo::getEngineerId, relationInfoOne.getEngineerId())
+                .eq(BigStorageGlassRelationInfo::getTemperingLayoutId, relationInfoOne.getTemperingLayoutId())
+                .eq(BigStorageGlassRelationInfo::getVirtualSlot, relationInfoOne.getVirtualSlot())
+                .eq(BigStorageGlassRelationInfo::getSlotSequence, relationInfoOne.getSlotSequence() - 1));
+        BigStorageCage storageCage = null;
+        if (null == relationInfoBefore) {
+            //琛ㄧず搴忓彿娌℃湁鎴栬��  搴忓彿涓�1鍙堜笉鏄涓�鍧楁潵鐨� 鏂板紑涓�鏍�
+            storageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+                    .eq(BigStorageCage::getEnableState, Const.SLOT_ON).eq(BigStorageCage::getRemainWidth, slotWidth)
+                    .le(BigStorageCage::getMinThickness, bigStorageCageDetails.getThickness())
+                    .ge(BigStorageCage::getMaxThickness, bigStorageCageDetails.getThickness())
+                    .orderByAsc(BigStorageCage::getMaxThickness)
+                    .orderByAsc(BigStorageCage::getSlot).last("limit 1"));
+        } else {
+            BigStorageCageDetails beforeGlass = bigStorageCageDetailsService.getOne(new LambdaQueryWrapper<BigStorageCageDetails>()
+                    .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
+                    .eq(BigStorageCageDetails::getEngineerId, relationInfoBefore.getEngineerId())
+                    .eq(BigStorageCageDetails::getTemperingLayoutId, relationInfoBefore.getTemperingLayoutId())
+                    .eq(BigStorageCageDetails::getTemperingFeedSequence, relationInfoBefore.getTemperingFeedSequence())
+            );
+            if (null == beforeGlass) {
+                storageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+                        .eq(BigStorageCage::getEnableState, Const.SLOT_ON).eq(BigStorageCage::getRemainWidth, slotWidth)
+                        .le(BigStorageCage::getMinThickness, bigStorageCageDetails.getThickness())
+                        .ge(BigStorageCage::getMaxThickness, bigStorageCageDetails.getThickness())
+                        .orderByAsc(BigStorageCage::getMaxThickness).orderByAsc(BigStorageCage::getSlot).last("limit 1"));
+            } else {
+                storageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+                        .eq(BigStorageCage::getEnableState, Const.SLOT_ON).eq(BigStorageCage::getSlot, beforeGlass.getSlot()));
+            }
+        }
+        Assert.isTrue(null != storageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�");
+        BigStorageDTO storageDTO = new BigStorageDTO();
+        storageDTO.setDeviceId(storageCage.getDeviceId());
+        storageDTO.setSlotSequence(relationInfoOne.getSlotSequence());
+        storageDTO.setSlot(storageCage.getSlot());
+        storageDTO.setWidth(storageCage.getRemainWidth());
+        return storageDTO;
+    }
+
+    @Override
+    public void generateBigStorageGlassInfo(String engineerId, int temperingLayoutId) {
+        List<BigStorageGlassInfo> list = this.list(new LambdaQueryWrapper<BigStorageGlassInfo>()
+                .eq(BigStorageGlassInfo::getEngineerId, engineerId).eq(BigStorageGlassInfo::getTemperingLayoutId, temperingLayoutId));
+        if (CollectionUtil.isNotEmpty(list)) {
+            return;
+        }
+        Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
+        Integer glassGap = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_GLASS_GAP);
+        Integer outCarMaxSize = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_OUT_CAR_SIZE);
+//        Engineering engineering = engineeringMapper.selectOne(new LambdaQueryWrapper<Engineering>()
+//                .eq(Engineering::getEngineerId, glassInfo.getEngineerId()));
+        //鑾峰彇鐜荤拑鐨勫伐绋媔d锛屾寜鐓у伐绋媔d鑾峰彇宸ョ▼涓嬬殑鎵�鏈夌幓鐠冧俊鎭�
+        List<GlassInfo> glassInfoList = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>()
+                .eq(GlassInfo::getEngineerId, engineerId)
+                .orderByAsc(GlassInfo::getTemperingLayoutId).orderByAsc(GlassInfo::getTemperingFeedSequence));
+        Map<Integer, List<GlassInfo>> trmperingIdMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getTemperingLayoutId));
+        List<BigStorageGlassInfo> bigStorageGlassInfoList = new ArrayList<>();
+        //鏂瑰紡涓�锛氬皢鐜荤拑鎸夌増鍥俱�佺増搴� 渚濇鐢熸垚铏氭嫙鏍煎瓙淇℃伅锛屾牸瀛愪竴鐩村線鍚庣疮鍔�
+        trmperingIdMap.forEach((e, v) -> {
+            int remainWidth = slotWidth;
+            int slotNumber = 1;
+            int slotSequence = 1;
+            for (GlassInfo item : v) {
+                int maxLength = (int) Math.max(item.getWidth(), item.getHeight());
+                if (remainWidth > maxLength && slotSequence <= outCarMaxSize) {
+                    remainWidth = remainWidth - maxLength - glassGap;
+                } else {
+                    slotNumber = slotNumber + 1;
+                    slotSequence = 1;
+                    remainWidth = slotWidth - maxLength - glassGap;
+                }
+                BigStorageGlassInfo bigStorage = new BigStorageGlassInfo();
+                BeanUtils.copyProperties(item, bigStorage);
+                bigStorage.setVirtualSlot(slotNumber);
+                bigStorage.setSlotSequence(slotSequence++);
+                bigStorage.setId(null);
+                bigStorageGlassInfoList.add(bigStorage);
+            }
+        });
+        this.saveBatch(bigStorageGlassInfoList);
+        log.info("鍒嗛厤瀹屾瘯");
+
+    }
+
+    @Override
+    public int bigStorageSlotPair(BigStorageGlassInfo bigStorageGlassInfo) {
+        //鑾峰彇鎵�鏈夌┖闂插彲鐢ㄧ殑鏍煎瓙鍙�
+        Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
+        BigStorageCage storageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+                .eq(BigStorageCage::getEnableState, Const.SLOT_ON).eq(BigStorageCage::getRemainWidth, slotWidth)
+                .le(BigStorageCage::getMinThickness, bigStorageGlassInfo.getThickness())
+                .ge(BigStorageCage::getMaxThickness, bigStorageGlassInfo.getThickness())
+                .orderByAsc(BigStorageCage::getMaxThickness).orderByAsc(BigStorageCage::getSlot).last("limit 1"));
+        Assert.isTrue(null != storageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�");
+        Integer slot = storageCage.getSlot();
+        //鑾峰彇璇ュ伐绋嬪悓涓�娴佺▼鍗″悓涓�杞︾殑鐜荤拑淇℃伅
+        List<BigStorageGlassInfo> bigStorageGlassInfoList = this.list(new LambdaQueryWrapper<BigStorageGlassInfo>()
+                .eq(BigStorageGlassInfo::getEngineerId, bigStorageGlassInfo.getEngineerId())
+                .eq(BigStorageGlassInfo::getTemperingLayoutId, bigStorageGlassInfo.getTemperingLayoutId())
+                .eq(BigStorageGlassInfo::getVirtualSlot, bigStorageGlassInfo.getVirtualSlot()));
+        //璁剧疆鍏崇郴琛ㄧ殑瀹為檯鏍煎瓙鍙�
+        List<BigStorageGlassRelationInfo> relationInfoList = bigStorageGlassInfoList.stream().map(e -> {
+            BigStorageGlassRelationInfo info = new BigStorageGlassRelationInfo();
+            BeanUtils.copyProperties(e, info);
+            info.setSlot(slot);
+            info.setDeviceId(storageCage.getDeviceId());
+            return info;
+        }).collect(Collectors.toList());
+        //淇濆瓨鍏崇郴琛�
+        bigStorageGlassRelationInfoService.saveBatch(relationInfoList);
+        //杩斿洖鏍煎瓙淇℃伅
+        return slot;
+    }
+
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageGlassRelationInfoServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageGlassRelationInfoServiceImpl.java
new file mode 100644
index 0000000..df41e60
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageGlassRelationInfoServiceImpl.java
@@ -0,0 +1,25 @@
+package com.mes.bigstorage.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.bigstorage.entity.BigStorageGlassRelationInfo;
+import com.mes.bigstorage.mapper.BigStorageGlassRelationInfoMapper;
+import com.mes.bigstorage.service.BigStorageGlassRelationInfoService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * (BigStorageGlassRelationInfo)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author makejava
+ * @since 2024-11-24 10:17:43
+ */
+@Service
+public class BigStorageGlassRelationInfoServiceImpl extends ServiceImpl<BigStorageGlassRelationInfoMapper, BigStorageGlassRelationInfo> implements BigStorageGlassRelationInfoService {
+
+    @Override
+    public List<String> queryNeedOutGlassId(String engineerId, Integer temperingLayoutId, Integer temperingFeedSequence) {
+        return baseMapper.queryNeedOutGlassId(engineerId, temperingLayoutId, temperingFeedSequence);
+    }
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/controller/BigStorageCageHistoryTaskController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/controller/BigStorageCageHistoryTaskController.java
new file mode 100644
index 0000000..72daa96
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/controller/BigStorageCageHistoryTaskController.java
@@ -0,0 +1,43 @@
+package com.mes.bigstoragecagetask.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.mes.bigstoragecagetask.entity.BigStorageCageHistoryTask;
+import com.mes.bigstoragecagetask.entity.request.BigStorageCageHistoryRequest;
+import com.mes.bigstoragecagetask.service.BigStorageCageHistoryTaskService;
+import com.mes.largenscreen.entity.DailyProductionVO;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/3/11 8:43
+ * @Description:
+ */
+@Api(tags = "鐞嗙墖绗间俊鎭巻鍙蹭换鍔�")
+@RestController
+@RequestMapping("/bigStorageCageHistoryTask")
+public class BigStorageCageHistoryTaskController {
+
+    @Resource
+    BigStorageCageHistoryTaskService bigStorageCageHistoryTaskService;
+
+    @ApiOperation("鎸夌収鏌ヨ鏉′欢鏌ヨ鐞嗙墖绗间俊鎭巻鍙蹭换鍔�")
+    @PostMapping("/queryBigStorageCageHistoryTask")
+    public Result<Page<BigStorageCageHistoryTask>> queryBigStorageCageHistoryTask(@RequestBody @Validated BigStorageCageHistoryRequest request) {
+        return Result.build(200, "鏌ヨ鎴愬姛", bigStorageCageHistoryTaskService.queryBigStorageCageHistoryTask(request));
+    }
+
+    @ApiOperation(value = "鏌ヨ鏈潯绾垮巻鍙叉寚瀹氭棩鏈熺殑鏃ョ敓浜ф暟鎹�", notes = "鏌ヨ鏈潯绾垮巻鍙叉寚瀹氭棩鏈熺殑鏃ョ敓浜ф暟鎹�")
+    @PostMapping("/queryBigDailyProduction")
+    public Result<DailyProductionVO> queryBigDailyProduction(@RequestBody BigStorageCageHistoryRequest request) {
+        return Result.success(bigStorageCageHistoryTaskService.queryBigDailyProduction(request));
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageCageHistoryTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageCageHistoryTask.java
new file mode 100644
index 0000000..00d36cd
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageCageHistoryTask.java
@@ -0,0 +1,55 @@
+package com.mes.bigstoragecagetask.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * (BigStorageCageHistoryTask)琛ㄥ疄浣撶被
+ *
+ * @author makejava
+ * @since 2024-11-13 22:46:49
+ */
+@Data
+public class BigStorageCageHistoryTask {
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 鐜荤拑id
+     */
+    private String glassId;
+    /**
+     * 璧峰鏍煎瓙
+     */
+    private Integer startSlot;
+    /**
+     * 鐩爣鏍煎瓙
+     */
+    private Integer targetSlot;
+    /**
+     * 浠诲姟鐘舵��
+     */
+    private Integer taskState;
+    /**
+     * 鐜荤拑鏁伴噺
+     */
+    private Integer glassCount;
+    /**
+     * 浠诲姟绫诲瀷
+     */
+    private Integer taskType;
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+    /**
+     * 鏇存柊鏃堕棿
+     */
+    private Date updateTime;
+
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/entity/request/BigStorageCageHistoryRequest.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/entity/request/BigStorageCageHistoryRequest.java
new file mode 100644
index 0000000..c811ed4
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/entity/request/BigStorageCageHistoryRequest.java
@@ -0,0 +1,60 @@
+package com.mes.bigstoragecagetask.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.mes.base.entity.PageRequest;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/3/11 8:46
+ * @Description:
+ */
+@Data
+public class BigStorageCageHistoryRequest extends PageRequest {
+
+    /**
+     * 鐜荤拑id
+     */
+    @ApiModelProperty(value = "鐜荤拑id", position = 1)
+    private String glassId;
+    /**
+     * 璧峰鏍煎瓙
+     */
+    @ApiModelProperty(value = "璧峰鏍煎瓙", position = 2)
+    private Integer startSlot;
+    /**
+     * 鐩爣鏍煎瓙
+     */
+    @ApiModelProperty(value = "鐩爣鏍煎瓙", position = 3)
+    private Integer targetSlot;
+    /**
+     * 浠诲姟鐘舵��
+     */
+    @ApiModelProperty(value = "浠诲姟鐘舵�� 0 寮�濮� 2瀹屾垚 3鐮存崯 4鏈笂杞�", position = 4)
+    private List<Integer> taskStateList;
+    /**
+     * 浠诲姟绫诲瀷
+     */
+    @ApiModelProperty(value = "浠诲姟绫诲瀷 1杩涚墖 2鍑虹墖 3璋冨害", position = 5)
+    private List<Integer>  taskTypeList;
+    /**
+     * 寮�濮嬫椂闂�
+     */
+    @ApiModelProperty(value = "寮�濮嬫椂闂�", position = 6)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date beginDate;
+
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @ApiModelProperty(value = "缁撴潫鏃堕棿", position = 7)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endDate;
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/mapper/BigStorageCageHistoryTaskMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/mapper/BigStorageCageHistoryTaskMapper.java
new file mode 100644
index 0000000..885a0fa
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/mapper/BigStorageCageHistoryTaskMapper.java
@@ -0,0 +1,19 @@
+package com.mes.bigstoragecagetask.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.bigstoragecagetask.entity.BigStorageCageHistoryTask;
+import com.mes.largenscreen.entity.DailyProductionVO;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * (BigStorageCageHistoryTask)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author makejava
+ * @since 2024-11-13 22:46:47
+ */
+public interface BigStorageCageHistoryTaskMapper extends BaseMapper<BigStorageCageHistoryTask> {
+
+    DailyProductionVO queryBigDailyProduction(@Param("beginDate") String beginDate, @Param("endDate") String endDate);
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/BigStorageCageHistoryTaskService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/BigStorageCageHistoryTaskService.java
new file mode 100644
index 0000000..34e8a83
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/BigStorageCageHistoryTaskService.java
@@ -0,0 +1,22 @@
+package com.mes.bigstoragecagetask.service;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.bigstoragecagetask.entity.BigStorageCageHistoryTask;
+import com.mes.bigstoragecagetask.entity.request.BigStorageCageHistoryRequest;
+import com.mes.largenscreen.entity.DailyProductionVO;
+
+/**
+ * (BigStorageCageHistoryTask)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author makejava
+ * @since 2024-11-13 22:46:53
+ */
+public interface BigStorageCageHistoryTaskService extends IService<BigStorageCageHistoryTask> {
+
+    Page<BigStorageCageHistoryTask> queryBigStorageCageHistoryTask(BigStorageCageHistoryRequest request);
+
+    DailyProductionVO queryBigDailyProduction(BigStorageCageHistoryRequest request);
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/impl/BigStorageCageHistoryTaskServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/impl/BigStorageCageHistoryTaskServiceImpl.java
new file mode 100644
index 0000000..992eb0a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/impl/BigStorageCageHistoryTaskServiceImpl.java
@@ -0,0 +1,58 @@
+package com.mes.bigstoragecagetask.service.impl;
+
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.smallbun.screw.core.util.StringUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.bigstoragecagetask.entity.BigStorageCageHistoryTask;
+import com.mes.bigstoragecagetask.entity.request.BigStorageCageHistoryRequest;
+import com.mes.bigstoragecagetask.mapper.BigStorageCageHistoryTaskMapper;
+import com.mes.bigstoragecagetask.service.BigStorageCageHistoryTaskService;
+import com.mes.largenscreen.entity.DailyProductionVO;
+import com.mes.tools.DateUtil;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+
+/**
+ * (BigStorageCageHistoryTask)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author makejava
+ * @since 2024-11-13 22:46:56
+ */
+@Service
+public class BigStorageCageHistoryTaskServiceImpl extends ServiceImpl<BigStorageCageHistoryTaskMapper, BigStorageCageHistoryTask> implements BigStorageCageHistoryTaskService {
+
+    @Override
+    public Page<BigStorageCageHistoryTask> queryBigStorageCageHistoryTask(BigStorageCageHistoryRequest request) {
+        if (null == request.getBeginDate()) {
+            request.setBeginDate(DateUtil.getBeginDate());
+            request.setEndDate(DateUtil.getEndDate());
+        }
+        Page<BigStorageCageHistoryTask> page = new Page<>(request.getPageNo(), request.getPageSize());
+        LambdaQueryWrapper<BigStorageCageHistoryTask> wrapper = new LambdaQueryWrapper<BigStorageCageHistoryTask>()
+                .like(StringUtils.isNotBlank(request.getGlassId()), BigStorageCageHistoryTask::getGlassId, request.getGlassId())
+                .eq(request.getStartSlot() != 0, BigStorageCageHistoryTask::getStartSlot, request.getStartSlot())
+                .eq(request.getTargetSlot() != 0, BigStorageCageHistoryTask::getTargetSlot, request.getTargetSlot())
+                .in(CollectionUtil.isNotEmpty(request.getTaskStateList()), BigStorageCageHistoryTask::getTaskState, request.getTaskStateList())
+                .in(CollectionUtil.isNotEmpty(request.getTaskTypeList()), BigStorageCageHistoryTask::getTaskType, request.getTaskTypeList())
+                .between(BigStorageCageHistoryTask::getCreateTime, request.getBeginDate(), request.getEndDate())
+                .orderByAsc(BigStorageCageHistoryTask::getId);
+        return this.page(page, wrapper);
+    }
+
+    @Override
+    public DailyProductionVO queryBigDailyProduction(BigStorageCageHistoryRequest request) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String beginDate = null;
+        String endDate = null;
+        if (com.baomidou.mybatisplus.core.toolkit.StringUtils.checkValNotNull(request.getBeginDate())) {
+            beginDate = sdf.format(request.getBeginDate());
+            endDate = sdf.format(request.getEndDate());
+        }
+        return baseMapper.queryBigDailyProduction(beginDate, endDate);
+    }
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java
new file mode 100644
index 0000000..f423dbb
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java
@@ -0,0 +1,36 @@
+package com.mes.userinfo.controller;
+
+
+import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
+import com.mes.bigstoragetask.service.BigStorageCageFeedTaskService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@Api(tags = "杩涚墖浠诲姟淇℃伅")
+@RestController
+@RequestMapping("/big-storage-cage-feed-task")
+public class BigStorageCageFeedTaskController {
+
+    @Autowired
+    private BigStorageCageFeedTaskService bigStorageCageFeedTaskService;
+//    @ApiOperation("杩涚墖浠诲姟淇℃伅")
+//    @GetMapping("/querybigStorageCageFeedTask")
+//    public List<BigStorageCageFeedTask> querybigStorageCageFeedTask(int taskState) {
+//        return bigStorageCageFeedTaskService.querybigStorageCageFeedTask(taskState);
+//    }
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageOutTaskController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageOutTaskController.java
new file mode 100644
index 0000000..0f06894
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageOutTaskController.java
@@ -0,0 +1,37 @@
+package com.mes.userinfo.controller;
+
+
+import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
+import com.mes.bigstoragetask.service.BigStorageCageOutTaskService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@Api(tags = "鍑虹墖浠诲姟淇℃伅")
+@RestController
+@RequestMapping("/big-storage-cage-out-task")
+public class BigStorageCageOutTaskController {
+
+    @Autowired
+    private BigStorageCageOutTaskService bigStorageCageOutTaskService;
+//    @ApiOperation("鍑虹墖浠诲姟淇℃伅")
+//    @GetMapping("/querybigStorageCageOutTask")
+//    public List<BigStorageCageOutTask> querybigStorageCageOutTask(int taskState) {
+//        return bigStorageCageOutTaskService.querybigStorageCageOutTask(taskState);
+//    }
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java
new file mode 100644
index 0000000..e783646
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java
@@ -0,0 +1,85 @@
+package com.mes.bigstoragetask.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@ApiModel(description = "<p> 鐞嗙墖杩涚浠诲姟 </p>")
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BigStorageCageFeedTask implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 涓婚敭id
+     */
+    @ApiModelProperty(value = "涓婚敭id", position = 2)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 鐜荤拑id
+     */
+    @ApiModelProperty(value = "鐜荤拑id", position = 3)
+    private String glassId;
+
+    /**
+     * 鐩爣浣嶇疆
+     */
+    @ApiModelProperty(value = "鐩爣浣嶇疆", position = 4)
+    private int targetSlot;
+
+    /**
+     * 鐜荤拑绫诲瀷
+     */
+    @ApiModelProperty(value = "鐜荤拑绫诲瀷", position = 5)
+    private Integer taskType;
+
+    /**
+     * 浠诲姟绫诲瀷
+     */
+    @ApiModelProperty(value = "浠诲姟绫诲瀷", position = 6)
+    private Integer taskState;
+
+    /**
+     * 绾胯矾
+     */
+    @ApiModelProperty(value = "绾胯矾", position = 7)
+    private int line;
+    /**
+     * 瀹藉害
+     */
+    @ApiModelProperty(value = "瀹藉害", position = 8)
+    private Integer width;
+    /**
+     * 楂樺害
+     */
+    @ApiModelProperty(value = "楂樺害", position = 8)
+    private Integer height;
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿", position = 8)
+    private Date createTime;
+
+    @TableLogic
+    private int deleted;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java
new file mode 100644
index 0000000..5c6a121
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java
@@ -0,0 +1,106 @@
+package com.mes.bigstoragetask.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@ApiModel(description = "<p> 鐞嗙墖鍑虹浠诲姟 </p>")
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BigStorageCageOutTask implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    public BigStorageCageOutTask() {
+    }
+
+    public BigStorageCageOutTask(String glassId, Integer startSlot, Integer endSlot, double width, double height, Integer trainNumber, Integer serialNumber, Integer taskState, Date createTime) {
+        this.glassId = glassId;
+        this.startSlot = startSlot;
+        this.endSlot = endSlot;
+        this.width = width;
+        this.height = height;
+        this.trainNumber = trainNumber;
+        this.serialNumber = serialNumber;
+        this.taskState = taskState;
+        this.createTime = createTime;
+    }
+
+    /**
+     * 涓婚敭id
+     */
+    @ApiModelProperty(value = "涓婚敭id", position = 2)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 鐜荤拑id
+     */
+    @ApiModelProperty(value = "鐜荤拑id", position = 3)
+    private String glassId;
+
+    /**
+     * 寮�濮嬩綅缃�
+     */
+    @ApiModelProperty(value = "寮�濮嬩綅缃�", position = 4)
+    private Integer startSlot;
+
+    /**
+     * 鐩爣浣嶇疆
+     */
+    @ApiModelProperty(value = "鐩爣浣嶇疆", position = 5)
+    private Integer endSlot;
+    /**
+     * 鐩爣浣嶇疆
+     */
+    @ApiModelProperty(value = "鐩爣浣嶇疆", position = 5)
+    private double width;
+    /**
+     * 鐩爣浣嶇疆
+     */
+    @ApiModelProperty(value = "鐩爣浣嶇疆", position = 5)
+    private double height;
+
+    /**
+     * 杞︽
+     */
+    @ApiModelProperty(value = "杞︽", position = 6)
+    private Integer trainNumber;
+
+    /**
+     * 搴忓彿
+     */
+    @ApiModelProperty(value = "搴忓彿", position = 7)
+    private Integer serialNumber;
+
+    /**
+     * 浠诲姟鐘舵��
+     */
+    @ApiModelProperty(value = "浠诲姟鐘舵��", position = 8)
+    private Integer taskState;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿", position = 9)
+    private Date createTime;
+
+    @TableLogic
+    private int deleted;
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/UpdateBigStorageCageDTO.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/UpdateBigStorageCageDTO.java
new file mode 100644
index 0000000..6a1cecc
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/UpdateBigStorageCageDTO.java
@@ -0,0 +1,16 @@
+package com.mes.bigstoragetask.entity;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/7/26 9:05
+ * @Description:
+ */
+@Data
+public class UpdateBigStorageCageDTO {
+
+    private String glassId;
+
+    private int targetSlot;
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageFeedTaskMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageFeedTaskMapper.java
new file mode 100644
index 0000000..f559d2b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageFeedTaskMapper.java
@@ -0,0 +1,25 @@
+package com.mes.bigstoragetask.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.bigstorage.entity.dto.BigStorageDTO;
+import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@DS("salve_northGlassMes")
+public interface BigStorageCageFeedTaskMapper extends MPJBaseMapper<BigStorageCageFeedTask> {
+
+    List<Integer> querySitToUpGlass();
+
+    BigStorageDTO querySitToUpRemainWidth(@Param(value = "line") Integer line, @Param(value = "glassGap") Integer glassGap);
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageOutTaskMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageOutTaskMapper.java
new file mode 100644
index 0000000..417e943
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/mapper/BigStorageCageOutTaskMapper.java
@@ -0,0 +1,22 @@
+package com.mes.bigstoragetask.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@DS("salve_northGlassMes")
+public interface BigStorageCageOutTaskMapper extends BaseMapper<BigStorageCageOutTask> {
+
+    boolean saveBatch(@Param(value = "list") List<BigStorageCageOutTask> list);
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageFeedTaskService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageFeedTaskService.java
new file mode 100644
index 0000000..6b504a9
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageFeedTaskService.java
@@ -0,0 +1,33 @@
+package com.mes.bigstoragetask.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.entity.dto.BigStorageDTO;
+import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+public interface BigStorageCageFeedTaskService extends MPJBaseService<BigStorageCageFeedTask> {
+
+    void addFeedTask(BigStorageCageDetails slotInfo, Integer plcFeedReqLine, int taskType);
+
+    List<BigStorageCageFeedTask> querybigStorageCageFeedTask(int taskState);
+
+    /**
+     * 鏌ヨ鍗ц浆绔嬬幓鐠冩槸鍚﹁繘鐗囧畬鎴�
+     */
+    BigStorageDTO querySitToUpRemainWidth(Integer line);
+
+    /**
+     * 鏌ヨ鍗ц浆绔嬬幓鐠冩槸鍚﹁繘鐗囧畬鎴�
+     */
+    List<Integer> querySitToUpGlass();
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageOutTaskService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageOutTaskService.java
new file mode 100644
index 0000000..8987889
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageOutTaskService.java
@@ -0,0 +1,25 @@
+package com.mes.bigstoragetask.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+public interface BigStorageCageOutTaskService extends IService<BigStorageCageOutTask> {
+
+    List<BigStorageCageOutTask> querybigStorageCageOutTask(int taskState);
+
+    void updateOutTask();
+
+    boolean saveBatch(List<BigStorageCageOutTask> list);
+
+    void deleteOutTask(String glassId);
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageFeedTaskServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageFeedTaskServiceImpl.java
new file mode 100644
index 0000000..9faab16
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageFeedTaskServiceImpl.java
@@ -0,0 +1,60 @@
+package com.mes.bigstoragetask.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.entity.dto.BigStorageDTO;
+import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
+import com.mes.bigstoragetask.mapper.BigStorageCageFeedTaskMapper;
+import com.mes.bigstoragetask.service.BigStorageCageFeedTaskService;
+import com.mes.common.config.ConstSysConfig;
+import com.mes.sysconfig.service.SysConfigService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@Service
+public class BigStorageCageFeedTaskServiceImpl extends ServiceImpl<BigStorageCageFeedTaskMapper, BigStorageCageFeedTask> implements BigStorageCageFeedTaskService {
+
+    //    @Value("${mes.glassGap}")
+//    private Integer glassGap;
+    @Resource
+    SysConfigService sysConfigService;
+
+    @Override
+    public void addFeedTask(BigStorageCageDetails slotInfo, Integer plcFeedReqLine, int taskType) {
+        BigStorageCageFeedTask bigStorageCageFeedTask = new BigStorageCageFeedTask();
+        bigStorageCageFeedTask.setId(slotInfo.getId());
+        bigStorageCageFeedTask.setTaskState(0);
+        bigStorageCageFeedTask.setLine(plcFeedReqLine);
+        bigStorageCageFeedTask.setTaskType(taskType);
+        baseMapper.insert(bigStorageCageFeedTask);
+    }
+
+    @Override
+    public List<BigStorageCageFeedTask> querybigStorageCageFeedTask(int taskState) {
+        LambdaQueryWrapper<BigStorageCageFeedTask> getFeedTaskWrapper = new LambdaQueryWrapper<>();
+        getFeedTaskWrapper.eq(BigStorageCageFeedTask::getTaskState, taskState);
+        return baseMapper.selectList(getFeedTaskWrapper);
+    }
+
+    @Override
+    public BigStorageDTO querySitToUpRemainWidth(Integer line) {
+        Integer glassGap = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_GLASS_GAP);
+        return baseMapper.querySitToUpRemainWidth(line, glassGap);
+    }
+
+    @Override
+    public List<Integer> querySitToUpGlass() {
+        return baseMapper.querySitToUpGlass();
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageOutTaskServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageOutTaskServiceImpl.java
new file mode 100644
index 0000000..54f9a88
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageOutTaskServiceImpl.java
@@ -0,0 +1,95 @@
+package com.mes.bigstoragetask.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper;
+import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
+import com.mes.bigstoragetask.mapper.BigStorageCageOutTaskMapper;
+import com.mes.bigstoragetask.service.BigStorageCageOutTaskService;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-16
+ */
+@Slf4j
+@Service
+public class BigStorageCageOutTaskServiceImpl extends ServiceImpl<BigStorageCageOutTaskMapper, BigStorageCageOutTask> implements BigStorageCageOutTaskService {
+
+    @Resource
+    TemperingGlassInfoMapper temperingGlassInfoMapper;
+    @Resource
+    BigStorageCageOutTaskMapper bigStorageCageOutTaskMapper;
+    @Resource
+    BigStorageCageDetailsMapper bigStorageCageDetailsMapper;
+
+    @Override
+    public boolean saveBatch(List<BigStorageCageOutTask> list) {
+        return baseMapper.saveBatch(list);
+    }
+
+    /**
+     * 鏌ヨ浠诲姟淇℃伅
+     */
+    @Override
+    public List<BigStorageCageOutTask> querybigStorageCageOutTask(int taskState) {
+        log.info("鏍规嵁浼犲叆鐨勪换鍔$姸鎬佹煡璇换鍔′俊鎭細" + taskState);
+        LambdaQueryWrapper<BigStorageCageOutTask> getOutTaskWrapper = new LambdaQueryWrapper<>();
+        getOutTaskWrapper.eq(BigStorageCageOutTask::getTaskState, taskState);
+        return baseMapper.selectList(getOutTaskWrapper);
+    }
+
+    /**
+     * 妫�娴婸LC鏄惁瀹屾垚浠诲姟
+     */
+    @Override
+    public void updateOutTask(){
+        List<BigStorageCageOutTask> bigStorageCageOutTaskList=querybigStorageCageOutTask(1);
+        log.info("鏌ヨ浠诲姟琛ㄦ槸鍚︽湁宸插畬鎴愮殑鍑虹墖浠诲姟"+bigStorageCageOutTaskList.size());
+        for (BigStorageCageOutTask bigStorageCageOutTask:bigStorageCageOutTaskList
+        ) {
+            deleteOutTask(bigStorageCageOutTask.getGlassId());
+        }
+    }
+
+    /**
+     * 瀹屾垚鍑虹墖浠诲姟
+     */
+    @Override
+    public void deleteOutTask(String glassId){
+        log.info("鏍规嵁浠诲姟id淇敼閽㈠寲灏忕墖琛ㄧ姸鎬侊紝鍒犻櫎宸插畬鎴愮殑鍑虹墖浠诲姟,鍒犻櫎绗煎瓙琛ㄧ幓鐠�");
+
+        LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoWrapper =new LambdaQueryWrapper<>();
+        temperingGlassInfoWrapper.eq(TemperingGlassInfo::getGlassId,glassId);
+        TemperingGlassInfo temperingGlassInfo=temperingGlassInfoMapper.selectOne(temperingGlassInfoWrapper);
+        //鍒ゆ柇鏄惁鎵嬪姩浠诲姟锛屼笉閽㈠寲浠诲姟瀹屾垚鍚庡垹鎺夛紝閽㈠寲浠诲姟瀹屾垚鍚庢敼鐘舵�佷负0
+        if(temperingGlassInfo.getState()==-2){
+            temperingGlassInfoMapper.deleteById(temperingGlassInfo.getId());
+        }else{
+            temperingGlassInfo.setState(0);
+            temperingGlassInfoMapper.updateById(temperingGlassInfo);
+        }
+
+        LambdaQueryWrapper<BigStorageCageOutTask> bigStorageCageOutTaskWrapper =new LambdaQueryWrapper<>();
+        bigStorageCageOutTaskWrapper.eq(BigStorageCageOutTask::getGlassId,glassId);
+        BigStorageCageOutTask bigStorageCageOutTask=bigStorageCageOutTaskMapper.selectOne(bigStorageCageOutTaskWrapper);
+        bigStorageCageOutTaskMapper.deleteById(bigStorageCageOutTask.getId());
+
+        LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailsWrapper =new LambdaQueryWrapper<>();
+        bigStorageCageDetailsWrapper.eq(BigStorageCageDetails::getGlassId,glassId);
+        BigStorageCageDetails bigStorageCageDetails=bigStorageCageDetailsMapper.selectOne(bigStorageCageDetailsWrapper);
+        bigStorageCageDetailsMapper.deleteById(bigStorageCageOutTask.getId());
+
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/common/S7object.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/common/S7object.java
new file mode 100644
index 0000000..d7f44af
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/common/S7object.java
@@ -0,0 +1,76 @@
+package com.mes.common;
+
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.mes.device.PlcParameterObject;
+import com.mes.tools.InitUtil;
+import com.mes.tools.S7control;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.Date;
+
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 15:13
+ * @Description:
+ */
+@Slf4j
+public class S7object extends Thread {
+    public S7control plccontrol; // PLC閫氳绫诲疄渚�
+    private EPlcType plcType = EPlcType.S1200; // 瑗块棬瀛怭LC绫诲瀷
+    private String ip = "192.168.20.2"; // plc ip鍦板潃
+    private int port = 102; // plc 绔彛鍙�
+
+
+    public PlcParameterObject PlcMesObject;
+    private static volatile S7object instance = null;
+
+    private S7object() {
+        if (plccontrol == null) {
+            plccontrol = new S7control(plcType, ip, port, 0, 0);
+
+            String PlcLoadGlass = System.getProperty("user.dir") + "/JsonFile/PlcCacheVerticalGlass.json";
+            System.out.println("鑾峰彇鍒扮殑鏂囦欢璺緞涓猴細" + PlcLoadGlass);
+            PlcMesObject = InitUtil.initword(PlcLoadGlass);
+        }
+    }
+
+    // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
+    public static S7object getinstance() {
+        if (instance == null) {
+            synchronized (S7object.class) {
+                if (instance == null) {
+                    instance = new S7object();
+                }
+            }
+        }
+        return instance;
+    }
+
+    @Override
+    public void run() {
+        while (this != null) {
+            try {
+                Thread.sleep(100);
+
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+            Date startDate = new Date();
+            byte[] getplcvlues = plccontrol.readByte(PlcMesObject.getPlcAddressBegin(), PlcMesObject.getPlcAddressLength());
+            Date endDate = new Date();
+            log.info("澶х悊鐗囩璇诲彇plc鏁版嵁,寮�濮嬫椂闂达細{}锛岀粨鏉熸椂闂达細{}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", startDate, endDate, endDate.getTime() - startDate.getTime());
+            if (getplcvlues != null) {
+                PlcMesObject.setPlcParameterList(getplcvlues);
+                log.info("澶х悊鐗囧綋鍓嶈繘鍗ц浆绔嬬‘璁ゅ瓧涓篸01:{},d04:{},杩涚閫佺墖浠诲姟纭瀛椾负锛歞03:{},d05:{},鍑虹墖浠诲姟纭瀛椾负{},D03璇锋眰瀛椾负锛歿}锛孌05璇锋眰瀛椾负锛歿}",
+                        PlcMesObject.getPlcParameter("MESToD01").getValue(),
+                        PlcMesObject.getPlcParameter("MESToD04").getValue(),
+                        PlcMesObject.getPlcParameter("MESToD03").getValue(),
+                        PlcMesObject.getPlcParameter("MESToD05").getValue(),
+                        PlcMesObject.getPlcParameter("MESToPLC").getValue(),
+                        PlcMesObject.getPlcParameter("D03ToMES").getValue(),
+                        PlcMesObject.getPlcParameter("D05ToMES").getValue());
+            }
+        }
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/config/S7Config.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/config/S7Config.java
new file mode 100644
index 0000000..26b95cf
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/config/S7Config.java
@@ -0,0 +1,21 @@
+package com.mes.config;
+
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer;
+import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/4/30 13:50
+ * @Description:
+ */
+@Configuration
+public class S7Config {
+    @Bean
+    public S7Serializer s7Serializer() {
+        S7PLC s7PLC = new S7PLC(EPlcType.S1200, "192.168.20.140");
+        return S7Serializer.newInstance(s7PLC);
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java
new file mode 100644
index 0000000..5cf0b68
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java
@@ -0,0 +1,22 @@
+package com.mes.edgglasstask.controller;
+
+
+import io.swagger.annotations.Api;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-05-11
+ */
+@Api(tags = "纾ㄨ竟闃熷垪")
+@RestController
+@RequestMapping("/edgGlassTaskInfo")
+public class EdgGlassTaskInfoController {
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java
new file mode 100644
index 0000000..b1d148d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java
@@ -0,0 +1,85 @@
+package com.mes.edgglasstask.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author wu
+ * @since 2024-05-11
+ */
+@ApiModel(description = "<p> </p>")
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class EdgGlassTaskInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 纾ㄨ竟浠诲姟id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * 鐜荤拑id
+     */
+    @ApiModelProperty(value = "鐜荤拑id", position = 2)
+    private String glassId;
+
+    /**
+     * 瀹�
+     */
+    @ApiModelProperty(value = "瀹�", position = 3)
+    private Integer width;
+
+    /**
+     * 楂�
+     */
+    @ApiModelProperty(value = "楂�", position = 4)
+    private Integer height;
+
+    /**
+     * 鍘氬害
+     */
+    @ApiModelProperty(value = "鍘氬害", position = 5)
+    private Integer thickness;
+
+
+    /**
+     * 鐘舵��
+     */
+    @ApiModelProperty(value = "鐘舵��", position = 6)
+    private Integer state;
+
+    /**
+     * 绾胯矾
+     */
+    @ApiModelProperty(value = "绾胯矾", position = 7)
+    private Integer line;
+
+    /**
+     * 绾胯矾
+     */
+    @ApiModelProperty(value = "寮�濮嬫椂闂�", position = 8)
+    private Date createTime;
+    /**
+     * 绾胯矾
+     */
+    @ApiModelProperty(value = "鏇存柊鏃堕棿", position = 9)
+    private Date updateTime;
+
+    @TableLogic
+    private int deleted;
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/mapper/EdgGlassTaskInfoMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/mapper/EdgGlassTaskInfoMapper.java
new file mode 100644
index 0000000..f14819b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/mapper/EdgGlassTaskInfoMapper.java
@@ -0,0 +1,18 @@
+package com.mes.edgglasstask.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-05-11
+ */
+@DS("salve_northGlassMes")
+public interface EdgGlassTaskInfoMapper extends BaseMapper<EdgGlassTaskInfo> {
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java
new file mode 100644
index 0000000..8436faf
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java
@@ -0,0 +1,19 @@
+package com.mes.edgglasstask.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-05-11
+ */
+public interface EdgGlassTaskInfoService extends IService<EdgGlassTaskInfo> {
+
+    int judgeTasktype(String plcFeedReqLine);
+
+    int startTask();
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java
new file mode 100644
index 0000000..97a7cb2
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java
@@ -0,0 +1,83 @@
+package com.mes.edgglasstask.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.bigstorage.service.BigStorageCageDetailsService;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+import com.mes.edgglasstask.mapper.EdgGlassTaskInfoMapper;
+import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-05-11
+ */
+@Service
+public class EdgGlassTaskInfoServiceImpl extends ServiceImpl<EdgGlassTaskInfoMapper, EdgGlassTaskInfo> implements EdgGlassTaskInfoService {
+
+    @Resource
+    BigStorageCageDetailsService bigStorageCageDetailsService;
+    @Override
+    public int judgeTasktype(String plcFeedReqLine){
+        LambdaQueryWrapper<EdgGlassTaskInfo> edgGlassTaskInfoWrapper=new LambdaQueryWrapper<>();
+        edgGlassTaskInfoWrapper
+                .eq(EdgGlassTaskInfo::getLine, plcFeedReqLine)
+                .orderByDesc(EdgGlassTaskInfo::getCreateTime);
+        EdgGlassTaskInfo edgGlassTaskInfo=baseMapper.selectOne(edgGlassTaskInfoWrapper);
+        double width=bigStorageCageDetailsService.selectGetBoard(plcFeedReqLine);
+        if(edgGlassTaskInfo.getWidth()<width){
+            return 0;
+        }else{
+            return 1;
+        }
+    }
+
+    @Override
+    public int startTask(){
+
+        double line1Width=bigStorageCageDetailsService.selectGetBoard("1");
+        double line2Width=bigStorageCageDetailsService.selectGetBoard("2");
+
+        LambdaQueryWrapper<EdgGlassTaskInfo> edgGlassTaskInfoWrapper=new LambdaQueryWrapper<>();
+        edgGlassTaskInfoWrapper
+                .eq(EdgGlassTaskInfo::getLine, 1)
+                .orderByDesc(EdgGlassTaskInfo::getCreateTime);
+        List<EdgGlassTaskInfo> edgGlassTaskInfoList1=baseMapper.selectList(edgGlassTaskInfoWrapper);
+        int i=0;
+        for (EdgGlassTaskInfo edgGlassTaskInfo:edgGlassTaskInfoList1
+             ) {
+            if(edgGlassTaskInfo.getWidth()<line1Width){
+                i+=1;
+                line1Width-=edgGlassTaskInfo.getWidth()+20;
+            }
+        }
+        if(i==2){
+            return 2;
+        }
+
+        edgGlassTaskInfoWrapper
+                .eq(EdgGlassTaskInfo::getLine, 2)
+                .orderByDesc(EdgGlassTaskInfo::getCreateTime);
+        List<EdgGlassTaskInfo> edgGlassTaskInfoList2=baseMapper.selectList(edgGlassTaskInfoWrapper);
+        i=0;
+        for (EdgGlassTaskInfo edgGlassTaskInfo:edgGlassTaskInfoList2
+        ) {
+            if(edgGlassTaskInfo.getWidth()<line2Width){
+                i+=1;
+                line2Width-=edgGlassTaskInfo.getWidth()+20;
+            }
+        }
+        if(i==2) {
+            return 1;
+        }else{
+            return 2;
+        }
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OPCPlcSlicecage.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OPCPlcSlicecage.java
new file mode 100644
index 0000000..6502165
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OPCPlcSlicecage.java
@@ -0,0 +1,232 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.kangaroohy.milo.model.ReadWriteEntity;
+import com.kangaroohy.milo.service.MiloService;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.entity.dto.BigStorageSummaryDTO;
+import com.mes.bigstorage.service.BigStorageCageDetailsService;
+import com.mes.bigstorage.service.BigStorageCageService;
+import com.mes.bigstoragecagetask.entity.BigStorageCageTask;
+import com.mes.bigstoragecagetask.entity.BigStorageTaskVO;
+import com.mes.bigstoragecagetask.service.BigStorageCageTaskService;
+import com.mes.common.config.Const;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.largenscreen.entity.PieChartVO;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
+import com.mes.tools.WebSocketServer;
+import com.mes.utils.RedisUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author SNG-015
+ */
+@Component
+@Slf4j
+public class OPCPlcSlicecage {
+
+    @Resource
+    private BigStorageCageService bigStorageCageService;
+    @Resource
+    private BigStorageCageDetailsService bigStorageCageDetailsService;
+    @Resource
+    private TemperingGlassInfoService temperingGlassInfoService;
+    @Resource
+    private RedisUtil redisUtil;
+    @Autowired
+    private GlassInfoService glassInfoService;
+    @Resource
+    private BigStorageCageTaskService bigStorageCageTaskService;
+
+    @Autowired(required = false)
+    MiloService miloService;
+
+    private JSONObject jsonObject = new JSONObject();
+
+    public void queryDataSource1() throws Exception {
+        List<Double> carPostion = new ArrayList<>();
+        carPostion.add(0.25);
+        carPostion.add(0.5);
+        jsonObject.append("carPostion", carPostion);
+        //鐣岄潰灞曠ず绗煎瓙淇℃伅
+        jsonObject.append("bigStorageCageInfos", bigStorageCageDetailsService.querybigStorageCageDetail());
+
+        try {
+            //杩涚墖浠诲姟鏁版嵁
+            List<BigStorageTaskVO> inTaskList = new ArrayList();
+            ReadWriteEntity fromOpcUa = miloService.readFromOpcUa("DLP1A.DLP1A.FROM1");
+            for (int i = 1; i <= 6; i++) {
+                ReadWriteEntity requestWord = miloService.readFromOpcUa("DLP1A.DLP1A.DI" + i);
+                ReadWriteEntity targetSlotWord = miloService.readFromOpcUa("DLP1A.DLP1A.TO" + i);
+                ReadWriteEntity stateWord = miloService.readFromOpcUa("DLP1A.DLP1A.STATE" + i);
+                if (null != requestWord.getValue()) {
+                    BigStorageTaskVO task = new BigStorageTaskVO();
+                    task.setGlassId(requestWord.getValue() + "");
+                    int isExistCount = bigStorageCageDetailsService.count(new LambdaQueryWrapper<BigStorageCageDetails>().in(BigStorageCageDetails::getGlassId, task.getGlassId())
+                            .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
+                    if (isExistCount > 0) {
+                        task.setIsSame(1);
+                    } else {
+                        task.setIsSame(0);
+                    }
+                    task.setStartSlot(Integer.parseInt(fromOpcUa.getValue() + ""));
+                    task.setTargetSlot(Integer.parseInt(targetSlotWord.getValue() + ""));
+                    task.setTaskState(Integer.parseInt(stateWord.getValue() + ""));
+                    inTaskList.add(task);
+                    continue;
+                }
+            }
+            jsonObject.append("bigStorageCageDetailsFeedTask", inTaskList);
+        } catch (Exception e) {
+            //todo:涓嶅仛浠诲姟澶勭悊
+        }
+        try {
+            //杩涚墖鑱旀満
+            ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP1A.DLP1A.mesControl");
+            jsonObject.append("inkageEntity", inkageEntity.getValue());
+            //杩涚墖璇锋眰
+            ReadWriteEntity requestEntity = miloService.readFromOpcUa("DLP1A.DLP1A.RequestMes");
+            jsonObject.append("requestEntity", requestEntity.getValue());
+            //鍚姩鍛戒护
+            ReadWriteEntity mesReplyEntity = miloService.readFromOpcUa("DLP1A.DLP1A.MesReply");
+            jsonObject.append("mesReplyEntity", mesReplyEntity.getValue());
+            //鍑虹墖鑱旀満
+            ReadWriteEntity outInkageEntity = miloService.readFromOpcUa("DLP1B.DLP1B.mesControl");
+            jsonObject.append("outInkageEntity", outInkageEntity.getValue());
+            //鍑虹墖璇锋眰
+            ReadWriteEntity outRequestEntity = miloService.readFromOpcUa("DLP1B.DLP1B.RequestMes");
+            jsonObject.append("outRequestEntity", outRequestEntity.getValue());
+
+
+            //鍑虹墖浠诲姟鏁版嵁
+            List<BigStorageCageTask> outTaskList = bigStorageCageTaskService.queryTaskMessage("big_storage_cage_out_one_task");
+            jsonObject.append("bigStorageCageDetailsOutTask", outTaskList);
+        } catch (Exception e) {
+            //todo:涓嶅仛浠诲姟澶勭悊
+        }
+
+        //閽㈠寲寮�鍏�
+        boolean temperingSwitch = false;
+        if (redisUtil.getCacheObject("temperingSwitch") == null) {
+            redisUtil.setCacheObject("temperingSwitch", false);
+        } else {
+            temperingSwitch = redisUtil.getCacheObject("temperingSwitch");
+        }
+        jsonObject.append("temperingSwitch", temperingSwitch);
+
+        //璋冨害寮�鍏�
+        boolean dispatchSwitch = false;
+        if (redisUtil.getCacheObject("dispatchSwitch") == null) {
+            redisUtil.setCacheObject("dispatchSwitch", false);
+        } else {
+            dispatchSwitch = redisUtil.getCacheObject("dispatchSwitch");
+        }
+        jsonObject.append("dispatchSwitch", dispatchSwitch);
+
+        //鐞嗙墖绗间娇鐢ㄦ儏鍐�
+        List<Map<String, Object>> bigStorageCageUsage = bigStorageCageService.selectBigStorageCageUsage();
+        jsonObject.append("bigStorageCageUsage", bigStorageCageUsage);
+
+        //澶х悊鐗囨眹鎬讳俊鎭�
+        List<BigStorageSummaryDTO> bigStorageSummary = bigStorageCageService.selectBigStorageSummary();
+        jsonObject.append("bigStorageSummary", bigStorageSummary);
+
+        //鎵撳嵃寮�鍏�
+        boolean autoPrint = false;
+        if (redisUtil.getCacheObject("autoPrint") == null) {
+            redisUtil.setCacheObject("autoPrint", false);
+        } else {
+            autoPrint = redisUtil.getCacheObject("autoPrint");
+        }
+        jsonObject.append("autoPrint", autoPrint);
+
+        //褰撳墠鎸囧畾宸ョ▼
+        String temperingengineerId = "";
+        if (redisUtil.getCacheObject("temperingengineerId") == null) {
+            redisUtil.setCacheObject("temperingengineerId", temperingengineerId);
+        } else {
+            temperingengineerId = redisUtil.getCacheObject("temperingengineerId");
+        }
+        jsonObject.append("temperingengineerId", temperingengineerId);
+
+
+    }
+
+    public void queryDataSource2() throws InterruptedException {
+        //鍑虹墖闃熷垪
+        List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.list(
+                new LambdaQueryWrapper<TemperingGlassInfo>()
+                        .inSql(TemperingGlassInfo::getEngineerId, "select distinct engineer_id from tempering_glass_info where state<4")
+        );
+        jsonObject.append("temperingGlassInfoList", temperingGlassInfoList);
+
+    }
+
+    /**
+     * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
+     * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
+     */
+    @Scheduled(fixedDelay = 3000)
+    public void plcStorageCageTask() throws InterruptedException {
+        jsonObject = new JSONObject();
+        try {
+            //鏌ヨ浣跨敤鏁版嵁婧�1鏌ヨ鏁版嵁
+            queryDataSource1();
+            //鏌ヨ浣跨敤鏁版嵁婧�2鏌ヨ鏁版嵁
+//            queryDataSource2();
+
+            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("slicecage");
+            if (sendwServer != null) {
+                for (WebSocketServer webserver : sendwServer) {
+                    if (webserver != null) {
+                        webserver.sendMessage(jsonObject.toString());
+                        List<String> messages = webserver.getMessages();
+                        if (!messages.isEmpty()) {
+                            // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                            webserver.clearMessages();
+                        }
+                    } else {
+                        log.info("Home is closed");
+                    }
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void largenScreen() {
+        JSONObject jsonObject = new JSONObject();
+        //鐞嗙墖绗间娇鐢ㄦ儏鍐�
+        List<Map<String, Object>> bigStorageCageUsage = bigStorageCageService.selectBigStorageCageUsage();
+        jsonObject.append("bigStorageCageUsage", bigStorageCageUsage);
+        List<PieChartVO> pieChartVOS = bigStorageCageService.queryPieChart();
+        jsonObject.append("pieChartVOS", pieChartVOS);
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("largenScreen");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                    List<String> messages = webserver.getMessages();
+                    if (!messages.isEmpty()) {
+                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                        webserver.clearMessages();
+                    }
+                } else {
+                    log.info("largenScreen is closed");
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
new file mode 100644
index 0000000..c1653c5
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
@@ -0,0 +1,836 @@
+package com.mes.job;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.github.yulichang.toolkit.JoinWrappers;
+import com.kangaroohy.milo.model.ReadWriteEntity;
+import com.kangaroohy.milo.service.MiloService;
+import com.mes.base.entity.BigStorageCageBaseInfo;
+import com.mes.bigstorage.entity.BigStorageCage;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.entity.dto.BigStorageDTO;
+import com.mes.bigstorage.entity.dto.BigStorageRelationDTO;
+import com.mes.bigstorage.entity.dto.BigStorageSequenceDTO;
+import com.mes.bigstorage.entity.dto.TemperingLayoutDTO;
+import com.mes.bigstorage.service.BigStorageCageDetailsService;
+import com.mes.bigstorage.service.BigStorageCageService;
+import com.mes.bigstorage.service.BigStorageGlassInfoService;
+import com.mes.bigstorage.service.BigStorageGlassRelationInfoService;
+import com.mes.bigstoragecagetask.entity.BigStorageCageHistoryTask;
+import com.mes.bigstoragecagetask.entity.BigStorageCageTask;
+import com.mes.bigstoragecagetask.service.BigStorageCageHistoryTaskService;
+import com.mes.bigstoragecagetask.service.BigStorageCageTaskService;
+import com.mes.bigstoragetask.entity.UpdateBigStorageCageDTO;
+import com.mes.common.config.Const;
+import com.mes.common.config.ConstSysConfig;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.sysconfig.service.SysConfigService;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
+import com.mes.utils.RedisUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author SNG-015
+ */
+@Component
+@Slf4j
+public class OpcPlcStorageCageNewTask {
+    @Resource
+    private BigStorageCageDetailsService bigStorageCageDetailsService;
+    @Resource
+    private TemperingGlassInfoService temperingGlassInfoService;
+    @Resource
+    private DamageService damageService;
+    @Resource
+    private GlassInfoService glassInfoService;
+    @Resource
+    private BigStorageGlassRelationInfoService bigStorageGlassRelationInfoService;
+    @Resource
+    private BigStorageCageService bigStorageCageService;
+    @Resource
+    private BigStorageCageHistoryTaskService bigStorageCageHistoryTaskService;
+    @Resource
+    private BigStorageCageTaskService bigStorageCageTaskService;
+    @Resource
+    private BigStorageGlassInfoService bigStorageGlassInfoService;
+    @Resource
+    private EdgGlassTaskInfoService edgGlassTaskInfoService;
+
+    @Autowired(required = false)
+    MiloService miloService;
+
+    @Resource
+    SysConfigService sysConfigService;
+
+    /**
+     * 鐩撮�氭牸瀛�
+     */
+    private static final Integer THROUGH_SLOT = 920;
+
+    @Resource
+    private RedisUtil redisUtil;
+
+    @Scheduled(fixedDelay = 1000)
+    public void inBigStorageTask() throws Exception {
+        ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP1A.DLP1A.mesControl");
+        if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
+            log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫杩涚墖浠诲姟");
+            return;
+        }
+        ReadWriteEntity requestEntity = miloService.readFromOpcUa("DLP1A.DLP1A.RequestMes");
+        if (!"1".equals(requestEntity.getValue() + "")) {
+            log.info("褰撳墠鏈敹鍒拌繘鐗囪姹傦紝缁撴潫杩涚墖浠诲姟");
+            return;
+        }
+        ReadWriteEntity mesReplyEntity = miloService.readFromOpcUa("DLP1A.DLP1A.MesReply");
+        if ("1".equals(mesReplyEntity.getValue() + "")) {
+            log.info("鏈夋鍦ㄦ墽琛岀殑浠诲姟锛岀粨鏉熻繘鐗囦换鍔�");
+            return;
+        }
+        //鑾峰彇杩涚墖浠诲姟淇℃伅
+        List<BigStorageCageTask> inTaskList = new ArrayList();
+        ReadWriteEntity fromOpcUa = miloService.readFromOpcUa("DLP1A.DLP1A.FROM1");
+        List<String> glassIdList = new ArrayList<>();
+        for (int i = 1; i <= 6; i++) {
+            ReadWriteEntity requestWord = miloService.readFromOpcUa("DLP1A.DLP1A.DI" + i);
+            if (null != requestWord.getValue()) {
+                BigStorageCageTask task = new BigStorageCageTask();
+                task.setGlassId(requestWord.getValue() + "");
+                task.setStartSlot(Integer.parseInt(fromOpcUa.getValue() + ""));
+                inTaskList.add(task);
+                glassIdList.add(requestWord.getValue() + "");
+                continue;
+            }
+        }
+        if (CollectionUtil.isEmpty(inTaskList)) {
+            log.info("褰撳墠澶ц溅鏃犺繘鐗囩幓鐠冿紝缁撴潫杩涚墖浠诲姟");
+            return;
+        }
+        log.info("鑾峰彇浠诲姟鐨勭幓鐠僫d锛歿}", glassIdList);
+        ReadWriteEntity countEntity = miloService.readFromOpcUa("DLP1A.DLP1A.glassCount");
+        if (null == countEntity.getValue() || Integer.parseInt(countEntity.getValue() + "") != glassIdList.size()) {
+            log.info("褰撳墠澶ц溅杩涚墖鐜荤拑鏁伴噺{}涓巑es璇诲彇鍒扮殑鏁伴噺{}涓嶅尮閰嶏紝缁撴潫杩涚墖浠诲姟", countEntity.getValue(), glassIdList.size());
+            //鍚憄lc鍙戦�佹姤璀�:褰撳墠澶ц溅杩涚墖鐜荤拑鏁伴噺涓巑es璇诲彇鍒扮殑鏁伴噺涓嶅尮閰�
+            miloService.writeToOpcWord(generateReadWriteEntity("DLP1A.DLP1A.alarmSignal", 1));
+            return;
+        }
+        Map<String, Long> glassCountMap = glassIdList.stream().collect(Collectors.groupingBy(e -> e, Collectors.counting()));
+        for (Map.Entry<String, Long> entry : glassCountMap.entrySet()) {
+            if (entry.getValue() > 1) {
+                log.info("杩涚墖鐜荤拑{}瀛樺湪鐩稿悓锛岀粨鏉熸湰娆′换鍔�", entry.getKey());
+                //鍚憄lc鍙戦�佹姤璀�:鍚屼竴杞﹁繘鐗囩幓鐠冨瓨鍦ㄧ浉鍚�
+                miloService.writeToOpcWord(generateReadWriteEntity("DLP1A.DLP1A.alarmSignal", 2));
+                return;
+            }
+        }
+        List<BigStorageCageDetails> detailsList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>().in(BigStorageCageDetails::getGlassId, glassIdList)
+                .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO));
+        if (CollectionUtil.isNotEmpty(detailsList)) {
+            log.info("鐞嗙墖绗煎瓨鍦ㄧ浉鍚岀殑杩涚墖鐜荤拑{}锛岀粨鏉熸湰娆′换鍔�", detailsList);
+            //鍚憄lc鍙戦�佹姤璀�:鐞嗙墖绗煎瓨鍦ㄧ浉鍚岀殑杩涚墖鐜荤拑
+            miloService.writeToOpcWord(generateReadWriteEntity("DLP1A.DLP1A.alarmSignal", 4));
+            return;
+        }
+        List<GlassInfo> glassInfoList = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>().in(GlassInfo::getGlassId, glassIdList));
+
+        if (glassInfoList.size() != inTaskList.size()) {
+            log.info("杩涚墖浠诲姟鏁伴噺{}涓庣幓鐠冩暟閲弡}涓嶅尮閰嶏紝缁撴潫鏈杩涚墖", inTaskList.size(), glassInfoList.size());
+            //鍚憄lc鍙戦�佹姤璀�:杩涚墖浠诲姟鏁伴噺涓庣郴缁熸煡璇㈠埌鐨勭幓鐠冩暟閲忎笉鍖归厤
+            miloService.writeToOpcWord(generateReadWriteEntity("DLP1A.DLP1A.alarmSignal", 8));
+            return;
+        }
+        Integer glassGap = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_GLASS_GAP);
+        Integer slotMaxthickness = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_MAX_THICKNESS);
+        Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
+        Integer slotMaxHeight = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_MAX_HEIGHT);
+        //鎸夌収鐜荤拑鍘氬害鍒嗙粍锛屽垽鏂墿浣欐牸瀛愭槸鍚﹀彲浠ュ瓨鏀�
+        Map<Double, Long> thickCountMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getThickness, Collectors.counting()));
+        if (glassInfoList.get(0).getThickness() < slotMaxthickness) {
+            for (Map.Entry<Double, Long> entry : thickCountMap.entrySet()) {
+                int count = bigStorageCageService.count(new LambdaQueryWrapper<BigStorageCage>()
+                        .eq(BigStorageCage::getEnableState, Const.SLOT_ON).eq(BigStorageCage::getRemainWidth, slotWidth)
+                        .le(BigStorageCage::getMinThickness, entry.getKey())
+                        .ge(BigStorageCage::getMaxThickness, entry.getKey()));
+                if (count < entry.getValue()) {
+                    log.info("绗煎唴鏍煎瓙鍓╀綑鏁伴噺涓嶈冻锛岀粨鏉熸湰娆¤繘鐗�");
+                    //鍚憄lc鍙戦�佹姤璀�:绗煎唴鏍煎瓙鍓╀綑鏁伴噺涓嶈冻
+                    miloService.writeToOpcWord(generateReadWriteEntity("DLP1A.DLP1A.alarmSignal", 16));
+                    return;
+                }
+            }
+        }
+        //瓒呭ぇ灏哄
+        if (slotMaxHeight < Math.min(glassInfoList.get(0).getWidth(), glassInfoList.get(0).getHeight()) || glassInfoList.get(0).getThickness() >= slotMaxthickness) {
+            int count = bigStorageCageDetailsService.count(new LambdaQueryWrapper<BigStorageCageDetails>()
+                    .eq(BigStorageCageDetails::getSlot, THROUGH_SLOT)
+                    .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
+            if (count > 0) {
+                log.info("鐩撮�氱墖鍙板瓨鍦ㄧ幓鐠冿紝缁撴潫鏈杩涚墖");
+                //鍚憄lc鍙戦�佹姤璀�:鐩撮�氱墖鍙板瓨鍦ㄧ幓鐠冿紝鏃犳硶缁х画鐩撮��
+                miloService.writeToOpcWord(generateReadWriteEntity("DLP1A.DLP1A.alarmSignal", 64));
+                return;
+            }
+        }
+
+        //淇敼纾ㄨ竟瀵瑰垪琛ㄧ殑鐜荤拑鐘舵��
+        edgGlassTaskInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskInfo>()
+                .set(EdgGlassTaskInfo::getState, Const.EDG_GLASS_SUCCESS).in(EdgGlassTaskInfo::getGlassId, glassIdList));
+        //鎶ュ伐
+        for (String glass : glassIdList) {
+            damageService.autoSubmitReport(glass, inTaskList.get(0).getStartSlot(), "纾ㄨ竟", "杩涘ぇ鐞嗙墖绗�", 1);
+        }
+
+        Map<String, List<GlassInfo>> glassListMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getGlassId));
+        //璁$畻鐩爣鏍煎瓙
+        List<BigStorageCageHistoryTask> historyTasks = new ArrayList<>();
+        //瓒呭ぇ灏哄涓庢甯稿昂瀵哥幓鐠冭绠楁柟寮忎笉涓�鏍�
+        if (slotMaxHeight > Math.min(glassInfoList.get(0).getWidth(), glassInfoList.get(0).getHeight()) && glassInfoList.get(0).getThickness() < slotMaxthickness) {
+            for (BigStorageCageTask task : inTaskList) {
+                GlassInfo info = glassListMap.get(task.getGlassId()).get(0);
+                BigStorageDTO bigStorageDTO = bigStorageGlassInfoService.queryBigStorageTargetSlot(info.getEngineerId(), info.getTemperingLayoutId(), info.getTemperingFeedSequence());
+                //鑾峰彇鐩爣鏍煎瓙淇℃伅
+//            BigStorageDTO bigStorageDTO = bigStorageCageDetailsService.queryTargetSlotByTempering(info);
+//            涓存椂鏇存柊鏍煎瓙鐨勫墿浣欏昂瀵革細闃叉鐩搁偦鐜荤拑杩涘悓涓�鏍煎瓙閫犳垚鍓╀綑灏哄涓嶈冻锛岀幓鐠冭秺鐣岀殑鎯呭喌锛屼换鍔″畬鎴愬悗鍐嶆鏇存柊澶х悊鐗囩琛ㄥ墿浣欏搴︼紙鎸夌収绗煎唴鐜荤拑鏁伴噺鏇存柊澶х悊鐗囩鍓╀綑灏哄锛�
+                bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>()
+                        .set(BigStorageCage::getRemainWidth, bigStorageDTO.getWidth() - Math.max(info.getWidth(), info.getHeight()) - glassGap)
+                        .eq(BigStorageCage::getSlot, bigStorageDTO.getSlot()));
+                task.setTargetSlot(bigStorageDTO.getSlot());
+                task.setGlassId(info.getGlassId());
+                bigStorageCageTaskService.updateTaskMessage("big_storage_cage_in_one_task", task);
+                //瀛樻斁鍘嗗彶浠诲姟
+                BigStorageCageHistoryTask historyTask = new BigStorageCageHistoryTask();
+                BeanUtils.copyProperties(task, historyTask);
+                historyTask.setTaskType(Const.BIG_STORAGE_BEFORE_IN);
+                historyTask.setGlassCount(glassInfoList.size());
+                historyTask.setTaskState(Const.ENGINEERING_NEW);
+                historyTasks.add(historyTask);
+                BigStorageCageDetails cageDetails = new BigStorageCageDetails();
+                BeanUtils.copyProperties(info, cageDetails);
+                cageDetails.setSlot(bigStorageDTO.getSlot());
+                cageDetails.setState(Const.GLASS_STATE_NEW);
+                cageDetails.setDeviceId(bigStorageDTO.getDeviceId());
+                cageDetails.setSequence(bigStorageDTO.getSlotSequence());
+                cageDetails.setAngle((int) info.getAngle());
+                cageDetails.setGap(glassGap);
+                cageDetails.setFilmsId(info.getFilmsid());
+                cageDetails.setId(null);
+                bigStorageCageDetailsService.save(cageDetails);
+            }
+        } else {
+            BigStorageCageTask task = inTaskList.get(0);
+            task.setTargetSlot(THROUGH_SLOT);
+            bigStorageCageTaskService.updateTaskMessage("big_storage_cage_in_one_task", task);
+            //瀛樻斁鍘嗗彶浠诲姟
+            BigStorageCageHistoryTask historyTask = new BigStorageCageHistoryTask();
+            BeanUtils.copyProperties(task, historyTask);
+            historyTask.setTaskType(Const.BIG_STORAGE_BEFORE_IN);
+            historyTask.setGlassCount(glassInfoList.size());
+            historyTask.setTaskState(Const.ENGINEERING_NEW);
+            historyTasks.add(historyTask);
+            GlassInfo info = glassInfoList.get(0);
+            BigStorageCageDetails cageDetails = new BigStorageCageDetails();
+            BeanUtils.copyProperties(info, cageDetails);
+            cageDetails.setSlot(THROUGH_SLOT);
+            cageDetails.setState(Const.GLASS_STATE_NEW);
+            cageDetails.setDeviceId(0);
+            cageDetails.setSequence(0);
+            cageDetails.setGap(glassGap);
+            cageDetails.setAngle((int) info.getAngle());
+            cageDetails.setFilmsId(info.getFilmsid());
+            cageDetails.setId(null);
+            bigStorageCageDetailsService.save(cageDetails);
+        }
+        //鍘嗗彶鏁版嵁鍏ュ簱
+        bigStorageCageHistoryTaskService.saveBatch(historyTasks);
+        //鍚憃pc鍙戦�佸惎鍔ㄤ俊鍙�
+        List<ReadWriteEntity> list = new ArrayList<>();
+        for (int i = 1; i <= inTaskList.size(); i++) {
+            list.add(generateReadWriteEntity("DLP1A.DLP1A.TO" + i, inTaskList.get(i - 1).getTargetSlot()));
+        }
+        list.add(generateReadWriteEntity("DLP1A.DLP1A.MesReply", 1));
+        miloService.writeToOpcWord(list);
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void outBigStorageTask() throws Exception {
+        Date startDate = new Date();
+        ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP1B.DLP1B.mesControl");
+        if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
+            log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫杩涚墖浠诲姟");
+            return;
+        }
+        ReadWriteEntity requestEntity = miloService.readFromOpcUa("DLP1B.DLP1B.RequestMes");
+        if (!"1".equals(requestEntity.getValue() + "")) {
+            log.info("褰撳墠鏈敹鍒板嚭鐗囪姹傦紝缁撴潫鍑虹墖浠诲姟");
+            return;
+        }
+        //鑾峰彇鍑虹墖浠诲姟琛�
+        List<BigStorageCageTask> outTaskList = bigStorageCageTaskService.queryTaskMessage("big_storage_cage_out_one_task");
+        if (CollectionUtil.isNotEmpty(outTaskList)) {
+            log.info("鏈夋鍦ㄦ墽琛岀殑鍑虹墖浠诲姟锛岀粨鏉熸湰娆″嚭鐗囦换鍔�");
+            return;
+        }
+        //鏄惁鍏佽閽㈠寲
+        //鏄惁鏈夋鍦ㄩ挗鍖栫殑鐜荤拑:閽㈠寲灏忕墖琛ㄥ叧鑱斿巻鍙蹭换鍔¤〃锛岀瓫閫夋湭鍑虹鐨勭幓鐠冧俊鎭�
+//            鑾峰彇褰撳墠閽㈠寲浠诲姟鏈畬鎴愬嚭鐗囩殑鐜荤拑淇℃伅
+
+        Integer temperingOutTargetPosition = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_TEMPERING_OUT_TARGET_POSITION);
+        List<TemperingGlassInfo> unFinishTemperingGlassInfoList = temperingGlassInfoService.list(new LambdaQueryWrapper<TemperingGlassInfo>()
+                .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW).orderByAsc(TemperingGlassInfo::getTemperingLayoutId).orderByAsc(TemperingGlassInfo::getTemperingFeedSequence));
+        if (CollectionUtil.isNotEmpty(unFinishTemperingGlassInfoList)) {
+            log.info("鏈夋鍦ㄥ嚭鐗囩殑閽㈠寲浠诲姟");
+            computeOutGlassInfoByVirtualSlot(unFinishTemperingGlassInfoList, "big_storage_cage_out_one_task", temperingOutTargetPosition, Const.GLASS_STATE_OUT_ING, Const.BIG_STORAGE_BEFORE_OUT);
+            Date endDate = new Date();
+            log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+            return;
+        }
+
+        BigStorageCageDetails details = bigStorageCageDetailsService.getOne(new LambdaQueryWrapper<BigStorageCageDetails>()
+                .eq(BigStorageCageDetails::getSlot, THROUGH_SLOT)
+                .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL).last("limit 1"));
+        if (details != null) {
+            TemperingGlassInfo temperingGlassInfo = new TemperingGlassInfo();
+            BeanUtils.copyProperties(details, temperingGlassInfo);
+            temperingGlassInfo.setState(-1);
+            temperingGlassInfoService.save(temperingGlassInfo);
+            computeOutGlassInfoByVirtualSlot(Arrays.asList(temperingGlassInfo), "big_storage_cage_out_one_task", temperingOutTargetPosition, Const.GLASS_STATE_OUT_ING, Const.BIG_STORAGE_BEFORE_OUT);
+            return;
+        }
+
+        if (redisUtil.getCacheObject("temperingSwitch")) {
+            //閽㈠寲浼樺厛锛氳幏鍙栫悊鐗囩  鐜荤拑灏忕墖  鐮存崯琛� 鏁伴噺   鍒ゆ柇绗煎唴鐗堝浘鏄惁鍒伴綈
+            List<TemperingLayoutDTO> temperingLayoutDTOList = bigStorageCageDetailsService.temperingIsAll();
+            if (CollectionUtil.isNotEmpty(temperingLayoutDTOList)) {
+                //鐜荤拑鍒伴綈鍖呮嫭宸插嚭鐗囩殑
+                //鍒伴綈锛屽皢鐜荤拑灏忕墖鏁版嵁瀛樺叆閽㈠寲灏忕墖琛紝閫昏緫鐢熸垚鍑虹墖浠诲姟  缁撴潫
+                for (TemperingLayoutDTO item : temperingLayoutDTOList) {
+//                    if (item.getEngineerId().equals(redisUtil.getCacheObject("temperingengineerId"))) {
+                    List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, JoinWrappers.lambda(GlassInfo.class)
+                            .select("-1 as state,t.filmsid as films_id,t.glass_id,t.flow_card_id,t.glass_type,t.width,t.height" +
+                                    ",t.thickness,t.ishorizontal,t.tempering_layout_id,t.tempering_feed_sequence,t.x_coordinate,t.y_coordinate," +
+                                    "t.angle,t1.slot,t.engineer_id")
+                            .innerJoin(BigStorageCageDetails.class, BigStorageCageDetails::getGlassId, GlassInfo::getGlassId)
+                            .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                            .eq(GlassInfo::getTemperingLayoutId, item.getTemperingLayoutId())
+                            .eq(GlassInfo::getEngineerId, item.getEngineerId())
+                            .orderByAsc(GlassInfo::getTemperingFeedSequence));
+                    if (CollectionUtil.isNotEmpty(temperingGlassInfos)) {
+                        temperingGlassInfoService.saveBatch(temperingGlassInfos);
+                        computeOutGlassInfoByVirtualSlot(temperingGlassInfos, "big_storage_cage_out_one_task", temperingOutTargetPosition, Const.GLASS_STATE_OUT_ING, Const.BIG_STORAGE_BEFORE_OUT);
+                        Date endDate = new Date();
+                        log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+                        return;
+                    }
+//                    }
+                }
+            }
+        }
+        //鏄惁鏈変汉宸ヤ笅鐗囦换鍔�   鏈夌洿鎺ュ嚭
+        Integer artificialOutTargetPosition = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_ARTIFICIAL_OUT_TARGET_POSITION);
+        Integer outCarMaxSize = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_OUT_CAR_SIZE);
+        List<BigStorageCageDetails> artificialList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
+                .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_ARTIFICIAL)
+                .orderByAsc(BigStorageCageDetails::getSlot)
+                .orderByAsc(BigStorageCageDetails::getId).last("limit " + outCarMaxSize));
+        if (CollectionUtil.isNotEmpty(artificialList)) {
+            computeOutGlassInfoByVirtualSlot(artificialList, "big_storage_cage_out_one_task", artificialOutTargetPosition, Const.GLASS_STATE_OUT_ING, Const.BIG_STORAGE_BEFORE_OUT);
+            Date endDate = new Date();
+            log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+            return;
+        }
+        //鏄惁瀛樺湪闇�瑕佸唴閮ㄨ皟搴︾殑鏍煎瓙:鎵ц鍐呴儴璋冨害浠诲姟
+        if (redisUtil.getCacheObject("dispatchSwitch")) {
+            //todo:鑾峰彇绗煎唴鍗曟牸宸茬粡鍒伴綈鐨勭幓鐠冩牸瀛愪俊鎭�
+            List<BigStorageRelationDTO> virtualList = bigStorageCageDetailsService.queryIsAllNeedDispatchVirtualSlot();
+            if (CollectionUtil.isEmpty(virtualList)) {
+                log.info("娌℃湁闇�瑕佽皟搴︾殑鏍煎瓙");
+                return;
+            }
+            List<BigStorageCageDetails> list = new ArrayList<>();
+            loop:
+            for (BigStorageRelationDTO dto : virtualList) {
+                List<BigStorageSequenceDTO> sequenceDTOList = bigStorageCageDetailsService.dispatchBigStorageGlassInfo(dto);
+                if (CollectionUtil.isEmpty(sequenceDTOList) || sequenceDTOList.size() == 1) {
+                    continue;
+                }
+                int sequence = -1;
+                int targetSlot = -1;
+                for (BigStorageSequenceDTO item : sequenceDTOList) {
+                    if (item.getMaxSequence() == sequence - 1) {
+                        //鐢熸垚璋冨害浠诲姟
+                        int startSlot = item.getSlot();
+                        list = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
+                                .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN).eq(BigStorageCageDetails::getSlot, startSlot));
+                        computeOutGlassInfoByVirtualSlot(list, "big_storage_cage_out_one_task",
+                                targetSlot, Const.GLASS_STATE_SCHEDULE_ING, Const.BIG_STORAGE_BEFORE_DISPATCH);
+                        List<Integer> slotList = new ArrayList<>();
+                        slotList.add(targetSlot);
+                        updateSlotRemainBySlots(slotList);
+                        break loop;
+                    }
+                    sequence = item.getMinSequence();
+                    targetSlot = item.getSlot();
+                }
+            }
+        }
+        Date endDate = new Date();
+        log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+        return;
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void finishInBigStorageTask() throws Exception {
+        ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP1A.DLP1A.mesControl");
+        if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
+            log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫瀹屾垚杩涚墖浠诲姟");
+            return;
+        }
+        //鑾峰彇杩涚墖浠诲姟琛�
+//        List<BigStorageCageTask> inTaskList = bigStorageCageTaskService.queryTaskMessage("big_storage_cage_in_one_task");
+        List<BigStorageCageTask> inTaskList = new ArrayList();
+
+        List<String> glassIdList = new ArrayList<>();
+        ReadWriteEntity toWord = miloService.readFromOpcUa("DLP1A.DLP1A.TO1");
+        if ("0".equals(toWord.getValue() + "")) {
+            log.info("瀹屾垚浠诲姟宸叉墽琛岋紝缁撴潫鏈瀹屾垚杩涚墖浠诲姟");
+            return;
+        }
+        for (int i = 1; i <= 6; i++) {
+            ReadWriteEntity requestWord = miloService.readFromOpcUa("DLP1A.DLP1A.DI" + i);
+            ReadWriteEntity statetWord = miloService.readFromOpcUa("DLP1A.DLP1A.STATE" + i);
+            ReadWriteEntity toOpcUa = miloService.readFromOpcUa("DLP1A.DLP1A.TO" + i);
+            ReadWriteEntity fromOpcUa = miloService.readFromOpcUa("DLP1A.DLP1A.FROM" + i);
+
+            if (null != requestWord.getValue()) {
+                BigStorageCageTask task = new BigStorageCageTask();
+                task.setGlassId(requestWord.getValue() + "");
+                task.setTargetSlot(Integer.parseInt(toOpcUa.getValue() + ""));
+                task.setTaskState(Integer.parseInt(statetWord.getValue() + ""));
+                task.setStartSlot(Integer.parseInt(fromOpcUa.getValue() + ""));
+                inTaskList.add(task);
+                glassIdList.add(requestWord.getValue() + "");
+                continue;
+            }
+        }
+        if (CollectionUtil.isEmpty(inTaskList)) {
+            log.info("褰撳墠澶ц溅鏃犺繘鐗囩幓鐠冿紝缁撴潫瀹屾垚杩涚墖浠诲姟");
+            return;
+        }
+        List<BigStorageCageTask> unFinishTaskList = inTaskList.stream().filter(e -> e.getTaskState() <= 1 || e.getStartSlot() == 0).collect(Collectors.toList());
+        if (CollectionUtil.isNotEmpty(unFinishTaskList)) {
+            log.info("瀛樺湪鏈畬鎴愮殑鐜荤拑淇℃伅,鐜荤拑锛歿}", unFinishTaskList);
+            return;
+        }
+        Map<Integer, List<BigStorageCageTask>> taskMap = inTaskList.stream().collect(Collectors.groupingBy(BigStorageCageTask::getTaskState));
+        //鎸夌収浠诲姟鐘舵�佷慨鏀瑰ぇ鐞嗙墖绗煎唴鐨勭幓鐠冩暟鎹�
+//        閲嶆柊璁$畻澶х悊鐗囩鍐呯殑鍓╀綑灏哄
+        taskMap.forEach((e1, v) -> {
+            if (e1 == 2) {
+                //杩涚墖瀹屾垚
+                log.info("3銆佽幏鍙栬繘鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", v);
+                List<Integer> inSuccessGlassSlot = v.stream().map(BigStorageCageTask::getTargetSlot).collect(Collectors.toList());
+                List<UpdateBigStorageCageDTO> storageCageDTOList = v.stream().map(e -> {
+                    UpdateBigStorageCageDTO storageCageDTO = new UpdateBigStorageCageDTO();
+                    BeanUtils.copyProperties(e, storageCageDTO);
+                    return storageCageDTO;
+                }).collect(Collectors.toList());
+                bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
+                log.info("4銆佸ぇ鐞嗙墖绗艰繘鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", v);
+                updateSlotRemainBySlots(inSuccessGlassSlot);
+            } else if (e1 == 3) {
+                //鐮存崯澶勭悊
+                dealDamageInTask(v);
+            } else {
+                //娓呯┖鐞嗙墖绗肩┖鏁版嵁
+                noDealInTask(v);
+            }
+        });
+        for (BigStorageCageTask item : inTaskList) {
+            //鏇存柊鍘嗗彶浠诲姟琛ㄤ腑鐨勪换鍔$姸鎬�
+            bigStorageCageHistoryTaskService.update(new LambdaUpdateWrapper<BigStorageCageHistoryTask>()
+                    .set(BigStorageCageHistoryTask::getTaskState, item.getTaskState())
+                    .eq(BigStorageCageHistoryTask::getTaskType, Const.BIG_STORAGE_BEFORE_IN)
+                    .eq(BigStorageCageHistoryTask::getTargetSlot, item.getTargetSlot())
+                    .eq(BigStorageCageHistoryTask::getGlassId, item.getGlassId()));
+            item.setTargetSlot(0);
+            //娓呯┖浠诲姟琛ㄦ暟鎹�
+            bigStorageCageTaskService.updateTaskMessage("big_storage_cage_in_one_task", item);
+        }
+        //娓呯┖鍚姩鐘舵��
+        //鍚憃pc鍙戦�佸惎鍔ㄤ俊鍙�
+        //鍚憃pc鍙戦�佸惎鍔ㄤ俊鍙�
+        List<ReadWriteEntity> list = new ArrayList<>();
+        for (int i = 1; i <= 6; i++) {
+            list.add(generateReadWriteEntity("DLP1A.DLP1A.TO" + i, 0));
+        }
+        list.add(generateReadWriteEntity("DLP1A.DLP1A.MesReply", 0));
+        miloService.writeToOpcWord(list);
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void finishOutBigStorageTask() throws Exception {
+        ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP1B.DLP1B.mesControl");
+        if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
+            log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫瀹屾垚鍑虹墖浠诲姟");
+            return;
+        }
+        //鑾峰彇杩涚墖浠诲姟琛�
+        List<BigStorageCageTask> outTaskList = bigStorageCageTaskService.queryTaskMessage("big_storage_cage_out_one_task");
+        if (CollectionUtil.isEmpty(outTaskList)) {
+            log.info("褰撳墠澶ц溅鏃犺繘鐗囩幓鐠冿紝缁撴潫瀹屾垚杩涚墖浠诲姟");
+            return;
+        }
+        List<BigStorageCageTask> unFinishTaskList = outTaskList.stream().filter(e -> e.getTaskState() <= 1 || e.getStartSlot() == 0).collect(Collectors.toList());
+        if (CollectionUtil.isNotEmpty(unFinishTaskList)) {
+            log.info("瀛樺湪鏈畬鎴愮殑鐜荤拑淇℃伅,鐜荤拑锛歿}", unFinishTaskList);
+            return;
+        }
+        Map<Integer, List<BigStorageCageTask>> taskMap = outTaskList.stream().collect(Collectors.groupingBy(BigStorageCageTask::getTaskState));
+        int taskType = 0;
+        if (Const.OUT_TARGET_POSITION_ALL.contains(outTaskList.get(0).getTargetSlot())) {
+            taskType = Const.BIG_STORAGE_BEFORE_OUT;
+        } else {
+            taskType = Const.BIG_STORAGE_BEFORE_DISPATCH;
+        }
+        //鎸夌収浠诲姟鐘舵�佷慨鏀瑰ぇ鐞嗙墖绗煎唴鐨勭幓鐠冩暟鎹�
+//        閲嶆柊璁$畻澶х悊鐗囩鍐呯殑鍓╀綑灏哄
+        Integer finalTaskType = taskType;
+        taskMap.forEach((e1, v) -> {
+            if (e1 == 2) {
+                //杩涚墖瀹屾垚
+                log.info("3銆佽幏鍙栬繘鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", v);
+                List<Integer> outSuccessGlassSlot = new ArrayList<>();
+                if (finalTaskType.equals(Const.BIG_STORAGE_BEFORE_OUT)) {
+                    outSuccessGlassSlot = v.stream().map(BigStorageCageTask::getStartSlot).collect(Collectors.toList());
+                } else {
+                    List<Integer> targetSuccessGlassSlot = v.stream().map(BigStorageCageTask::getTargetSlot).collect(Collectors.toList());
+                    List<Integer> startoutSuccessGlassSlot = v.stream().map(BigStorageCageTask::getStartSlot).collect(Collectors.toList());
+                    outSuccessGlassSlot.addAll(targetSuccessGlassSlot);
+                    outSuccessGlassSlot.addAll(startoutSuccessGlassSlot);
+                }
+                List<UpdateBigStorageCageDTO> storageCageDTOList = v.stream().map(e -> {
+                    UpdateBigStorageCageDTO storageCageDTO = new UpdateBigStorageCageDTO();
+                    storageCageDTO.setGlassId(e.getGlassId());
+                    if (finalTaskType.equals(Const.BIG_STORAGE_BEFORE_OUT)) {
+                        storageCageDTO.setTargetSlot(e.getStartSlot());
+                    } else {
+                        storageCageDTO.setTargetSlot(e.getTargetSlot());
+                    }
+                    return storageCageDTO;
+                }).collect(Collectors.toList());
+                if (finalTaskType.equals(Const.BIG_STORAGE_BEFORE_OUT)) {
+                    bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_OUT);
+                } else {
+                    bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
+                    //鎸夌収鏍煎瓙淇℃伅鏇存柊瀵瑰簲鐨勮澶噄d
+                    List<Integer> slotList = storageCageDTOList.stream().map(UpdateBigStorageCageDTO::getTargetSlot).distinct().collect(Collectors.toList());
+                    bigStorageCageDetailsService.updateDeviceIdBySlot(slotList);
+
+                }
+                log.info("4銆佸ぇ鐞嗙墖绗艰繘鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", v);
+                updateSlotRemainBySlots(outSuccessGlassSlot);
+            } else if (e1 == 3) {
+                //鐮存崯澶勭悊
+                dealDamageOutTask(v);
+            } else {
+                //娓呯┖鐞嗙墖绗肩┖鏁版嵁
+                noDealOutTask(v);
+            }
+        });
+        for (BigStorageCageTask item : outTaskList) {
+            //鏇存柊鍘嗗彶浠诲姟琛ㄤ腑鐨勪换鍔$姸鎬�
+            bigStorageCageHistoryTaskService.update(new LambdaUpdateWrapper<BigStorageCageHistoryTask>()
+                    .set(BigStorageCageHistoryTask::getTaskState, item.getTaskState())
+                    .eq(BigStorageCageHistoryTask::getTaskType, taskType)
+                    .eq(BigStorageCageHistoryTask::getGlassId, item.getGlassId()));
+            //鏇存柊閽㈠寲灏忕墖琛�
+            Integer taskState = item.getTaskState();
+            if (taskState == 2) {
+                temperingGlassInfoService.update(new LambdaUpdateWrapper<TemperingGlassInfo>()
+                        .set(TemperingGlassInfo::getState, Const.TEMPERING_OUT).eq(TemperingGlassInfo::getGlassId, item.getGlassId()));
+            } else if (taskState == 3) {
+//                temperingGlassInfoService.remove(new LambdaQueryWrapper<TemperingGlassInfo>().eq(TemperingGlassInfo::getGlassId, item.getGlassId()));
+                temperingGlassInfoService.update(new LambdaUpdateWrapper<TemperingGlassInfo>()
+                        .set(TemperingGlassInfo::getState, Const.TEMPERING_DAMAGE
+                        ).eq(TemperingGlassInfo::getGlassId, item.getGlassId()));
+
+            } else {
+//                绌烘墽琛�
+            }
+        }
+//       閲嶇疆浠诲姟琛ㄦ暟鎹�
+        bigStorageCageTaskService.updateOutTaskMessage("big_storage_cage_out_one_task");
+        //娓呯┖鍚姩鐘舵��
+        //鍚憃pc鍙戦�佸惎鍔ㄤ俊鍙�
+        miloService.writeToOpcWord(generateReadWriteEntity("DLP1B.DLP1B.MesReply", 0));
+    }
+
+    private void dealDamageInTask(List<BigStorageCageTask> damageTaskList) {
+//        鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
+        log.info("鐮存崯鐨勭幓鐠冧俊鎭湁锛歿}", damageTaskList);
+        //绉婚櫎鐞嗙墖绗艰鎯呰〃浠诲姟鎵ц杩囩▼涓牬鎹熺殑鐜荤拑
+        bigStorageCageDetailsService.remove(new LambdaQueryWrapper<BigStorageCageDetails>()
+                .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW)
+                .in(BigStorageCageDetails::getGlassId, damageTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList())));
+        //灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
+        List<Integer> slotList = new ArrayList<>();
+        for (BigStorageCageTask item : damageTaskList) {
+            Damage damage = new Damage();
+            damage.setGlassId(item.getGlassId());
+            damage.setLine(item.getStartSlot());
+            damage.setWorkingProcedure("澶х悊鐗囩");
+            damage.setRemark("杩涚鍓嶅崸杞珛");
+            damage.setStatus(1);
+            damage.setType(item.getTaskState());
+            damageService.insertDamage(damage);
+            slotList.add(item.getTargetSlot());
+        }
+        //鏇存柊鏍煎瓙鍓╀綑瀹藉害
+        updateSlotRemainBySlots(slotList);
+        log.info("杩涚墖浠诲姟-鐮存崯浠诲姟鎵ц瀹屾垚");
+    }
+
+    private void dealDamageOutTask(List<BigStorageCageTask> damageTaskList) {
+//        鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
+        log.info("鐮存崯鐨勭幓鐠冧俊鎭湁锛歿}", damageTaskList);
+        //绉婚櫎鐞嗙墖绗艰鎯呰〃浠诲姟鎵ц杩囩▼涓牬鎹熺殑鐜荤拑
+        bigStorageCageDetailsService.remove(new LambdaQueryWrapper<BigStorageCageDetails>()
+                .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
+                .in(BigStorageCageDetails::getGlassId, damageTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList())));
+        //灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
+        List<Integer> slotList = new ArrayList<>();
+        for (BigStorageCageTask item : damageTaskList) {
+            Damage damage = new Damage();
+            damage.setGlassId(item.getGlassId());
+            damage.setLine(item.getStartSlot());
+            damage.setWorkingProcedure("閽㈠寲鍓�");
+            damage.setRemark("杩涚鍚庡崸杞珛");
+            damage.setStatus(1);
+            damage.setType(item.getTaskState());
+            damageService.insertDamage(damage);
+            slotList.add(item.getTargetSlot());
+            slotList.add(item.getStartSlot());
+        }
+        //鏇存柊鏍煎瓙鍓╀綑瀹藉害
+        updateSlotRemainBySlots(slotList);
+        log.info("鍑虹墖浠诲姟-鐮存崯浠诲姟鎵ц瀹屾垚");
+    }
+
+    private void noDealInTask(List<BigStorageCageTask> noDealTaskList) {
+//        鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
+        log.info("鐮存崯鐨勭幓鐠冧俊鎭湁锛歿}", noDealTaskList);
+        //绉婚櫎鐞嗙墖绗艰鎯呰〃鏈墽琛屼换鍔$殑绌鸿褰曚俊鎭�
+        bigStorageCageDetailsService.remove(new LambdaQueryWrapper<BigStorageCageDetails>()
+                .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW)
+                .in(BigStorageCageDetails::getGlassId, noDealTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList())));
+        //璁板綍鏍煎瓙鍙凤紝鎸夋牸瀛愬彿鏇存柊鍓╀綑灏哄
+        List<Integer> slotList = new ArrayList<>();
+        for (BigStorageCageTask item : noDealTaskList) {
+            slotList.add(item.getTargetSlot());
+            slotList.add(item.getStartSlot());
+        }
+        //鏇存柊鏍煎瓙鍓╀綑瀹藉害
+        updateSlotRemainBySlots(slotList);
+        log.info("杩涚墖浠诲姟-鏃犲姩浣滄墽琛屽畬鎴�");
+    }
+
+    private void noDealOutTask(List<BigStorageCageTask> noDealTaskList) {
+//        鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
+        log.info("鐮存崯鐨勭幓鐠冧俊鎭湁锛歿}", noDealTaskList);
+        if (Const.OUT_TARGET_POSITION_ALL.contains(noDealTaskList.get(0).getTargetSlot())) {
+            //鍑虹墖浠诲姟:灏嗗嚭鐗囦腑鐘舵�佹仮澶嶄负鍦ㄧ鍐�
+            List<String> glassList = noDealTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList());
+            bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
+                    .set(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                    .ne(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+                    .in(BigStorageCageDetails::getGlassId, glassList));
+
+        } else {
+            //璋冨害浠诲姟锛氬皢璋冨害涓姸鎬佹敼涓哄湪绗煎唴锛屾牸瀛愬彿鎭㈠涓鸿皟搴﹀墠鐨勬牸瀛�
+            for (BigStorageCageTask item : noDealTaskList) {
+                bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
+                        .set(BigStorageCageDetails::getSlot, item.getStartSlot())
+                        .set(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                        .ne(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+                        .eq(BigStorageCageDetails::getGlassId, item.getGlassId()));
+            }
+        }
+        //灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
+        List<Integer> slotList = new ArrayList<>();
+        for (BigStorageCageTask item : noDealTaskList) {
+            slotList.add(item.getTargetSlot());
+            slotList.add(item.getStartSlot());
+        }
+        //鏇存柊鏍煎瓙鍓╀綑瀹藉害
+        updateSlotRemainBySlots(slotList);
+        log.info("鍑虹墖浠诲姟-鏃犲姩浣滄墽琛屽畬鎴�");
+    }
+
+    /**
+     * 鍑虹墖涓�娆′粎鐢熸垚涓�杞︾幓鐠�
+     *
+     * @param list
+     * @param <T>
+     * @return
+     */
+    private <T extends BigStorageCageBaseInfo> Boolean computeOutGlassInfoByVirtualSlot(List<T> list, String tableName, int targetSlot, int state, int taskType) {
+        //浠诲姟鏁版嵁:鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲�,鐜荤拑闂撮殧
+        List<T> outGlassList = list;
+        if (!THROUGH_SLOT.equals(list.get(0).getSlot())) {
+            //todo:涓存椂瑙e喅鏂规:鍑虹墖鏃惰�冭檻鐜荤拑纰版挒锛屾敼涓轰竴鐗囦竴鍑�
+            // 鐣岄潰鍏抽棴璋冨害寮�鍏� !Const.BIG_STORAGE_BEFORE_DISPATCH.equals(taskType)
+            if (list.get(0).getThickness() >= 8) {
+                outGlassList = list.subList(0, 1);
+            } else {
+                List<String> glassIdList = bigStorageGlassRelationInfoService.queryNeedOutGlassId(
+                        list.get(0).getEngineerId(), list.get(0).getTemperingLayoutId(), list.get(0).getTemperingFeedSequence());
+                outGlassList = list.stream().filter(e -> glassIdList.contains(e.getGlassId())).collect(Collectors.toList());
+            }
+        }
+        Assert.isFalse(CollectionUtil.isEmpty(outGlassList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟");
+        log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", outGlassList.size());
+        List<BigStorageCageTask> bigStorageCageTaskList = outGlassList.stream()
+                .map(e -> new BigStorageCageTask(e.getGlassId(), e.getSlot(), targetSlot, 0)).collect(Collectors.toList());
+
+        List<String> glassIds = bigStorageCageTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList());
+        int glassCount = bigStorageCageTaskList.size();
+        //鐢熸垚鍑虹墖浠诲姟鏉℃暟涓嶈冻6琛ュ叏
+        while (bigStorageCageTaskList.size() < 6) {
+            bigStorageCageTaskList.add(new BigStorageCageTask("", 0, 0, 0));
+        }
+        //娓呯┖浠诲姟琛ㄦ暟鎹�
+        bigStorageCageTaskService.removeAll("big_storage_cage_out_one_task");
+        bigStorageCageTaskService.saveTaskMessage(tableName, bigStorageCageTaskList);
+        List<BigStorageCageHistoryTask> historyList = bigStorageCageTaskList.stream().filter(e -> StringUtils.isNotBlank(e.getGlassId())).map(e -> {
+            BigStorageCageHistoryTask history = new BigStorageCageHistoryTask();
+            BeanUtils.copyProperties(e, history);
+            history.setGlassCount(glassCount);
+            history.setTaskType(taskType);
+            return history;
+        }).collect(Collectors.toList());
+        bigStorageCageHistoryTaskService.saveBatch(historyList);
+
+        log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄嚭鐗囦腑", glassIds);
+        bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
+                .set(BigStorageCageDetails::getState, state)
+                .set(Const.BIG_STORAGE_BEFORE_DISPATCH.equals(taskType), BigStorageCageBaseInfo::getSlot, targetSlot)
+                .ne(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+                .in(BigStorageCageDetails::getGlassId, glassIds));
+        try {
+            miloService.writeToOpcWord(generateReadWriteEntity("DLP1B.DLP1B.MesReply", 1));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return Boolean.TRUE;
+    }
+
+    //    /**
+//     * 鍑虹墖涓�娆′粎鐢熸垚涓�杞︾幓鐠�
+//     *
+//     * @param list
+//     * @param <T>
+//     * @return
+//     */
+    private <T extends BigStorageCageBaseInfo> Boolean computeOutGlassInfo(List<T> list, String tableName, int targetSlot, int state, int taskType) {
+        //浠诲姟鏁版嵁:鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲�,鐜荤拑闂撮殧
+        List<BigStorageCageTask> bigStorageCageTaskList = new ArrayList<>();
+        //鎵撹溅鍓╀綑灏哄
+        Integer outCarMaxSize = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_OUT_CAR_SIZE);
+        Integer glassGap = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_GLASS_GAP);
+        Integer remainWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_CAR_WIDTH);
+        for (T e : list) {
+            if (bigStorageCageTaskList.size() >= outCarMaxSize || Math.max((int) e.getWidth(), (int) e.getHeight()) > remainWidth) {
+                break;
+            }
+            //璁$畻褰撳墠鍑虹墖杞﹀墿灏哄
+            remainWidth = remainWidth - Math.max((int) e.getWidth(), (int) e.getHeight()) - glassGap;
+            bigStorageCageTaskList.add(new BigStorageCageTask(e.getGlassId(), e.getSlot(), targetSlot,
+                    0));
+        }
+        Assert.isFalse(CollectionUtil.isEmpty(bigStorageCageTaskList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟");
+        log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", bigStorageCageTaskList.size());
+        List<String> glassIds = bigStorageCageTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList());
+        int glassCount = bigStorageCageTaskList.size();
+        //鐢熸垚鍑虹墖浠诲姟鏉℃暟涓嶈冻6琛ュ叏
+        while (bigStorageCageTaskList.size() < 6) {
+            bigStorageCageTaskList.add(new BigStorageCageTask("", 0, 0, 0));
+        }
+        //娓呯┖浠诲姟琛ㄦ暟鎹�
+        bigStorageCageTaskService.removeAll("big_storage_cage_out_one_task");
+        bigStorageCageTaskService.saveTaskMessage(tableName, bigStorageCageTaskList);
+        List<BigStorageCageHistoryTask> historyList = bigStorageCageTaskList.stream().filter(e -> StringUtils.isNotBlank(e.getGlassId())).map(e -> {
+            BigStorageCageHistoryTask history = new BigStorageCageHistoryTask();
+            BeanUtils.copyProperties(e, history);
+            history.setGlassCount(glassCount);
+            history.setTaskType(taskType);
+            return history;
+        }).collect(Collectors.toList());
+        bigStorageCageHistoryTaskService.saveBatch(historyList);
+
+        log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄嚭鐗囦腑", glassIds);
+        bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
+                .set(BigStorageCageDetails::getState, state)
+                .ne(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+                .set(Const.GLASS_STATE_SCHEDULE_ING.equals(state), BigStorageCageBaseInfo::getSlot, targetSlot)
+                .in(BigStorageCageDetails::getGlassId, glassIds));
+        try {
+            miloService.writeToOpcWord(generateReadWriteEntity("DLP1B.DLP1B.MesReply", 1));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return Boolean.TRUE;
+    }
+
+
+    public void updateSlotRemainBySlots(List<Integer> slotList) {
+        //鑾峰彇鏍煎瓙鍐呮墍鏈夌殑鐜荤拑淇℃伅
+        List<BigStorageCageDetails> inSlotGlassList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
+                .in(BigStorageCageDetails::getSlot, slotList).in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
+        Map<Integer, Double> slotRemainMap = new HashMap<>();
+        Integer glassGap = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_GLASS_GAP);
+        Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
+        //鏄惁瀛樺湪鏈夋牸瀛愰潪绌虹殑鐜荤拑
+        if (CollectionUtil.isNotEmpty(inSlotGlassList)) {
+            //瀛樺湪  灏嗘牸瀛愬唴鐨勭幓鐠冨垎鍒繘琛屾洿鏂�
+            slotRemainMap = inSlotGlassList.stream()
+                    .collect(Collectors.groupingBy(BigStorageCageDetails::getSlot, Collectors.summingDouble(item -> Math.max(item.getWidth(), item.getHeight()) + glassGap)));
+            slotRemainMap.forEach((e, v) -> {
+                double remainWidth = slotWidth - v >= 0 ? slotWidth - v : 0;
+                bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, remainWidth)
+                        .eq(BigStorageCage::getSlot, e));
+            });
+        }
+        //杩囨护涓嶅瓨鍦ㄧ幓鐠冪殑鏍煎瓙 灏嗗搴﹂噸缃负鍘熷瀹藉害5000
+        Set<Integer> remainSlotList = slotRemainMap.keySet();
+        slotList.removeAll(remainSlotList);
+        if (CollectionUtil.isNotEmpty(slotList)) {
+            bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, slotWidth)
+                    .in(BigStorageCage::getSlot, slotList));
+        }
+    }
+
+    private ReadWriteEntity generateReadWriteEntity(String identifier, Object value) {
+        return ReadWriteEntity.builder()
+                .identifier(identifier)
+                //Kep涓槸Long绫诲瀷锛屽嵆锛欼nt32锛孞ava涓殑int绫诲瀷
+                .value(value)
+                .build();
+    }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageTask.java
new file mode 100644
index 0000000..5327d79
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageTask.java
@@ -0,0 +1,613 @@
+//package com.mes.job;
+//
+//import cn.hutool.core.collection.CollectionUtil;
+//import cn.hutool.core.lang.Assert;
+//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+//import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+//import com.github.yulichang.toolkit.JoinWrappers;
+//import com.kangaroohy.milo.model.ReadWriteEntity;
+//import com.kangaroohy.milo.service.MiloService;
+//import com.mes.base.entity.BigStorageCageBaseInfo;
+//import com.mes.bigstorage.entity.BigStorageCage;
+//import com.mes.bigstorage.entity.BigStorageCageDetails;
+//import com.mes.bigstorage.entity.dto.BigStorageDTO;
+//import com.mes.bigstorage.entity.dto.SlotSequenceDTO;
+//import com.mes.bigstorage.entity.dto.TemperingLayoutDTO;
+//import com.mes.bigstorage.service.BigStorageCageDetailsService;
+//import com.mes.bigstorage.service.BigStorageCageService;
+//import com.mes.bigstoragecagetask.entity.BigStorageCageHistoryTask;
+//import com.mes.bigstoragecagetask.entity.BigStorageCageTask;
+//import com.mes.bigstoragecagetask.service.BigStorageCageHistoryTaskService;
+//import com.mes.bigstoragecagetask.service.BigStorageCageTaskService;
+//import com.mes.bigstoragetask.entity.UpdateBigStorageCageDTO;
+//import com.mes.common.config.Const;
+//import com.mes.damage.entity.Damage;
+//import com.mes.damage.service.DamageService;
+//import com.mes.glassinfo.entity.GlassInfo;
+//import com.mes.glassinfo.service.GlassInfoService;
+//import com.mes.temperingglass.entity.TemperingGlassInfo;
+//import com.mes.temperingglass.service.TemperingGlassInfoService;
+//import com.mes.utils.RedisUtil;
+//import lombok.extern.slf4j.Slf4j;
+//import org.apache.commons.lang.StringUtils;
+//import org.springframework.beans.BeanUtils;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.beans.factory.annotation.Value;
+//import org.springframework.stereotype.Component;
+//
+//import javax.annotation.Resource;
+//import java.util.*;
+//import java.util.stream.Collectors;
+//
+///**
+// * @author SNG-015
+// */
+//@Component
+//@Slf4j
+//public class OpcPlcStorageCageTask {
+//    @Resource
+//    private BigStorageCageDetailsService bigStorageCageDetailsService;
+//    @Resource
+//    private TemperingGlassInfoService temperingGlassInfoService;
+//    @Resource
+//    private DamageService damageService;
+//    @Resource
+//    private GlassInfoService glassInfoService;
+//    @Resource
+//    private BigStorageCageService bigStorageCageService;
+//    @Resource
+//    private BigStorageCageHistoryTaskService bigStorageCageHistoryTaskService;
+//    @Resource
+//    private BigStorageCageTaskService bigStorageCageTaskService;
+//
+//    @Autowired(required = false)
+//    MiloService miloService;
+//
+//    @Resource
+//    private RedisUtil redisUtil;
+//
+//    @Value("${mes.slotWidth}")
+//    private Integer slotWidth;
+//
+//    @Value("${mes.glassGap}")
+//    private Integer glassGap;
+//
+//    @Value("${mes.carWidth}")
+//    private Integer carWidth;
+//
+//    @Value("${mes.outCarMaxSize}")
+//    private Integer outCarMaxSize;
+//
+//    @Value("${mes.sequence.order}")
+//    private boolean sequenceOrder;
+//
+//    @Value("${mes.temperingOutTargetPosition}")
+//    private Integer temperingOutTargetPosition;
+//    @Value("${mes.artificialOutTargetPosition}")
+//    private Integer artificialOutTargetPosition;
+//
+//
+//    // @Scheduled(fixedDelay = 1000)
+//    public void inBigStorageTask() throws Exception {
+//        ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP1A.DLP1A.mesControl");
+//        if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
+//            log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫杩涚墖浠诲姟");
+//            return;
+//        }
+//        ReadWriteEntity requestEntity = miloService.readFromOpcUa("DLP1A.DLP1A.RequestMes");
+//        if (!"1".equals(requestEntity.getValue() + "")) {
+//            log.info("褰撳墠鏈敹鍒拌繘鐗囪姹傦紝缁撴潫杩涚墖浠诲姟");
+//            return;
+//        }
+//        ReadWriteEntity mesReplyEntity = miloService.readFromOpcUa("DLP1A.DLP1A.MesReply");
+//        if ("1".equals(mesReplyEntity.getValue() + "")) {
+//            log.info("鏈夋鍦ㄦ墽琛岀殑浠诲姟锛岀粨鏉熻繘鐗囦换鍔�");
+//            return;
+//        }
+//        //鑾峰彇杩涚墖浠诲姟琛�
+//        List<BigStorageCageTask> inTaskList = bigStorageCageTaskService.queryTaskMessage("big_storage_cage_in_one_task");
+//        if (CollectionUtil.isEmpty(inTaskList)) {
+//            log.info("褰撳墠澶ц溅鏃犺繘鐗囩幓鐠冿紝缁撴潫杩涚墖浠诲姟");
+//        }
+//
+//        List<String> glassIdList = inTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList());
+//        log.info("鑾峰彇浠诲姟鐨勭幓鐠僫d锛歿}", glassIdList);
+//        Map<String, Long> glassCountMap = glassIdList.stream().collect(Collectors.groupingBy(e -> e, Collectors.counting()));
+//        for (Map.Entry<String, Long> entry : glassCountMap.entrySet()) {
+//            if (entry.getValue() > 1) {
+//                log.info("杩涚墖鐜荤拑{}瀛樺湪鐩稿悓锛岀粨鏉熸湰娆′换鍔�", entry.getKey());
+//                //todo:鍚憄lc鍙戦�佹姤璀�
+//                return;
+//            }
+//        }
+//        List<BigStorageCageDetails> detailsList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>().in(BigStorageCageDetails::getGlassId, glassIdList)
+//                .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
+//        if (CollectionUtil.isNotEmpty(detailsList)) {
+//            log.info("鐞嗙墖绗煎瓨鍦ㄧ浉鍚岀殑杩涚墖鐜荤拑{}锛岀粨鏉熸湰娆′换鍔�", detailsList);
+//            //todo:鍚憄lc鍙戦�佹姤璀�
+//            return;
+//        }
+//        List<GlassInfo> glassInfoList = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>().in(GlassInfo::getGlassId, glassIdList));
+//
+//        Map<String, List<GlassInfo>> glassListMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getGlassId));
+//
+//        //璁$畻鐩爣鏍煎瓙
+//        List<BigStorageCageHistoryTask> historyTasks = new ArrayList<>();
+//        for (BigStorageCageTask task : inTaskList) {
+//            GlassInfo info = glassListMap.get(task.getGlassId()).get(0);
+//            //鑾峰彇鐩爣鏍煎瓙淇℃伅
+//            BigStorageDTO bigStorageDTO = bigStorageCageDetailsService.queryTargetSlotByTempering(info);
+////            涓存椂鏇存柊鏍煎瓙鐨勫墿浣欏昂瀵革細闃叉鐩搁偦鐜荤拑杩涘悓涓�鏍煎瓙閫犳垚鍓╀綑灏哄涓嶈冻锛岀幓鐠冭秺鐣岀殑鎯呭喌锛屼换鍔″畬鎴愬悗鍐嶆鏇存柊澶х悊鐗囩琛ㄥ墿浣欏搴︼紙鎸夌収绗煎唴鐜荤拑鏁伴噺鏇存柊澶х悊鐗囩鍓╀綑灏哄锛�
+//            bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>()
+//                    .set(BigStorageCage::getRemainWidth, bigStorageDTO.getWidth() - Math.max(info.getWidth(), info.getHeight()) - glassGap)
+//                    .eq(BigStorageCage::getSlot, bigStorageDTO.getSlot()));
+//            task.setTargetSlot(bigStorageDTO.getSlot());
+//            task.setGlassId(info.getGlassId());
+//            bigStorageCageTaskService.updateTaskMessage("big_storage_cage_in_one_task", task);
+//            //瀛樻斁鍘嗗彶浠诲姟
+//            BigStorageCageHistoryTask historyTask = new BigStorageCageHistoryTask();
+//            BeanUtils.copyProperties(task, historyTask);
+//            historyTask.setTaskType(Const.BIG_STORAGE_BEFORE_IN);
+//            historyTask.setGlassCount(glassInfoList.size());
+//            historyTask.setTaskState(Const.ENGINEERING_NEW);
+//            historyTasks.add(historyTask);
+//            BigStorageCageDetails cageDetails = new BigStorageCageDetails();
+//            BeanUtils.copyProperties(info, cageDetails);
+//            cageDetails.setSlot(bigStorageDTO.getSlot());
+//            cageDetails.setState(Const.GLASS_STATE_NEW);
+//            cageDetails.setDeviceId(bigStorageDTO.getDeviceId());
+//            cageDetails.setGap(glassGap);
+//            cageDetails.setId(null);
+//            bigStorageCageDetailsService.save(cageDetails);
+//        }
+//        //鍘嗗彶鏁版嵁鍏ュ簱
+//        bigStorageCageHistoryTaskService.saveBatch(historyTasks);
+//        //鍚憃pc鍙戦�佸惎鍔ㄤ俊鍙�
+//        miloService.writeToOpcWord(generateReadWriteEntity("DLP1A.DLP1A.MesReply", 1));
+//    }
+//
+//    // @Scheduled(fixedDelay = 1000)
+//    public void outBigStorageTask() throws Exception {
+//        Date startDate = new Date();
+//        ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP1B.DLP1B.mesControl");
+//        if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
+//            log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫杩涚墖浠诲姟");
+//            return;
+//        }
+//        ReadWriteEntity requestEntity = miloService.readFromOpcUa("DLP1B.DLP1B.RequestMes");
+//        if (!"1".equals(requestEntity.getValue() + "")) {
+//            log.info("褰撳墠鏈敹鍒板嚭鐗囪姹傦紝缁撴潫鍑虹墖浠诲姟");
+//            return;
+//        }
+//        //鑾峰彇鍑虹墖浠诲姟琛�
+//        List<BigStorageCageTask> outTaskList = bigStorageCageTaskService.queryTaskMessage("big_storage_cage_out_one_task");
+//        if (CollectionUtil.isNotEmpty(outTaskList)) {
+//            log.info("鏈夋鍦ㄦ墽琛岀殑鍑虹墖浠诲姟锛岀粨鏉熸湰娆″嚭鐗囦换鍔�");
+//            return;
+//        }
+//        //todo:鏄惁鍏佽閽㈠寲
+//        if (redisUtil.getCacheObject("temperingSwitch")) {
+//            //鏄惁鏈夋鍦ㄩ挗鍖栫殑鐜荤拑:閽㈠寲灏忕墖琛ㄥ叧鑱斿巻鍙蹭换鍔¤〃锛岀瓫閫夋湭鍑虹鐨勭幓鐠冧俊鎭�
+////            鑾峰彇褰撳墠閽㈠寲浠诲姟鏈畬鎴愬嚭鐗囩殑鐜荤拑淇℃伅
+//            List<TemperingGlassInfo> unFinishTemperingGlassInfoList = temperingGlassInfoService.list(new LambdaQueryWrapper<TemperingGlassInfo>().eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW));
+//            if (CollectionUtil.isNotEmpty(unFinishTemperingGlassInfoList)) {
+//                List<String> glassIdList = unFinishTemperingGlassInfoList.stream().map(TemperingGlassInfo::getGlassId).collect(Collectors.toList());
+//                List<BigStorageCageHistoryTask> historyTaskList = bigStorageCageHistoryTaskService.list(new LambdaQueryWrapper<BigStorageCageHistoryTask>()
+//                        .eq(BigStorageCageHistoryTask::getTaskType, Const.BIG_STORAGE_BEFORE_OUT)
+//                        .in(BigStorageCageHistoryTask::getGlassId, glassIdList));
+//                List<TemperingGlassInfo> temperingGlassList = unFinishTemperingGlassInfoList;
+//                if (CollectionUtil.isNotEmpty(historyTaskList)) {
+//                    List<String> taskGlassList = historyTaskList.stream().map(BigStorageCageHistoryTask::getGlassId).collect(Collectors.toList());
+//                    temperingGlassList = unFinishTemperingGlassInfoList.stream().filter(e -> !taskGlassList.contains(e.getGlassId())).collect(Collectors.toList());
+//                }
+//                if (CollectionUtil.isNotEmpty(temperingGlassList)) {
+//                    log.info("鏈夋鍦ㄥ嚭鐗囩殑閽㈠寲浠诲姟");
+//                    computeOutGlassInfo(temperingGlassList, "big_storage_cage_out_one_task", temperingOutTargetPosition, Const.GLASS_STATE_OUT_ING, Const.BIG_STORAGE_BEFORE_OUT);
+//                    Date endDate = new Date();
+//                    log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//                    return;
+//                }
+//            }
+//            //閽㈠寲浼樺厛锛氳幏鍙栫悊鐗囩  鐜荤拑灏忕墖  鐮存崯琛� 鏁伴噺   鍒ゆ柇绗煎唴鐗堝浘鏄惁鍒伴綈
+//            List<TemperingLayoutDTO> temperingLayoutDTOList = bigStorageCageDetailsService.temperingIsAll();
+//            if (CollectionUtil.isNotEmpty(temperingLayoutDTOList)) {
+//                //鐜荤拑鍒伴綈鍖呮嫭宸插嚭鐗囩殑
+//                //鍒伴綈锛屽皢鐜荤拑灏忕墖鏁版嵁瀛樺叆閽㈠寲灏忕墖琛紝閫昏緫鐢熸垚鍑虹墖浠诲姟  缁撴潫
+//                for (TemperingLayoutDTO item : temperingLayoutDTOList) {
+////                    if (item.getEngineerId().equals(redisUtil.getCacheObject("temperingengineerId"))) {
+//                    List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, JoinWrappers.lambda(GlassInfo.class)
+//                            .selectAll(GlassInfo.class)
+//                            .select("-1 as state")
+//                            .selectAs(BigStorageCageDetails::getSlot, TemperingGlassInfo::getSlot)
+//                            .innerJoin(BigStorageCageDetails.class, BigStorageCageDetails::getGlassId, GlassInfo::getGlassId)
+//                            .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+//                            .eq(GlassInfo::getTemperingLayoutId, item.getTemperingLayoutId())
+//                            .eq(GlassInfo::getEngineerId, item.getEngineerId())
+//                            .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence));
+//                    if (CollectionUtil.isNotEmpty(temperingGlassInfos)) {
+//                        temperingGlassInfoService.saveBatch(temperingGlassInfos);
+//                        computeOutGlassInfo(temperingGlassInfos, "big_storage_cage_out_one_task", temperingOutTargetPosition, Const.GLASS_STATE_OUT_ING, Const.BIG_STORAGE_BEFORE_OUT);
+//                        Date endDate = new Date();
+//                        log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//                        return;
+//                    }
+////                    }
+//                }
+//            }
+//        }
+//        //鏄惁鏈変汉宸ヤ笅鐗囦换鍔�   鏈夌洿鎺ュ嚭
+//        List<BigStorageCageDetails> artificialList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
+//                .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_ARTIFICIAL)
+//                .orderByAsc(BigStorageCageDetails::getSlot)
+//                .orderByAsc(BigStorageCageDetails::getId));
+//        if (CollectionUtil.isNotEmpty(artificialList)) {
+//            computeOutGlassInfo(artificialList, "big_storage_cage_out_one_task", artificialOutTargetPosition, Const.GLASS_STATE_OUT_ING, Const.BIG_STORAGE_BEFORE_OUT);
+//            Date endDate = new Date();
+//            log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//            return;
+//        }
+//        //鏄惁瀛樺湪闇�瑕佸唴閮ㄨ皟搴︾殑鏍煎瓙:鎵ц鍐呴儴璋冨害浠诲姟
+//        List<TemperingLayoutDTO> temperingOccupySlotList = bigStorageCageDetailsService.queryTemperingOccupySlot();
+//        if (CollectionUtil.isNotEmpty(temperingOccupySlotList)) {
+//            loop:
+//            for (TemperingLayoutDTO temperingOccupySlot : temperingOccupySlotList) {
+//                List<SlotSequenceDTO> slotSequenceList = bigStorageCageDetailsService.queryGlassMaxAndMin(temperingOccupySlot.getEngineerId(), temperingOccupySlot.getTemperingLayoutId());
+//                for (int i = 0; i < slotSequenceList.size() - 1; i++) {
+//                    SlotSequenceDTO first = slotSequenceList.get(i);
+//                    SlotSequenceDTO second = slotSequenceList.get(i + 1);
+//                    int slotWidth = carWidth - first.getRemainWidth() - glassGap;
+//                    int totalCount = first.getGlassCount() + second.getGlassCount();
+//                    if (totalCount <= 6 && first.getMinSequence() == second.getMaxSequence() + 1
+//                            && second.getRemainWidth() > slotWidth && slotWidth >= 0) {
+//                        List<BigStorageCageDetails> list = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
+//                                .eq(BigStorageCageDetails::getSlot, first.getSlot()).eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+//                                .orderBy(Boolean.TRUE, sequenceOrder, BigStorageCageDetails::getTemperingFeedSequence));
+//                        if (CollectionUtil.isNotEmpty(list)) {
+//                            computeOutGlassInfo(list, "big_storage_cage_out_one_task", second.getSlot(), Const.GLASS_STATE_SCHEDULE_ING, Const.BIG_STORAGE_BEFORE_DISPATCH);
+//                        }
+//                        //浣跨敤Arrays.asList() 浣跨敤removeAll鎶ラ敊锛屾敼涓烘甯镐娇鐢↙ist
+//                        List<Integer> slotList = new ArrayList<>();
+//                        slotList.add(second.getSlot());
+//                        updateSlotRemainBySlots(slotList);
+//                        break loop;
+//                    }
+//                }
+//            }
+//        }
+//        Date endDate = new Date();
+//        log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//        return;
+//    }
+//
+//    // @Scheduled(fixedDelay = 1000)
+//    public void finishInBigStorageTask() throws Exception {
+//        ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP1A.DLP1A.mesControl");
+//        if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
+//            log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫瀹屾垚杩涚墖浠诲姟");
+//            return;
+//        }
+//        //鑾峰彇杩涚墖浠诲姟琛�
+//        List<BigStorageCageTask> inTaskList = bigStorageCageTaskService.queryTaskMessage("big_storage_cage_in_one_task");
+//        if (CollectionUtil.isEmpty(inTaskList)) {
+//            log.info("褰撳墠澶ц溅鏃犺繘鐗囩幓鐠冿紝缁撴潫瀹屾垚杩涚墖浠诲姟");
+//            return;
+//        }
+//        List<BigStorageCageTask> unFinishTaskList = inTaskList.stream().filter(e -> e.getTaskState() <= 1 || e.getStartSlot() == 0).collect(Collectors.toList());
+//        if (CollectionUtil.isNotEmpty(unFinishTaskList)) {
+//            log.info("瀛樺湪鏈畬鎴愮殑鐜荤拑淇℃伅,鐜荤拑锛歿}", unFinishTaskList);
+//            return;
+//        }
+//        Map<Integer, List<BigStorageCageTask>> taskMap = inTaskList.stream().collect(Collectors.groupingBy(BigStorageCageTask::getTaskState));
+//        //鎸夌収浠诲姟鐘舵�佷慨鏀瑰ぇ鐞嗙墖绗煎唴鐨勭幓鐠冩暟鎹�
+////        閲嶆柊璁$畻澶х悊鐗囩鍐呯殑鍓╀綑灏哄
+//        taskMap.forEach((e1, v) -> {
+//            if (e1 == 2) {
+//                //杩涚墖瀹屾垚
+//                log.info("3銆佽幏鍙栬繘鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", v);
+//                List<Integer> inSuccessGlassSlot = v.stream().map(BigStorageCageTask::getTargetSlot).collect(Collectors.toList());
+//                List<UpdateBigStorageCageDTO> storageCageDTOList = v.stream().map(e -> {
+//                    UpdateBigStorageCageDTO storageCageDTO = new UpdateBigStorageCageDTO();
+//                    BeanUtils.copyProperties(e, storageCageDTO);
+//                    return storageCageDTO;
+//                }).collect(Collectors.toList());
+//                bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
+//                log.info("4銆佸ぇ鐞嗙墖绗艰繘鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", v);
+//                updateSlotRemainBySlots(inSuccessGlassSlot);
+//            } else if (e1 == 3) {
+//                //鐮存崯澶勭悊
+//                dealDamageInTask(v);
+//            } else {
+//                //娓呯┖鐞嗙墖绗肩┖鏁版嵁
+//                noDealInTask(v);
+//            }
+//        });
+//        for (BigStorageCageTask item : inTaskList) {
+//            //鏇存柊鍘嗗彶浠诲姟琛ㄤ腑鐨勪换鍔$姸鎬�
+//            bigStorageCageHistoryTaskService.update(new LambdaUpdateWrapper<BigStorageCageHistoryTask>()
+//                    .set(BigStorageCageHistoryTask::getTaskState, item.getTaskState())
+//                    .eq(BigStorageCageHistoryTask::getTaskType, Const.BIG_STORAGE_BEFORE_IN)
+//                    .eq(BigStorageCageHistoryTask::getTargetSlot, item.getTargetSlot())
+//                    .eq(BigStorageCageHistoryTask::getGlassId, item.getGlassId()));
+//            item.setTargetSlot(0);
+//            //娓呯┖浠诲姟琛ㄦ暟鎹�
+//            bigStorageCageTaskService.updateTaskMessage("big_storage_cage_in_one_task", item);
+//        }
+//        //娓呯┖鍚姩鐘舵��
+//        //鍚憃pc鍙戦�佸惎鍔ㄤ俊鍙�
+//        miloService.writeToOpcWord(generateReadWriteEntity("DLP1A.DLP1A.MesReply", 0));
+//    }
+//
+//    // @Scheduled(fixedDelay = 1000)
+//    public void finishOutBigStorageTask() throws Exception {
+//        ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP1B.DLP1B.mesControl");
+//        if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
+//            log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫瀹屾垚鍑虹墖浠诲姟");
+//            return;
+//        }
+//        //鑾峰彇杩涚墖浠诲姟琛�
+//        List<BigStorageCageTask> outTaskList = bigStorageCageTaskService.queryTaskMessage("big_storage_cage_out_one_task");
+//        if (CollectionUtil.isEmpty(outTaskList)) {
+//            log.info("褰撳墠澶ц溅鏃犺繘鐗囩幓鐠冿紝缁撴潫瀹屾垚杩涚墖浠诲姟");
+//            return;
+//        }
+//        List<BigStorageCageTask> unFinishTaskList = outTaskList.stream().filter(e -> e.getTaskState() <= 1 || e.getStartSlot() == 0).collect(Collectors.toList());
+//        if (CollectionUtil.isNotEmpty(unFinishTaskList)) {
+//            log.info("瀛樺湪鏈畬鎴愮殑鐜荤拑淇℃伅,鐜荤拑锛歿}", unFinishTaskList);
+//            return;
+//        }
+//        Map<Integer, List<BigStorageCageTask>> taskMap = outTaskList.stream().collect(Collectors.groupingBy(BigStorageCageTask::getTaskState));
+//        int taskType = 0;
+//        if (Const.OUT_TARGET_POSITION_ALL.contains(outTaskList.get(0).getTargetSlot())) {
+//            taskType = Const.BIG_STORAGE_BEFORE_OUT;
+//        } else {
+//            taskType = Const.BIG_STORAGE_BEFORE_DISPATCH;
+//        }
+//        //鎸夌収浠诲姟鐘舵�佷慨鏀瑰ぇ鐞嗙墖绗煎唴鐨勭幓鐠冩暟鎹�
+////        閲嶆柊璁$畻澶х悊鐗囩鍐呯殑鍓╀綑灏哄
+//        Integer finalTaskType = taskType;
+//        taskMap.forEach((e1, v) -> {
+//            if (e1 == 2) {
+//                //杩涚墖瀹屾垚
+//                log.info("3銆佽幏鍙栬繘鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", v);
+//                List<Integer> outSuccessGlassSlot = new ArrayList<>();
+//                if (finalTaskType.equals(Const.BIG_STORAGE_BEFORE_OUT)) {
+//                    outSuccessGlassSlot = v.stream().map(BigStorageCageTask::getStartSlot).collect(Collectors.toList());
+//                } else {
+//                    outSuccessGlassSlot = v.stream().map(BigStorageCageTask::getTargetSlot).collect(Collectors.toList());
+//                }
+//                List<UpdateBigStorageCageDTO> storageCageDTOList = v.stream().map(e -> {
+//                    UpdateBigStorageCageDTO storageCageDTO = new UpdateBigStorageCageDTO();
+//                    storageCageDTO.setGlassId(e.getGlassId());
+//                    if (finalTaskType.equals(Const.BIG_STORAGE_BEFORE_OUT)) {
+//                        storageCageDTO.setTargetSlot(e.getStartSlot());
+//                    } else {
+//                        storageCageDTO.setTargetSlot(e.getTargetSlot());
+//                    }
+//                    return storageCageDTO;
+//                }).collect(Collectors.toList());
+//                bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_OUT);
+//                log.info("4銆佸ぇ鐞嗙墖绗艰繘鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", v);
+//                updateSlotRemainBySlots(outSuccessGlassSlot);
+//            } else if (e1 == 3) {
+//                //鐮存崯澶勭悊
+//                dealDamageOutTask(v);
+//            } else {
+//                //娓呯┖鐞嗙墖绗肩┖鏁版嵁
+//                noDealOutTask(v);
+//            }
+//        });
+//        for (BigStorageCageTask item : outTaskList) {
+//            //鏇存柊鍘嗗彶浠诲姟琛ㄤ腑鐨勪换鍔$姸鎬�
+//            bigStorageCageHistoryTaskService.update(new LambdaUpdateWrapper<BigStorageCageHistoryTask>()
+//                    .set(BigStorageCageHistoryTask::getTaskState, item.getTaskState())
+//                    .eq(BigStorageCageHistoryTask::getTaskType, taskType)
+//                    .eq(BigStorageCageHistoryTask::getGlassId, item.getGlassId()));
+//            //鏇存柊閽㈠寲灏忕墖琛�
+//            Integer taskState = item.getTaskState();
+//            if (taskState == 2) {
+//                temperingGlassInfoService.update(new LambdaUpdateWrapper<TemperingGlassInfo>()
+//                        .set(TemperingGlassInfo::getState, Const.TEMPERING_OUT).eq(TemperingGlassInfo::getGlassId, item.getGlassId()));
+//            } else if (taskState == 3) {
+////                temperingGlassInfoService.remove(new LambdaQueryWrapper<TemperingGlassInfo>().eq(TemperingGlassInfo::getGlassId, item.getGlassId()));
+//                temperingGlassInfoService.update(new LambdaUpdateWrapper<TemperingGlassInfo>()
+//                        .set(TemperingGlassInfo::getState, Const.TEMPERING_DAMAGE
+//                        ).eq(TemperingGlassInfo::getGlassId, item.getGlassId()));
+//
+//            } else {
+////                绌烘墽琛�
+//            }
+//        }
+////       閲嶇疆浠诲姟琛ㄦ暟鎹�
+//        bigStorageCageTaskService.updateOutTaskMessage("big_storage_cage_out_one_task");
+//        //娓呯┖鍚姩鐘舵��
+//        //鍚憃pc鍙戦�佸惎鍔ㄤ俊鍙�
+//        miloService.writeToOpcWord(generateReadWriteEntity("DLP1B.DLP1B.MesReply", 0));
+//    }
+//
+//    private void dealDamageInTask(List<BigStorageCageTask> damageTaskList) {
+////        鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
+//        log.info("鐮存崯鐨勭幓鐠冧俊鎭湁锛歿}", damageTaskList);
+//        //绉婚櫎鐞嗙墖绗艰鎯呰〃浠诲姟鎵ц杩囩▼涓牬鎹熺殑鐜荤拑
+//        bigStorageCageDetailsService.remove(new LambdaQueryWrapper<BigStorageCageDetails>()
+//                .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW)
+//                .in(BigStorageCageDetails::getGlassId, damageTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList())));
+//        //灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
+//        List<Integer> slotList = new ArrayList<>();
+//        for (BigStorageCageTask item : damageTaskList) {
+//            Damage damage = new Damage();
+//            damage.setGlassId(item.getGlassId());
+//            damage.setLine(item.getStartSlot());
+//            damage.setWorkingProcedure("纾ㄨ竟");
+//            damage.setRemark("杩涚鍓嶅崸杞珛");
+//            damage.setStatus(1);
+//            damage.setType(item.getTaskState());
+//            damageService.insertDamage(damage);
+//            slotList.add(item.getTargetSlot());
+//        }
+//        //鏇存柊鏍煎瓙鍓╀綑瀹藉害
+//        updateSlotRemainBySlots(slotList);
+//        log.info("杩涚墖浠诲姟-鐮存崯浠诲姟鎵ц瀹屾垚");
+//    }
+//
+//    private void dealDamageOutTask(List<BigStorageCageTask> damageTaskList) {
+////        鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
+//        log.info("鐮存崯鐨勭幓鐠冧俊鎭湁锛歿}", damageTaskList);
+//        //绉婚櫎鐞嗙墖绗艰鎯呰〃浠诲姟鎵ц杩囩▼涓牬鎹熺殑鐜荤拑
+//        bigStorageCageDetailsService.remove(new LambdaQueryWrapper<BigStorageCageDetails>()
+//                .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
+//                .in(BigStorageCageDetails::getGlassId, damageTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList())));
+//        //灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
+//        List<Integer> slotList = new ArrayList<>();
+//        for (BigStorageCageTask item : damageTaskList) {
+//            Damage damage = new Damage();
+//            damage.setGlassId(item.getGlassId());
+//            damage.setLine(item.getStartSlot());
+//            damage.setWorkingProcedure("閽㈠寲鍓�");
+//            damage.setRemark("杩涚鍚庡崸杞珛");
+//            damage.setStatus(1);
+//            damage.setType(item.getTaskState());
+//            damageService.insertDamage(damage);
+//            slotList.add(item.getTargetSlot());
+//            slotList.add(item.getStartSlot());
+//        }
+//        //鏇存柊鏍煎瓙鍓╀綑瀹藉害
+//        updateSlotRemainBySlots(slotList);
+//        log.info("鍑虹墖浠诲姟-鐮存崯浠诲姟鎵ц瀹屾垚");
+//    }
+//
+//    private void noDealInTask(List<BigStorageCageTask> noDealTaskList) {
+////        鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
+//        log.info("鐮存崯鐨勭幓鐠冧俊鎭湁锛歿}", noDealTaskList);
+//        //绉婚櫎鐞嗙墖绗艰鎯呰〃鏈墽琛屼换鍔$殑绌鸿褰曚俊鎭�
+//        bigStorageCageDetailsService.remove(new LambdaQueryWrapper<BigStorageCageDetails>()
+//                .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW)
+//                .in(BigStorageCageDetails::getGlassId, noDealTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList())));
+//        //璁板綍鏍煎瓙鍙凤紝鎸夋牸瀛愬彿鏇存柊鍓╀綑灏哄
+//        List<Integer> slotList = new ArrayList<>();
+//        for (BigStorageCageTask item : noDealTaskList) {
+//            slotList.add(item.getTargetSlot());
+//            slotList.add(item.getStartSlot());
+//        }
+//        //鏇存柊鏍煎瓙鍓╀綑瀹藉害
+//        updateSlotRemainBySlots(slotList);
+//        log.info("杩涚墖浠诲姟-鏃犲姩浣滄墽琛屽畬鎴�");
+//    }
+//
+//    private void noDealOutTask(List<BigStorageCageTask> noDealTaskList) {
+////        鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
+//        log.info("鐮存崯鐨勭幓鐠冧俊鎭湁锛歿}", noDealTaskList);
+//        if (Const.OUT_TARGET_POSITION_ALL.contains(noDealTaskList.get(0).getTargetSlot())) {
+//            //鍑虹墖浠诲姟:灏嗗嚭鐗囦腑鐘舵�佹仮澶嶄负鍦ㄧ鍐�
+//            List<String> glassList = noDealTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList());
+//            bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
+//                    .set(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+//                    .in(BigStorageCageDetails::getGlassId, glassList));
+//
+//        } else {
+//            //璋冨害浠诲姟锛氬皢璋冨害涓姸鎬佹敼涓哄湪绗煎唴锛屾牸瀛愬彿鎭㈠涓鸿皟搴﹀墠鐨勬牸瀛�
+//            for (BigStorageCageTask item : noDealTaskList) {
+//                bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
+//                        .set(BigStorageCageDetails::getSlot, item.getStartSlot())
+//                        .set(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+//                        .eq(BigStorageCageDetails::getGlassId, item.getGlassId()));
+//            }
+//        }
+//        //灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
+//        List<Integer> slotList = new ArrayList<>();
+//        for (BigStorageCageTask item : noDealTaskList) {
+//            slotList.add(item.getTargetSlot());
+//            slotList.add(item.getStartSlot());
+//        }
+//        //鏇存柊鏍煎瓙鍓╀綑瀹藉害
+//        updateSlotRemainBySlots(slotList);
+//        log.info("鍑虹墖浠诲姟-鏃犲姩浣滄墽琛屽畬鎴�");
+//    }
+//
+//    /**
+//     * 鍑虹墖涓�娆′粎鐢熸垚涓�杞︾幓鐠�
+//     *
+//     * @param list
+//     * @param <T>
+//     * @return
+//     */
+//    private <T extends BigStorageCageBaseInfo> Boolean computeOutGlassInfo(List<T> list, String tableName, int targetSlot, int state, int taskType) {
+//        //浠诲姟鏁版嵁:鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲�,鐜荤拑闂撮殧
+//        List<BigStorageCageTask> bigStorageCageTaskList = new ArrayList<>();
+//        //鎵撹溅鍓╀綑灏哄
+//        Integer remainWidth = carWidth;
+//        for (T e : list) {
+//            if (bigStorageCageTaskList.size() >= outCarMaxSize || Math.max((int) e.getWidth(), (int) e.getHeight()) > remainWidth) {
+//                break;
+//            }
+//            //璁$畻褰撳墠鍑虹墖杞﹀墿灏哄
+//            remainWidth = remainWidth - Math.max((int) e.getWidth(), (int) e.getHeight()) - glassGap;
+//            bigStorageCageTaskList.add(new BigStorageCageTask(e.getGlassId(), e.getSlot(), targetSlot,
+//                    0));
+//        }
+//        Assert.isFalse(CollectionUtil.isEmpty(bigStorageCageTaskList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟");
+//        log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", bigStorageCageTaskList.size());
+//        List<String> glassIds = bigStorageCageTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList());
+//        int glassCount = bigStorageCageTaskList.size();
+//        //鐢熸垚鍑虹墖浠诲姟鏉℃暟涓嶈冻6琛ュ叏
+//        while (bigStorageCageTaskList.size() < 6) {
+//            bigStorageCageTaskList.add(new BigStorageCageTask("", 0, 0, 0));
+//        }
+//        //娓呯┖浠诲姟琛ㄦ暟鎹�
+//        bigStorageCageTaskService.removeAll("big_storage_cage_out_one_task");
+//        bigStorageCageTaskService.saveTaskMessage(tableName, bigStorageCageTaskList);
+//        List<BigStorageCageHistoryTask> historyList = bigStorageCageTaskList.stream().filter(e -> StringUtils.isNotBlank(e.getGlassId())).map(e -> {
+//            BigStorageCageHistoryTask history = new BigStorageCageHistoryTask();
+//            BeanUtils.copyProperties(e, history);
+//            history.setGlassCount(glassCount);
+//            history.setTaskType(taskType);
+//            return history;
+//        }).collect(Collectors.toList());
+//        bigStorageCageHistoryTaskService.saveBatch(historyList);
+//
+//        log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄嚭鐗囦腑", glassIds);
+//        bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
+//                .set(BigStorageCageDetails::getState, state)
+//                .set(Const.GLASS_STATE_SCHEDULE_ING.equals(state), BigStorageCageBaseInfo::getSlot, targetSlot)
+//                .in(BigStorageCageDetails::getGlassId, glassIds));
+//        try {
+//            miloService.writeToOpcWord(generateReadWriteEntity("DLP1B.DLP1B.MesReply", 1));
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//        return Boolean.TRUE;
+//    }
+//
+//
+//    public void updateSlotRemainBySlots(List<Integer> slotList) {
+//        //鑾峰彇鏍煎瓙鍐呮墍鏈夌殑鐜荤拑淇℃伅
+//        List<BigStorageCageDetails> inSlotGlassList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
+//                .in(BigStorageCageDetails::getSlot, slotList).in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
+//        Map<Integer, Double> slotRemainMap = new HashMap<>();
+//        //鏄惁瀛樺湪鏈夋牸瀛愰潪绌虹殑鐜荤拑
+//        if (CollectionUtil.isNotEmpty(inSlotGlassList)) {
+//            //瀛樺湪  灏嗘牸瀛愬唴鐨勭幓鐠冨垎鍒繘琛屾洿鏂�
+//            slotRemainMap = inSlotGlassList.stream()
+//                    .collect(Collectors.groupingBy(BigStorageCageDetails::getSlot, Collectors.summingDouble(item -> Math.max(item.getWidth(), item.getHeight()) + glassGap)));
+//            slotRemainMap.forEach((e, v) -> {
+//                double remainWidth = slotWidth - v >= 0 ? slotWidth - v : 0;
+//                bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, remainWidth)
+//                        .eq(BigStorageCage::getSlot, e));
+//            });
+//        }
+//        //杩囨护涓嶅瓨鍦ㄧ幓鐠冪殑鏍煎瓙 灏嗗搴﹂噸缃负鍘熷瀹藉害5000
+//        Set<Integer> remainSlotList = slotRemainMap.keySet();
+//        slotList.removeAll(remainSlotList);
+//        if (CollectionUtil.isNotEmpty(slotList)) {
+//            bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, slotWidth)
+//                    .in(BigStorageCage::getSlot, slotList));
+//        }
+//    }
+//
+//    private ReadWriteEntity generateReadWriteEntity(String identifier, Object value) {
+//        return ReadWriteEntity.builder()
+//                .identifier(identifier)
+//                //Kep涓槸Long绫诲瀷锛屽嵆锛欼nt32锛孞ava涓殑int绫诲瀷
+//                .value(value)
+//                .build();
+//    }
+//}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
new file mode 100644
index 0000000..30b3a63
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
@@ -0,0 +1,201 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.service.BigStorageCageDetailsService;
+import com.mes.bigstorage.service.BigStorageCageService;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
+import com.mes.tools.WebSocketServer;
+import com.mes.utils.RedisUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author SNG-015
+ */
+@Component
+@Slf4j
+public class PlcSlicecage {
+
+    @Resource
+    private BigStorageCageService bigStorageCageService;
+    @Resource
+    private BigStorageCageDetailsService bigStorageCageDetailsService;
+    @Resource
+    private TemperingGlassInfoService temperingGlassInfoService;
+    @Resource
+    private RedisUtil redisUtil;
+    @Autowired
+    private GlassInfoService glassInfoService;
+
+//    @Value("${mes.scan.ip}")
+//    private String scanIp;
+//
+//    @Value("${mes.scan.port}")
+//    private Integer scanPort;
+
+    private JSONObject jsonObject = new JSONObject();
+
+    public void queryDataSource1() throws InterruptedException {
+        List<Double> carPostion = new ArrayList<>();
+        carPostion.add(0.25);
+        carPostion.add(0.5);
+        jsonObject.append("carPostion", carPostion);
+        //鐣岄潰灞曠ず绗煎瓙淇℃伅
+        jsonObject.append("bigStorageCageInfos", bigStorageCageService.querybigStorageCageDetail());
+
+        //杩涚墖浠诲姟鏁版嵁
+        List<BigStorageCageDetails> bigStorageCageDetailsFeedTask = bigStorageCageDetailsService.selectFeedTask();
+        jsonObject.append("bigStorageCageDetailsFeedTask", bigStorageCageDetailsFeedTask);
+
+        //鍑虹墖浠诲姟鏁版嵁
+        List<BigStorageCageDetails> bigStorageCageDetailsOutTask = bigStorageCageDetailsService.selectOutTask();
+        jsonObject.append("bigStorageCageDetailsOutTask", bigStorageCageDetailsOutTask);
+
+        //鐞嗙墖绗间娇鐢ㄦ儏鍐�
+        List<Map<String, Object>> bigStorageCageUsage = bigStorageCageService.selectBigStorageCageUsage();
+        jsonObject.append("bigStorageCageUsage", bigStorageCageUsage);
+
+        //鐞嗙墖绗艰〃鏍间俊鎭�
+        jsonObject.append("bigStorageCageInfo", bigStorageCageService.querybigStorageCageDetailAll());
+
+        //閽㈠寲寮�鍏�
+        boolean temperingSwitch = false;
+        if (redisUtil.getCacheObject("temperingSwitch") == null) {
+            redisUtil.setCacheObject("temperingSwitch", false);
+        } else {
+            temperingSwitch = redisUtil.getCacheObject("temperingSwitch");
+        }
+        jsonObject.append("temperingSwitch", temperingSwitch);
+        //鎵撳嵃寮�鍏�
+        boolean autoPrint = false;
+        if (redisUtil.getCacheObject("autoPrint") == null) {
+            redisUtil.setCacheObject("autoPrint", false);
+        } else {
+            autoPrint = redisUtil.getCacheObject("autoPrint");
+        }
+        jsonObject.append("autoPrint", autoPrint);
+
+        //褰撳墠鎸囧畾宸ョ▼
+        String temperingengineerId = "";
+        if (redisUtil.getCacheObject("temperingengineerId") == null) {
+            redisUtil.setCacheObject("temperingengineerId", temperingengineerId);
+        } else {
+            temperingengineerId = redisUtil.getCacheObject("temperingengineerId");
+        }
+        jsonObject.append("temperingengineerId", temperingengineerId);
+
+
+    }
+
+    public void queryDataSource2() throws InterruptedException {
+        //鍑虹墖闃熷垪
+        List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.list(
+                new LambdaQueryWrapper<TemperingGlassInfo>()
+                        .inSql(TemperingGlassInfo::getEngineerId, "select distinct engineer_id from tempering_glass_info where state<4")
+        );
+        jsonObject.append("temperingGlassInfoList", temperingGlassInfoList);
+
+    }
+
+    /**
+     * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
+     * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
+     */
+//    @Scheduled(fixedDelay = 1000)
+    public void plcStorageCageTask() throws InterruptedException {
+        jsonObject = new JSONObject();
+        try {
+            //鏌ヨ浣跨敤鏁版嵁婧�1鏌ヨ鏁版嵁
+            queryDataSource1();
+            //鏌ヨ浣跨敤鏁版嵁婧�2鏌ヨ鏁版嵁
+            queryDataSource2();
+            try {
+                ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("slicecage");
+                if (sendwServer != null) {
+                    for (WebSocketServer webserver : sendwServer) {
+                        if (webserver != null) {
+                            webserver.sendMessage(jsonObject.toString());
+                            List<String> messages = webserver.getMessages();
+                            if (!messages.isEmpty()) {
+                                // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                                webserver.clearMessages();
+                            }
+                        } else {
+                            log.info("Home is closed");
+                        }
+                    }
+                }
+            } catch (Exception e) {
+                e.printStackTrace(); // 鎵撳嵃鍫嗘爤淇℃伅锛屾柟渚垮畾浣嶉棶棰�
+                System.out.println("webserver鍑虹幇寮傚父: " + e.getMessage());
+                // TODO: handle exception
+            }
+
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    //    @Scheduled(fixedDelay = 1000)
+    public void temperingIsRun() {
+        JSONObject jsonObject = new JSONObject();
+        //杩涚墖浠诲姟鏁版嵁
+        List<BigStorageCageDetails> bigStorageCageDetailsFeedTask = bigStorageCageDetailsService.selectFeedTask();
+        jsonObject.append("bigStorageCageDetailsFeedTask", bigStorageCageDetailsFeedTask);
+        //鍑虹墖浠诲姟鏁版嵁
+        List<BigStorageCageDetails> bigStorageCageDetailsOutTask = bigStorageCageDetailsService.selectOutTask();
+        jsonObject.append("bigStorageCageDetailsOutTask", bigStorageCageDetailsOutTask);
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("isRun");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+        }
+    }
+
+//    @Scheduled(fixedDelay = Long.MAX_VALUE)
+//    public void scanCodeTask() {
+//        log.info("鎵弿浠诲姟宸插惎鍔�");
+//        while (true) {
+//            JSONObject jsonObject = new JSONObject();
+//            try (Socket socket = new Socket(scanIp, scanPort);
+//                 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()))) {
+//                // 鎺ユ敹鏈嶅姟鍣ㄥ搷搴�
+//                log.info("绛夊緟鎵爜涓�......");
+//                String glassId = in.readLine();
+//                log.info("鎵弿鍒扮殑鐜荤拑id锛歿}", glassId);
+//                List<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("slicecage");
+//                if (CollectionUtils.isNotEmpty(sendwServer)) {
+//                    //鎸夌収鐜荤拑id鑾峰彇鐜荤拑淇℃伅杩斿洖缁欏墠绔晫闈紝鍏蜂綋闇�瑕佸摢浜涙暟鎹緟纭
+//                    GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
+//                            .eq(GlassInfo::getGlassId, glassId).last("limit 1"));
+//                    if (null == glassInfo) {
+//                        log.info("鎸夌収鐜荤拑id锛歿}锛屾棤娉曟壘鍒扮幓鐠冧俊鎭�", glassId);
+//                    } else {
+//                        for (WebSocketServer webserver : sendwServer) {
+//                            jsonObject.append("scanGlass", glassInfo);
+//                            webserver.sendMessage(jsonObject.toString());
+//                        }
+//                    }
+//                }
+//            } catch (Exception exception) {
+//                log.info("璇诲彇寮傚父锛屽師鍥犱负{}", exception.getMessage());
+//            }
+//        }
+//    }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
new file mode 100644
index 0000000..0ed4ac3
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -0,0 +1,1162 @@
+//package com.mes.job;
+//
+//import cn.hutool.core.lang.Assert;
+//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+//import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+//import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+//import com.github.yulichang.toolkit.JoinWrappers;
+//import com.github.yulichang.wrapper.MPJLambdaWrapper;
+//import com.mes.base.entity.BigStorageCageBaseInfo;
+//import com.mes.bigstorage.entity.BigStorageCage;
+//import com.mes.bigstorage.entity.BigStorageCageDetails;
+//import com.mes.bigstorage.entity.dto.BigStorageDTO;
+//import com.mes.bigstorage.entity.dto.SlotSequenceDTO;
+//import com.mes.bigstorage.entity.dto.TemperingLayoutDTO;
+//import com.mes.bigstorage.service.BigStorageCageDetailsService;
+//import com.mes.bigstorage.service.BigStorageCageService;
+//import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
+//import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
+//import com.mes.bigstoragetask.entity.UpdateBigStorageCageDTO;
+//import com.mes.bigstoragetask.service.BigStorageCageFeedTaskService;
+//import com.mes.bigstoragetask.service.BigStorageCageOutTaskService;
+//import com.mes.common.S7object;
+//import com.mes.common.config.Const;
+//import com.mes.damage.entity.Damage;
+//import com.mes.damage.service.DamageService;
+//import com.mes.device.PlcParameterObject;
+//import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+//import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
+//import com.mes.glassinfo.entity.GlassInfo;
+//import com.mes.glassinfo.service.GlassInfoService;
+//import com.mes.temperingglass.entity.TemperingGlassInfo;
+//import com.mes.temperingglass.service.TemperingGlassInfoService;
+//import com.mes.tools.S7control;
+//import com.mes.utils.RedisUtil;
+//import lombok.extern.slf4j.Slf4j;
+//import org.apache.commons.lang.StringUtils;
+//import org.springframework.beans.BeanUtils;
+//import org.springframework.beans.factory.annotation.Value;
+//import org.springframework.stereotype.Component;
+//
+//import javax.annotation.Resource;
+//import java.util.*;
+//import java.util.stream.Collectors;
+//
+///**
+// * @author SNG-015
+// */
+//@Component
+//@Slf4j
+//public class PlcStorageCageTask {
+//
+//    @Resource
+//    private BigStorageCageService bigStorageCageService;
+//    @Resource
+//    private BigStorageCageDetailsService bigStorageCageDetailsService;
+//    @Resource
+//    private GlassInfoService glassInfoService;
+//    @Resource
+//    private BigStorageCageFeedTaskService bigStorageCageFeedTaskService;
+//    @Resource
+//    private BigStorageCageOutTaskService bigStorageCageOutTaskService;
+//    @Resource
+//    private EdgGlassTaskInfoService edgGlassTaskInfoService;
+//    @Resource
+//    private TemperingGlassInfoService temperingGlassInfoService;
+//    @Resource
+//    private DamageService damageService;
+//
+//    @Resource
+//    private RedisUtil redisUtil;
+//
+//    private static final String REQUEST_WORD = "1";
+//
+//    @Value("${mes.sequence.order}")
+//    private boolean sequenceOrder;
+//
+//    @Value("${mes.carWidth}")
+//    private Integer carWidth;
+//
+//    @Value("${mes.slotWidth}")
+//    private Integer slotWidth;
+//
+//    @Value("${mes.inCarMaxSize}")
+//    private Integer inCarMaxSize;
+//
+//    @Value("${mes.outCarMaxSize}")
+//    private Integer outCarMaxSize;
+//
+//    @Value("${mes.glassGap}")
+//    private Integer glassGap;
+//
+//    @Value("${mes.xMaxSize}")
+//    private Integer xMaxSize;
+//
+//
+//    private String d01GlassId = "";
+//    private String d04GlassId = "";
+//
+//    //    @Scheduled(fixedDelay = 300)
+//    public void plcToHomeEdgScan() {
+//        Date startDate = new Date();
+//        log.info("澶х悊鐗囩鎵爜浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+//        PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+//        String d01Id = plcParameterObject.getPlcParameter("D01ID").getValue();
+//        String d04Id = plcParameterObject.getPlcParameter("D04ID").getValue();
+//        //D02id鍒ゆ柇鏄惁涓虹┖  纭鏄惁绌洪棽 鍏佽杩涚墖
+//        String d02State = plcParameterObject.getPlcParameter("D02ID").getValue();
+//        String d03State = plcParameterObject.getPlcParameter("D03State").getValue();
+//        String d05State = plcParameterObject.getPlcParameter("D05State").getValue();
+//        String mesD01Value = plcParameterObject.getPlcParameter("MESToD01").getValue();
+//        String mesD04Value = plcParameterObject.getPlcParameter("MESToD04").getValue();
+//        String mesD01Address = plcParameterObject.getPlcParameter("MESToD01").getAddress();
+//        String mesD04Address = plcParameterObject.getPlcParameter("MESToD04").getAddress();
+//        String d01ToMES = plcParameterObject.getPlcParameter("D01ToMES").getValue();
+//        String d04ToMES = plcParameterObject.getPlcParameter("D04ToMES").getValue();
+//
+//        log.info("1銆佽幏鍙杁01Id鎵弿ID涓猴細{}锛岃姹傚瓧涓簕};鑾峰彇d04Id鎵弿ID涓猴細{}锛岃姹傚瓧涓簕};", d01Id, d01ToMES, d04Id, d04ToMES);
+//        if (StringUtils.isBlank(d01ToMES) && StringUtils.isBlank(d04ToMES)) {
+//            log.info("涓ゆ潯绾挎湭鏀跺埌杩涚墖浠诲姟锛岀粨鏉熸湰娆℃壂鎻忚繘鍗ц浆绔嬩换鍔�");
+//            return;
+//        }
+//        if (REQUEST_WORD.equals(d03State) && REQUEST_WORD.equals(d05State)) {
+//            log.info("涓ゆ潯绾垮崸杞珛鍧囧湪鎵ц浠诲姟锛岀粨鏉熸湰娆℃壂鎻忚繘鍗ц浆绔嬩换鍔�");
+//            return;
+//        }
+//        //鎸夌収绾胯矾鍙婄幓鐠僫d鑾峰彇鐩搁偦涓ゅ潡鐜荤拑 鍗ц浆绔嬩笂鐨勭幓鐠�:  鐘舵�佷负0涓嶆搷浣滐紙D01閫佺墖锛�0涓嶆搷浣滐紝1鍏佽閫佺墖锛夛紝璇锋眰瀛椾负1锛� 锛�02鐜荤拑id涓虹┖鎴栬�呭崸杞珛鏈惎鍔級
+//        if (!REQUEST_WORD.equals(mesD01Value) && REQUEST_WORD.equals(d01ToMES) && (StringUtils.isBlank(d02State) || !REQUEST_WORD.equals(d03State))) {
+//            List<BigStorageCageFeedTask> bigStorageCageFeedTasks = bigStorageCageFeedTaskService.list(
+//                    new LambdaQueryWrapper<BigStorageCageFeedTask>()
+//                            .gt(BigStorageCageFeedTask::getTargetSlot, 0)
+//                            .eq(BigStorageCageFeedTask::getLine, Const.A09_OUT_TARGET_POSITION)
+//                            .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP)
+//            );
+//            if (CollectionUtils.isEmpty(bigStorageCageFeedTasks)) {
+//                if (!d01GlassId.equals(d01Id)) {
+//                    judgeGlassTypeStatus(d01Id, Const.A09_OUT_TARGET_POSITION, mesD01Address);
+//                    edgGlassTaskInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskInfo>()
+//                            .set(EdgGlassTaskInfo::getState, Const.EDG_GLASS_SUCCESS).eq(EdgGlassTaskInfo::getGlassId, d01Id));
+////                d01GlassId = d01Id;
+//                }
+//            }
+//        }
+////        鐘舵�佷负0涓嶆搷浣滐紙D01閫佺墖锛�0涓嶆搷浣滐紝1鍏佽閫佺墖锛夛紝璇锋眰瀛椾负1锛� 鍗ц浆绔嬫湭鍚姩
+//        if (!REQUEST_WORD.equals(mesD04Value) && REQUEST_WORD.equals(d04ToMES) && !REQUEST_WORD.equals(d05State)) {
+//            List<BigStorageCageFeedTask> bigStorageCageFeedTasks = bigStorageCageFeedTaskService.list(
+//                    new LambdaQueryWrapper<BigStorageCageFeedTask>()
+//                            .gt(BigStorageCageFeedTask::getTargetSlot, 0)
+//                            .eq(BigStorageCageFeedTask::getLine, Const.A10_OUT_TARGET_POSITION)
+//                            .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP)
+//            );
+//            if (CollectionUtils.isEmpty(bigStorageCageFeedTasks)) {
+//                if (!d04GlassId.equals(d04Id)) {
+//                    judgeGlassTypeStatus(d04Id, Const.A10_OUT_TARGET_POSITION, mesD04Address);
+//                    edgGlassTaskInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskInfo>()
+//                            .set(EdgGlassTaskInfo::getState, Const.EDG_GLASS_SUCCESS).eq(EdgGlassTaskInfo::getGlassId, d04Id));
+////                d04GlassId = d04Id;
+//                }
+//            }
+//
+//        }
+//        Date endDate = new Date();
+//        log.info("澶х悊鐗囩鎵爜浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//    }
+//
+//    //    @Scheduled(fixedDelay = 300)
+//    public void plcToHomeEdgFreeCarTask() {
+//        Date startDate = new Date();
+//        log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+//        PlcParameterObject plcMesObject = S7object.getinstance().PlcMesObject;
+//        String mesD03Address = plcMesObject.getPlcParameter("MESToD03").getValue();
+//        String mesD05Address = plcMesObject.getPlcParameter("MESToD05").getValue();
+//        log.info("MESToD03:{},MESToD05:{}", mesD03Address, mesD05Address);
+//        if ("2".equals(mesD03Address) || "2".equals(mesD05Address)) {
+//            log.info("鏈夊惎鍔ㄤ俊鍙凤紝MESToD03:{},MESToD05:{}", mesD03Address, mesD05Address);
+//        }
+//        PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+//        String e01Status = plcParameterObject.getPlcParameter("E01State").getValue();
+//        String d03ToMES = plcParameterObject.getPlcParameter("D03ToMES").getValue();
+//        String d05ToMES = plcParameterObject.getPlcParameter("D05ToMES").getValue();
+//        log.info("鎵ц绌鸿溅閫佺墖浠诲姟锛岃幏鍙栧埌鐨勫ぇ杞︾姸鎬佷负{}锛屽崸杞珛鐘舵�佸垎鍒负d03:{}锛宒05:{}", e01Status, d03ToMES, d05ToMES);
+//        List<BigStorageCageFeedTask> bigStorageCageFeedTasks = bigStorageCageFeedTaskService.list(
+//                new LambdaQueryWrapper<BigStorageCageFeedTask>()
+//                        .ne(BigStorageCageFeedTask::getTargetSlot, 0)
+//                        .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
+//        );
+//        if (bigStorageCageFeedTasks.size() > 0) {
+//            Date endDate = new Date();
+//            log.info("澶ц溅鏈夋鍦ㄦ墽琛岀殑浠诲姟{}锛岀粨鏉熼�佺墖浠诲姟锛屼换鍔$粨鏉熸椂闂达細{}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", bigStorageCageFeedTasks, endDate, endDate.getTime() - startDate.getTime());
+//            return;
+//        }
+//        if (REQUEST_WORD.equals(e01Status)) {
+//            Date endDate = new Date();
+//            log.info("杩涚墖澶ц溅闈炵┖闂诧紝缁撴潫閫佺墖浠诲姟锛屼换鍔$粨鏉熸椂闂达細{}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//            return;
+//        }
+//        if (!REQUEST_WORD.equals(d03ToMES) && !REQUEST_WORD.equals(d05ToMES)) {
+//            Date endDate = new Date();
+//            log.info("鍗ц浆绔嬬涓�娆℃病鏈夐�佺墖璇锋眰锛岀粨鏉熼�佺墖浠诲姟锛屼换鍔$粨鏉熸椂闂达細{}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//            return;
+//        }
+//        if (!REQUEST_WORD.equals(d03ToMES) && !REQUEST_WORD.equals(d05ToMES)) {
+//            Date endDate = new Date();
+//            log.info("鍗ц浆绔嬬浜屾娌℃湁閫佺墖璇锋眰锛岀粨鏉熼�佺墖浠诲姟锛屼换鍔$粨鏉熸椂闂达細{}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//            return;
+//        }
+////        List<Integer> lines=new ArrayList<>();
+////        if(REQUEST_WORD.equals(d03ToMES)){
+////            lines.add(Const.A09_OUT_TARGET_POSITION);
+////        }
+////        if(REQUEST_WORD.equals(d05ToMES)){
+////            lines.add(Const.A10_OUT_TARGET_POSITION);
+////        }
+//        LambdaQueryWrapper<BigStorageCageFeedTask> wrapper = new LambdaQueryWrapper<BigStorageCageFeedTask>()
+//                .eq(BigStorageCageFeedTask::getTaskType, Const.BIG_STORAGE_IN_RUN)
+//                .and(e -> e.isNull(BigStorageCageFeedTask::getTargetSlot).or().eq(BigStorageCageFeedTask::getTargetSlot, Const.OUT_TARGET_POSITION_ZERO))
+//                .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP);
+////                .in(BigStorageCageFeedTask::getLine,lines);
+//        //鑾峰彇鍙互鍚姩鍗ц浆绔嬬殑浠诲姟绾胯矾
+//        List<BigStorageCageFeedTask> feedTaskList = bigStorageCageFeedTaskService.list(wrapper);
+//        if (CollectionUtils.isNotEmpty(feedTaskList)) {
+//            if (feedTaskList.size() == 1) {
+//                computeTargetByLine(feedTaskList.get(0).getLine());
+//            } else {
+//                //姣旇緝鏈�鏃╀竴鐗囦换鍔$殑鐗堝浘id鍙婄増搴� 姹傚嚭鍗ц浆绔嬬殑绾胯矾
+//                Integer startLine = getStartLine();
+////            //璁$畻鐩爣鏍煎瓙锛屽彂閫佸惎鍔ㄤ换鍔�
+//                computeTargetByLine(startLine);
+//            }
+//            Date endDate = new Date();
+//            log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//            return;
+//        }
+//        String d01Id = plcParameterObject.getPlcParameter("D01ID").getValue();
+//        String d04Id = plcParameterObject.getPlcParameter("D04ID").getValue();
+//        log.info("1銆佽幏鍙杁01Id鎵弿ID涓猴細{};鑾峰彇d04Id鎵弿ID涓猴細{};", d01Id, d04Id);
+//        //鑾峰彇涓ゆ潯绾垮崸杞珛鏄惁鏈夌幓鐠冿紝涓斾换鍔$姸鎬佷负1/2
+//        List<Integer> lineList = bigStorageCageFeedTaskService.querySitToUpGlass();
+//        if (CollectionUtils.isEmpty(lineList)) {
+//            Date endDate = new Date();
+//            log.info("涓ゆ潯绾垮崸杞珛涓虹┖鎴栬�呮湁杩涚墖浠诲姟鏈畬鎴愶紝缁撴潫浠诲姟锛屽ぇ鐞嗙墖绗肩┖杞﹁繘鐗囦换鍔$粨鏉熸椂闂达細{}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//            return;
+//        }
+//        Integer lineFirst = lineList.get(0);
+//        String lineGlassId = lineFirst.equals(Const.A09_OUT_TARGET_POSITION) ? d01Id : d04Id;
+//        //浠呮湁涓�鏉″厛绗﹀悎鍚姩鍚姩鏉′欢
+//        if (lineList.size() == 1) {
+//            //濡傛灉杩涚墖璇锋眰浣嗙幓鐠冧负绌猴紝璁$畻浠诲姟琛ㄨ繘鐗囨牸瀛� 鍙戦�佽繘鐗囦换鍔�
+//            if (StringUtils.isEmpty(lineGlassId)) {
+//                computeTargetByLine(lineFirst);
+//            } else {
+//                //todo:璁$畻鎵弿鍒扮殑鐜荤拑鏄惁鍙互瀛樿繘鍗ц浆绔�
+//                //鑾峰彇鍗ц浆绔嬪墿浣欏搴�
+//                if (computeIsRun(lineFirst, lineGlassId)) {
+//                    computeTargetByLine(lineFirst);
+//                } else {
+//                    log.info("褰撳墠绾胯矾锛歿}锛屾湁鎵爜鐜荤拑锛歿}", lineFirst, lineGlassId);
+//                }
+//            }
+//            Date endDate = new Date();
+//            log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//            return;
+//        }
+//        //涓ゆ潯鍏堝潎鍙墽琛岃繘鐗囦换鍔★紝鍒ゆ柇涓ゆ潯绾挎槸鍚﹁繘鐗囪姹傛槸鍚﹂兘涓虹┖
+//        if (StringUtils.isBlank(d01Id) && StringUtils.isBlank(d04Id)) {
+//            //姣旇緝鏈�鏃╀竴鐗囦换鍔$殑鐗堝浘id鍙婄増搴� 姹傚嚭鍗ц浆绔嬬殑绾胯矾
+//            Integer line = getStartLine();
+//            //璁$畻浠诲姟琛ㄨ繘鐗囨牸瀛� 鍙戦�佽繘鐗囦换鍔�
+//            computeTargetByLine(line);
+//            Date endDate = new Date();
+//            log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//            return;
+//        } else if (StringUtils.isNotBlank(d01Id) && StringUtils.isNotBlank(d04Id)) {
+////            todo:涓や釜閮芥湁杩涚墖鐜荤拑
+//            if (computeIsRun(Const.A09_OUT_TARGET_POSITION, d01Id) && computeIsRun(Const.A10_OUT_TARGET_POSITION, d04Id)) {
+//                //姣旇緝鏈�鏃╀竴鐗囦换鍔$殑鐗堝浘id鍙婄増搴� 姹傚嚭鍗ц浆绔嬬殑绾胯矾
+//                Integer line = getStartLine();
+//                //璁$畻浠诲姟琛ㄨ繘鐗囨牸瀛� 鍙戦�佽繘鐗囦换鍔�
+//                computeTargetByLine(line);
+//            } else if (computeIsRun(Const.A09_OUT_TARGET_POSITION, d01Id)) {
+//                computeTargetByLine(Const.A09_OUT_TARGET_POSITION);
+//            } else if (computeIsRun(Const.A10_OUT_TARGET_POSITION, d04Id)) {
+//                computeTargetByLine(Const.A10_OUT_TARGET_POSITION);
+//            } else {
+//                Date endDate = new Date();
+//                log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//                return;
+//            }
+//        } else {
+//            //锛屾垨鑰呬粎鏈変竴鏉℃湁鐜荤拑
+//            //涓�鏉$嚎涓虹┖锛屼竴鏉$嚎鏈夎繘鐗囪姹傛湁鐜荤拑
+//            int outLine = StringUtils.isBlank(d01Id) ? Const.A09_OUT_TARGET_POSITION : Const.A10_OUT_TARGET_POSITION;
+//            //鑾峰彇杩涚墖璇锋眰鐜荤拑涓虹┖鐨勶紝璁$畻浠诲姟琛ㄨ繘鐗囨牸瀛� 鍙戦�佽繘鐗囦换鍔�
+//            computeTargetByLine(outLine);
+//        }
+//        Date endDate = new Date();
+//        log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//    }
+//
+//    //    @Scheduled(fixedDelay = 10000)
+//    public void plcToHomeEdgOutTask() {
+//        Date startDate = new Date();
+//        log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+//        PlcParameterObject plcMesObject = S7object.getinstance().PlcMesObject;
+//        String e02State = plcMesObject.getPlcParameter("E02State").getValue();
+//        if (REQUEST_WORD.equals(e02State)) {
+//            log.info("鍑虹墖蹇欑锛岀粨鏉熷嚭鐗囦换鍔�");
+//            return;
+//        }
+//        String mesToPLCAddress = plcMesObject.getPlcParameter("MESToPLC").getAddress();
+//        List<BigStorageCageOutTask> outingList = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>()
+//                .eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_NEW));
+//        if (CollectionUtils.isNotEmpty(outingList)) {
+//            log.info("鏈夋鍦ㄦ墽琛屽嚭鐗囩殑浠诲姟锛岀粨鏉熷綋鍓嶅嚭鐗囩嚎绋�");
+//            return;
+//        }
+//        if (redisUtil.getCacheObject("temperingSwitch")) {
+//            //鏄惁鏈夋鍦ㄩ挗鍖栫殑鐜荤拑
+//            List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.selectJoinList(TemperingGlassInfo.class, new MPJLambdaWrapper<TemperingGlassInfo>()
+//                    .selectAll(TemperingGlassInfo.class)
+//                    .leftJoin(BigStorageCageOutTask.class, BigStorageCageOutTask::getGlassId, TemperingGlassInfo::getGlassId)
+//                    .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW)
+//                    .isNull(BigStorageCageOutTask::getGlassId)
+//                    .orderBy(Boolean.TRUE, sequenceOrder, TemperingGlassInfo::getTemperingFeedSequence));
+//            if (CollectionUtils.isNotEmpty(temperingGlassInfoList)) {
+//                log.info("鏈夋鍦ㄥ嚭鐗囩殑閽㈠寲浠诲姟");
+//                computeOutMoreGlassInfo(temperingGlassInfoList, Boolean.TRUE, mesToPLCAddress);
+//                Date endDate = new Date();
+//                log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//                return;
+//            }
+//            //鏄惁鏈変汉宸ヤ笅鐗囦换鍔�   鏈夌洿鎺ュ嚭
+////            List<BigStorageCageDetails> artificialList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
+////                    .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_ARTIFICIAL).orderByDesc(BigStorageCageDetails::getWidth));
+//            List<BigStorageCageDetails> artificialList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
+//                    .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_ARTIFICIAL)
+//                    .orderByAsc(BigStorageCageDetails::getSlot)
+//                    .orderByDesc(BigStorageCageDetails::getId));
+//            if (CollectionUtils.isNotEmpty(artificialList)) {
+//                computeOutMoreGlassInfo(artificialList, Boolean.FALSE, mesToPLCAddress);
+//                Date endDate = new Date();
+//                log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//                return;
+//            }
+//            //閽㈠寲浼樺厛锛氳幏鍙栫悊鐗囩  鐜荤拑灏忕墖  鐮存崯琛� 鏁伴噺   鍒ゆ柇绗煎唴鐗堝浘鏄惁鍒伴綈
+//            List<TemperingLayoutDTO> temperingLayoutDTOList = bigStorageCageDetailsService.temperingIsAll();
+//            if (CollectionUtils.isNotEmpty(temperingLayoutDTOList)) {
+//                //鐜荤拑鍒伴綈鍖呮嫭宸插嚭鐗囩殑
+//                //鍒伴綈锛屽皢鐜荤拑灏忕墖鏁版嵁瀛樺叆閽㈠寲灏忕墖琛紝閫昏緫鐢熸垚鍑虹墖浠诲姟  缁撴潫
+//                for (TemperingLayoutDTO item : temperingLayoutDTOList) {
+//                    if (redisUtil.getCacheObject("temperingengineerId").equals(item.getEngineerId())) {
+//                        List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, JoinWrappers.lambda(GlassInfo.class)
+//                                .selectAll(GlassInfo.class)
+//                                .select("-1 as state")
+//                                .selectAs(BigStorageCageDetails::getSlot, TemperingGlassInfo::getSlot)
+//                                .innerJoin(BigStorageCageDetails.class, BigStorageCageDetails::getGlassId, GlassInfo::getGlassId)
+//                                .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+//                                .eq(GlassInfo::getTemperingLayoutId, item.getTemperingLayoutId())
+//                                .eq(GlassInfo::getEngineerId, item.getEngineerId())
+//                                .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence));
+//                        if (CollectionUtils.isNotEmpty(temperingGlassInfos)) {
+//                            temperingGlassInfoService.saveBatch(temperingGlassInfos);
+//                            computeOutMoreGlassInfo(temperingGlassInfoList, Boolean.TRUE, mesToPLCAddress);
+//                            Date endDate = new Date();
+//                            log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//                            return;
+//                        }
+//                    }
+//                }
+//            }
+//        }
+//        //鎵ц鍐呴儴璋冨害浠诲姟
+//        List<TemperingLayoutDTO> temperingOccupySlotList = bigStorageCageDetailsService.queryTemperingOccupySlot();
+//        if (CollectionUtils.isNotEmpty(temperingOccupySlotList)) {
+//            loop:
+//            for (TemperingLayoutDTO temperingOccupySlot : temperingOccupySlotList) {
+//                List<SlotSequenceDTO> slotSequenceList = bigStorageCageDetailsService.queryGlassMaxAndMin(temperingOccupySlot.getEngineerId(), temperingOccupySlot.getTemperingLayoutId());
+//                for (int i = 0; i < slotSequenceList.size() - 1; i++) {
+//                    SlotSequenceDTO first = slotSequenceList.get(i);
+//                    SlotSequenceDTO second = slotSequenceList.get(i + 1);
+//                    int slotWidth = carWidth - first.getRemainWidth() - glassGap;
+//                    if (first.getMinSequence() == second.getMaxSequence() + 1
+//                            && second.getRemainWidth() > slotWidth && slotWidth >= 0) {
+//                        List<BigStorageCageDetails> list = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
+//                                .eq(BigStorageCageDetails::getSlot, first.getSlot()).eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+//                                .orderBy(Boolean.TRUE, sequenceOrder, BigStorageCageDetails::getTemperingFeedSequence));
+//                        if (CollectionUtils.isNotEmpty(list)) {
+//                            List<BigStorageCageOutTask> outTasks = new ArrayList<>();
+//                            int serialNumber = 1;
+//                            for (BigStorageCageDetails item : list) {
+//                                outTasks.add(new BigStorageCageOutTask(item.getGlassId(), first.getSlot(), second.getSlot(),
+//                                        item.getWidth() * 10, item.getHeight() * 10, 1, serialNumber++, Const.BIG_STORAGE_OUT_NEW, new Date()));
+//                            }
+//                            //鏂板璋冨害浠诲姟
+//                            bigStorageCageOutTaskService.saveBatch(outTasks);
+//                            //鏇存柊鐞嗙墖绗艰鎯呰〃璋冨害鐨勫悗鐨勭幓鐠冧綅缃俊鎭細鐢熸垚浠诲姟鍚庡厛灏嗙幓鐠冩牸瀛愪綅缃繘琛岃皟鏁达紝鐜荤拑鐘舵�佹敼涓鸿皟搴︿腑锛屾柊澧炶皟搴﹀畬鎴愪换鍔★紝澶勭悊璋冨害瀹屾垚鍚庣幓鐠冪姸鎬佹敼涓�100.
+//                            List<String> glassList = list.stream().map(BigStorageCageDetails::getGlassId).collect(Collectors.toList());
+//                            bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>().set(BigStorageCageDetails::getState, Const.GLASS_STATE_SCHEDULE_ING)
+//                                    .set(BigStorageCageBaseInfo::getSlot, second.getSlot()).in(BigStorageCageDetails::getGlassId, glassList));
+//                            //涓ゆ鏇存柊绗煎瓙鐨勫墿浣欏昂瀵革細绗竴娆¢槻姝㈡湁鐜荤拑缁х画杩涜皟搴﹀悗鐨勭瀛愶紝绗簩娆℃洿鏂帮細璁$畻鏍煎瓙鐨勫疄闄呭昂瀵�
+//                            // 浠呮洿鏂拌皟搴﹀悗鐨勬牸瀛愪俊鎭細璧峰鏍煎瓙瀹屾垚鍚庢洿鏂帮細闃叉璋冨害鍑虹墖杩囩▼涓湁鏂扮幓鐠冭繘鍏ワ紝
+//                            updateSlotRemainBySlots(Arrays.asList(second.getSlot()));
+//                            break loop;
+//                        }
+//                    }
+//                }
+//            }
+////            //鍚憄lc鍐欏叆纭瀛�
+////            int returnData = 0;
+////            int count = 1;
+////            while (returnData == 0) {
+////                log.info("宸插悜plc绗瑊}娆¢�佸崗璁�", count);
+////                S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
+////                returnData = S7object.getinstance().plccontrol.readWord(mesToPLCAddress, 1).get(0);
+////                log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesToPLCAddress, returnData);
+////            }
+//            Date endDate = new Date();
+//            log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//            return;
+//        }
+//    }
+//
+//    //    @Scheduled(fixedDelay = 300)
+//    public void updateInGlassStateTask() {
+//        Date startDate = new Date();
+//        log.info("1銆佸ぇ鐞嗙墖绗艰繘鐗囧畬鎴愬悗鏇存柊澶х悊鐗囩鏁版嵁浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+//        //鍥犱负澶х悊鐗囩鍜屽嚭鐗囦换鍔℃槸涓や釜搴撶殑鏁版嵁锛屾墍浠ヨ鍒嗗紑鏌ユ壘
+//        List<Object> list = bigStorageCageDetailsService.listObjs(new LambdaQueryWrapper<BigStorageCageDetails>()
+//                .select(BigStorageCageDetails::getGlassId).eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW));
+//        if (CollectionUtils.isNotEmpty(list)) {
+//            log.info("2銆佽幏鍙栨墍鏈夋鍦ㄨ繘鐗囩殑鐜荤拑淇℃伅id:{}", list);
+//            List<String> glassIds = list.stream().map(String::valueOf).collect(Collectors.toList());
+//            List<BigStorageCageFeedTask> inSuccessGlass = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>()
+//                    .in(BigStorageCageFeedTask::getGlassId, glassIds)
+//                    .in(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT));
+//            if (CollectionUtils.isNotEmpty(inSuccessGlass)) {
+//                log.info("3銆佽幏鍙栬繘鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", inSuccessGlass);
+//                List<Integer> inSuccessGlassSlot = inSuccessGlass.stream().map(BigStorageCageFeedTask::getTargetSlot).collect(Collectors.toList());
+//                List<UpdateBigStorageCageDTO> storageCageDTOList = inSuccessGlass.stream().map(e -> {
+//                    UpdateBigStorageCageDTO storageCageDTO = new UpdateBigStorageCageDTO();
+//                    BeanUtils.copyProperties(e, storageCageDTO);
+//                    return storageCageDTO;
+//                }).collect(Collectors.toList());
+//                bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
+//                log.info("4銆佸ぇ鐞嗙墖绗艰繘鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", inSuccessGlass);
+//                //鏇存柊鐞嗙墖绗肩幓鐠冨昂瀵�
+//                updateSlotRemainBySlots(inSuccessGlassSlot);
+//                log.info("5銆佸ぇ鐞嗙墖绗艰繘鐗囩洰鏍囨牸瀛愬昂瀵告洿鏂板畬鎴�");
+//            }
+//
+//        }
+//        Date endDate = new Date();
+//        log.info("end:澶х悊鐗囩杩涚墖瀹屾垚鍚庢洿鏂板ぇ鐞嗙墖绗兼暟鎹换鍔$粨鏉熸椂闂达細{}锛屽叡鑰楁椂锛歿}ms,缁撴潫浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//        return;
+//
+//    }
+//
+//    //    @Scheduled(fixedDelay = 300)
+//    public void updateOutGlassStateTask() {
+//        Date startDate = new Date();
+//        log.info("1銆佸ぇ鐞嗙墖绗煎嚭鐗囧畬鎴愬悗鏇存柊澶х悊鐗囩鏁版嵁浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+//        //鍥犱负澶х悊鐗囩鍜屽嚭鐗囦换鍔℃槸涓や釜搴撶殑鏁版嵁锛屾墍浠ヨ鍒嗗紑鏌ユ壘
+//        List<Object> list = bigStorageCageDetailsService.listObjs(new LambdaQueryWrapper<BigStorageCageDetails>()
+//                .select(BigStorageCageDetails::getGlassId).eq(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING));
+//        if (CollectionUtils.isNotEmpty(list)) {
+//            log.info("2銆佽幏鍙栨墍鏈夋鍦ㄥ嚭鐗囩殑鐜荤拑淇℃伅id:{}", list);
+//            List<String> glassIds = list.stream().map(String::valueOf).collect(Collectors.toList());
+//            List<BigStorageCageOutTask> outSuccessGlass = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>()
+//                    .in(BigStorageCageOutTask::getGlassId, glassIds).in(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_ALL));
+//            if (CollectionUtils.isNotEmpty(outSuccessGlass)) {
+//                for (BigStorageCageOutTask bigStorageCageOutTask : outSuccessGlass
+//                ) {
+//                    if (bigStorageCageOutTask.getEndSlot().equals(Const.ARTIFICIAL_OUT_TARGET_POSITION)) {
+//                        temperingGlassInfoService.update(
+//                                new LambdaUpdateWrapper<TemperingGlassInfo>()
+//                                        .set(TemperingGlassInfo::getState, Const.TEMPERING_END)
+//                                        .eq(TemperingGlassInfo::getGlassId, bigStorageCageOutTask.getGlassId())
+//                        );
+//                    }
+//                }
+//                log.info("3銆佽幏鍙栧嚭鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", outSuccessGlass);
+//                List<UpdateBigStorageCageDTO> storageCageDTOList = outSuccessGlass.stream().map(e -> {
+//                    UpdateBigStorageCageDTO storageCageDTO = new UpdateBigStorageCageDTO();
+//                    storageCageDTO.setGlassId(e.getGlassId());
+//                    storageCageDTO.setTargetSlot(e.getStartSlot());
+//                    return storageCageDTO;
+//                }).collect(Collectors.toList());
+//                bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_OUT);
+//                List<Integer> outSuccessSlotList = outSuccessGlass.stream().map(BigStorageCageOutTask::getStartSlot).collect(Collectors.toList());
+//                log.info("4銆佸ぇ鐞嗙墖绗煎嚭鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", outSuccessGlass);
+//                //鏇存柊鐞嗙墖绗肩幓鐠冨昂瀵�
+//                updateSlotRemainBySlots(outSuccessSlotList);
+//                log.info("5銆佸ぇ鐞嗙墖绗艰繘鐗囩洰鏍囨牸瀛愬昂瀵告洿鏂板畬鎴�");
+//            }
+//        }
+//        Date endDate = new Date();
+//        log.info("end:澶х悊鐗囩鍑虹墖瀹屾垚鍚庢洿鏂板ぇ鐞嗙墖绗兼暟鎹换鍔$粨鏉熸椂闂达細{}锛屽叡鑰楁椂锛歿}ms,缁撴潫浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//        return;
+//
+//    }
+//
+//    //    @Scheduled(fixedDelay = 300)
+//    public void updateScheduleGlassStateTask() {
+//        Date startDate = new Date();
+//        log.info("1銆佸ぇ鐞嗙墖绗艰皟搴﹀畬鎴愬悗鏇存柊澶х悊鐗囩鏁版嵁浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+//        //鍥犱负澶х悊鐗囩鍜岃皟搴︿换鍔℃槸涓や釜搴撶殑鏁版嵁锛屾墍浠ヨ鍒嗗紑鏌ユ壘
+//        List<Object> list = bigStorageCageDetailsService.listObjs(new LambdaQueryWrapper<BigStorageCageDetails>()
+//                .select(BigStorageCageDetails::getGlassId).eq(BigStorageCageDetails::getState, Const.GLASS_STATE_SCHEDULE_ING));
+//        if (CollectionUtils.isNotEmpty(list)) {
+//            log.info("2銆佽幏鍙栨墍鏈夋鍦ㄥ嚭鐗囩殑鐜荤拑淇℃伅id:{}", list);
+//            List<String> glassIds = list.stream().map(String::valueOf).collect(Collectors.toList());
+//            List<BigStorageCageOutTask> scheduleSuccessGlass = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>()
+//                    .in(BigStorageCageOutTask::getGlassId, glassIds).eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_SUCCESS)
+//                    .notIn(BigStorageCageOutTask::getEndSlot, Const.TEMPERING_OUT_TARGET_POSITION, Const.ARTIFICIAL_OUT_TARGET_POSITION));
+//            if (CollectionUtils.isNotEmpty(scheduleSuccessGlass)) {
+//                log.info("3銆佽幏鍙栬皟搴﹀凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", scheduleSuccessGlass);
+//                List<UpdateBigStorageCageDTO> storageCageDTOList = scheduleSuccessGlass.stream().map(e -> {
+//                    UpdateBigStorageCageDTO storageCageDTO = new UpdateBigStorageCageDTO();
+//                    storageCageDTO.setGlassId(e.getGlassId());
+//                    storageCageDTO.setTargetSlot(e.getEndSlot());
+//                    return storageCageDTO;
+//                }).collect(Collectors.toList());
+//                bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
+//                List<String> scheduleSuccessGlassIds = scheduleSuccessGlass.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
+//                log.info("4銆佸ぇ鐞嗙墖绗煎嚭鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", scheduleSuccessGlassIds);
+//                //鏇存柊鐞嗙墖绗肩幓鐠冨昂瀵�
+//                List<Integer> slotList = scheduleSuccessGlass.stream().map(BigStorageCageOutTask::getStartSlot).distinct().collect(Collectors.toList());
+//                slotList.addAll(scheduleSuccessGlass.stream().map(BigStorageCageOutTask::getEndSlot).distinct().collect(Collectors.toList()));
+//                updateSlotRemainBySlots(slotList);
+//                log.info("5銆佸ぇ鐞嗙墖绗艰繘鐗囩洰鏍囨牸瀛愬昂瀵告洿鏂板畬鎴�");
+//            }
+//        }
+//        Date endDate = new Date();
+//        log.info("end:澶х悊鐗囩鍑虹墖瀹屾垚鍚庢洿鏂板ぇ鐞嗙墖绗兼暟鎹换鍔$粨鏉熸椂闂达細{}锛屽叡鑰楁椂锛歿}ms,缁撴潫浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//        return;
+//
+//    }
+//
+//    /**
+//     * 澶勭悊鐮存崯琛ㄤ换鍔�
+//     */
+////    @Scheduled(fixedDelay = 300)
+//    public void dealDamageTask() {
+//        Date startDate = new Date();
+//        log.info("澶х悊鐗囩鐮存崯鐜荤拑娓呴櫎浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+//        //鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
+//        List<BigStorageCageFeedTask> inDamageTaskInfoList = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>()
+//                .in(BigStorageCageFeedTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));
+//        if (CollectionUtils.isNotEmpty(inDamageTaskInfoList)) {
+//            log.info("鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐮存崯鐨勭幓鐠冧俊鎭瘂}", inDamageTaskInfoList);
+//            bigStorageCageFeedTaskService.remove(new LambdaQueryWrapper<BigStorageCageFeedTask>().in(BigStorageCageFeedTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));
+//            //鐞嗙墖绗艰鎯呰〃鏁版嵁鐘舵�佹洿鏂�
+//            bigStorageCageDetailsService.remove(new LambdaQueryWrapper<BigStorageCageDetails>()
+//                    .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW).in(BigStorageCageDetails::getGlassId, inDamageTaskInfoList.stream().map(BigStorageCageFeedTask::getGlassId).collect(Collectors.toList())));
+//            //灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
+//            List<Integer> slotList = new ArrayList<>();
+//            for (BigStorageCageFeedTask bigStorageCageFeedTask : inDamageTaskInfoList) {
+//                Damage damage = new Damage();
+//                damage.setGlassId(bigStorageCageFeedTask.getGlassId());
+//                damage.setLine(bigStorageCageFeedTask.getLine());
+//                damage.setWorkingProcedure("纾ㄨ竟");
+//                damage.setRemark("杩涚鍓嶅崸杞珛");
+//                damage.setStatus(1);
+//                damage.setType(bigStorageCageFeedTask.getTaskState());
+//                damageService.insertDamage(damage);
+//                slotList.add(bigStorageCageFeedTask.getTargetSlot());
+//            }
+//            //鏇存柊鏍煎瓙鍓╀綑瀹藉害
+//            updateSlotRemainBySlots(slotList);
+//            log.info("杩涚墖浠诲姟鎵ц瀹屾垚");
+//        }
+//        //鑾峰彇鍑虹墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
+//        List<BigStorageCageOutTask> outDamageTaskInfoList = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>()
+//                .in(BigStorageCageOutTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));
+//        if (CollectionUtils.isNotEmpty(outDamageTaskInfoList)) {
+//            log.info("鑾峰彇鍑虹墖浠诲姟琛ㄤ腑鐮存崯鐨勭幓鐠冧俊鎭瘂}", outDamageTaskInfoList);
+//            bigStorageCageOutTaskService.remove(new LambdaQueryWrapper<BigStorageCageOutTask>().in(BigStorageCageOutTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));
+//            List<String> glassIdList = outDamageTaskInfoList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
+//            //绉婚櫎閽㈠寲涓嬬墖琛ㄦ暟鎹�
+//            temperingGlassInfoService.remove(new LambdaQueryWrapper<TemperingGlassInfo>().in(TemperingGlassInfo::getGlassId, glassIdList));
+//            //鐞嗙墖绗艰鎯呰〃鏁版嵁鐘舵�佸垹闄�
+//            bigStorageCageDetailsService.remove(new LambdaQueryWrapper<BigStorageCageDetails>().in(BigStorageCageDetails::getGlassId, glassIdList));
+//            //灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
+//            List<Integer> slotList = new ArrayList<>();
+//            for (BigStorageCageOutTask bigStorageCageOutTask : outDamageTaskInfoList) {
+//                Damage damage = new Damage();
+//                damage.setGlassId(bigStorageCageOutTask.getGlassId());
+//                damage.setLine(bigStorageCageOutTask.getEndSlot());
+//                damage.setWorkingProcedure("閽㈠寲");
+//                damage.setRemark("鍑虹墖鍚庡崸杞珛");
+//                damage.setStatus(1);
+//                damage.setType(bigStorageCageOutTask.getTaskState());
+//                damageService.insertDamage(damage);
+//                slotList.add(bigStorageCageOutTask.getStartSlot());
+//            }
+//            //鏇存柊鏍煎瓙鍓╀綑瀹藉害
+//            updateSlotRemainBySlots(slotList);
+//            log.info("鍑虹墖浠诲姟鎵ц瀹屾垚");
+//        }
+//        Date endDate = new Date();
+//        log.info("澶х悊鐗囩鐮存崯鐜荤拑娓呴櫎浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+//        return;
+//    }
+//
+//    /**
+//     * 纭瀛楁竻绌�
+//     */
+////    @Scheduled(fixedDelay = 300)
+//    public void confirmClear() {
+//        PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+//        String d01ToMES = plcParameterObject.getPlcParameter("D01ToMES").getValue();
+//        String d04ToMES = plcParameterObject.getPlcParameter("D04ToMES").getValue();
+//        String mesD01Address = plcParameterObject.getPlcParameter("MESToD01").getAddress();
+//        String mesD04Address = plcParameterObject.getPlcParameter("MESToD04").getAddress();
+////        String d03ToMES = plcParameterObject.getPlcParameter("D03ToMES").getValue();
+////        String d05ToMES = plcParameterObject.getPlcParameter("D05ToMES").getValue();
+//        String d03ToMES = plcParameterObject.getPlcParameter("D03Request").getValue();
+//        String d05ToMES = plcParameterObject.getPlcParameter("D05Request").getValue();
+//        String mesD03Address = plcParameterObject.getPlcParameter("MESToD03").getAddress();
+//        String mesD05Address = plcParameterObject.getPlcParameter("MESToD05").getAddress();
+//        if (!REQUEST_WORD.equals(d01ToMES)) {
+//            log.info("鍦板潃锛歿}鍐欏叆0", mesD01Address);
+//            S7object.getinstance().plccontrol.writeWord(mesD01Address, 0);
+//        }
+//        if (!REQUEST_WORD.equals(d04ToMES)) {
+//            log.info("鍦板潃锛歿}鍐欏叆0", mesD04Address);
+//            S7object.getinstance().plccontrol.writeWord(mesD04Address, 0);
+//        }
+//        if (!REQUEST_WORD.equals(d03ToMES)) {
+//            log.info("鍦板潃锛歿}鍐欏叆0", mesD03Address);
+//            S7object.getinstance().plccontrol.writeWord(mesD03Address, 0);
+//        }
+//        if (!REQUEST_WORD.equals(d05ToMES)) {
+//            log.info("鍦板潃锛歿}鍐欏叆0", mesD05Address);
+//            S7object.getinstance().plccontrol.writeWord(mesD05Address, 0);
+//        }
+//    }
+//
+//    /**
+//     * 杩涚墖鐘舵�佷慨鏀�
+//     */
+////    @Scheduled(fixedDelay = 300)
+//    public void feedStatusUpdate() {
+//        PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+//        String mesD03Address = plcParameterObject.getPlcParameter("MESToD03").getAddress();
+//        String mesD05Address = plcParameterObject.getPlcParameter("MESToD05").getAddress();
+//        List<String> glassIds1 = new ArrayList<>();
+//        List<String> glassIds2 = new ArrayList<>();
+//        for (int i = 1; i <= 6; i++) {
+//            String line1GlassId = plcParameterObject.getPlcParameter("D03ID" + i).getValue();
+//            if (StringUtils.isNotEmpty(line1GlassId)) {
+//                glassIds1.add(line1GlassId);
+//            }
+//            String line2GlassId = plcParameterObject.getPlcParameter("D05ID" + i).getValue();
+//            if (StringUtils.isNotEmpty(line2GlassId)) {
+//                glassIds2.add(line2GlassId);
+//            }
+//        }
+//        List<BigStorageCageFeedTask> bigStorageCageFeedTasks1 = bigStorageCageFeedTaskService.list(
+//                new LambdaQueryWrapper<BigStorageCageFeedTask>()
+//                        .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_NEW)
+//                        .eq(BigStorageCageFeedTask::getLine, Const.A09_OUT_TARGET_POSITION)
+//        );
+//        List<BigStorageCageFeedTask> bigStorageCageFeedTasks2 = bigStorageCageFeedTaskService.list(
+//                new LambdaQueryWrapper<BigStorageCageFeedTask>()
+//                        .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_NEW)
+//                        .eq(BigStorageCageFeedTask::getLine, Const.A10_OUT_TARGET_POSITION)
+//        );
+//        if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks1) && CollectionUtils.isNotEmpty(glassIds1)) {
+//            List<String> matchingIds1 = bigStorageCageFeedTasks1.stream()
+//                    .map(BigStorageCageFeedTask::getGlassId)
+//                    .filter(glassIds1::contains)
+//                    .distinct()
+//                    .collect(Collectors.toList());
+//            log.info("D3id{},鍖归厤id:{}", glassIds1, matchingIds1);
+//            if (CollectionUtils.isNotEmpty(matchingIds1)) {
+//                bigStorageCageFeedTaskService.update(
+//                        new LambdaUpdateWrapper<BigStorageCageFeedTask>()
+//                                .in(BigStorageCageFeedTask::getGlassId, matchingIds1)
+//                                .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
+//                                .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP)
+//                );
+//            }
+//        }
+//        if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks2) && CollectionUtils.isNotEmpty(glassIds2)) {
+//            List<String> matchingIds2 = bigStorageCageFeedTasks2.stream()
+//                    .map(BigStorageCageFeedTask::getGlassId)
+//                    .filter(glassIds2::contains)
+//                    .distinct()
+//                    .collect(Collectors.toList());
+//            log.info("D5id{},鍖归厤id:{}", glassIds2, matchingIds2);
+//            if (CollectionUtils.isNotEmpty(matchingIds2)) {
+//                bigStorageCageFeedTaskService.update(
+//                        new LambdaUpdateWrapper<BigStorageCageFeedTask>()
+//                                .in(BigStorageCageFeedTask::getGlassId, matchingIds2)
+//                                .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
+//                                .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP)
+//                );
+//            }
+//        }
+//        if (CollectionUtils.isEmpty(glassIds1)) {
+//            S7object.getinstance().plccontrol.writeWord(mesD03Address, 0);
+//            log.info("{}绾夸慨鏀圭幓鐠冪姸鎬佷负3", Const.A09_OUT_TARGET_POSITION);
+//            bigStorageCageFeedTaskService.update(
+//                    new LambdaUpdateWrapper<BigStorageCageFeedTask>()
+//                            .eq(BigStorageCageFeedTask::getLine, Const.A09_OUT_TARGET_POSITION)
+//                            .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP)
+//                            .gt(BigStorageCageFeedTask::getTargetSlot, 0)
+//                            .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
+//                            .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_CAR)
+//            );
+//        }
+//        if (CollectionUtils.isEmpty(glassIds2)) {
+//            S7object.getinstance().plccontrol.writeWord(mesD05Address, 0);
+//            log.info("{}绾夸慨鏀圭幓鐠冪姸鎬佷负3", Const.A10_OUT_TARGET_POSITION);
+//            bigStorageCageFeedTaskService.update(
+//                    new LambdaUpdateWrapper<BigStorageCageFeedTask>()
+//                            .eq(BigStorageCageFeedTask::getLine, Const.A10_OUT_TARGET_POSITION)
+//                            .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP)
+//                            .gt(BigStorageCageFeedTask::getTargetSlot, 0)
+//                            .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
+//                            .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_CAR)
+//            );
+//        }
+//    }
+//
+//    /**
+//     * 鎸夌収鐜荤拑id鍒ゆ柇鐜荤拑鐘舵�佸強鍗ц浆绔嬫槸鍚﹀彲鐩存帴鍚姩
+//     */
+//    public Boolean judgeGlassTypeStatus(String glassId, Integer line, String mesAddress) {
+//        //鍒ゆ柇姝ょ幓鐠冩槸鍦ㄧ鍐呮垨宸茬敓鎴愯繘鐗囦换鍔�
+//        BigStorageCageFeedTask bigStorageCageFeedTask = bigStorageCageFeedTaskService.getOne(
+//                new LambdaQueryWrapper<BigStorageCageFeedTask>()
+//                        .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
+//                        .eq(BigStorageCageFeedTask::getGlassId, glassId)
+//        );
+//        BigStorageCageDetails bigStorageCageDetails = bigStorageCageDetailsService.getOne(
+//                new LambdaQueryWrapper<BigStorageCageDetails>()
+//                        .eq(BigStorageCageDetails::getGlassId, glassId)
+//                        .ne(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+//        );
+//        if (bigStorageCageFeedTask != null || bigStorageCageDetails != null) {
+//            log.info("姝ょ幓鐠冨瓨浠诲姟鎴栧凡鍦ㄧ鍐�");
+//            return Boolean.TRUE;
+//        }
+//        //1銆佽幏鍙栦换鍔¤〃涓浉閭荤幓鐠�
+//        List<EdgGlassTaskInfo> edgGlassTaskInfoList;
+//        edgGlassTaskInfoList = edgGlassTaskInfoService.list(new LambdaQueryWrapper<EdgGlassTaskInfo>()
+//                .eq(EdgGlassTaskInfo::getLine, line)
+//                .apply("time >= (select time from edg_glass_task_info where line='" + line + "' and glass_id = '" + glassId + "' and deleted = 0)")
+//                .orderByAsc(EdgGlassTaskInfo::getCreateTime));
+//        if (edgGlassTaskInfoList.size() == 0) {
+//            edgGlassTaskInfoList = edgGlassTaskInfoService.list(new QueryWrapper<EdgGlassTaskInfo>()
+//                    .select("Top 1 *")
+//                    .eq("glass_id", glassId)
+//            );
+//            log.info("鍦ㄥ昂瀵歌〃涓幏鍙栫幓鐠冧俊鎭瘂}", edgGlassTaskInfoList);
+//            if (edgGlassTaskInfoList.size() == 0) {
+//                GlassInfo glassInfo = glassInfoService.getOne(
+//                        new LambdaQueryWrapper<GlassInfo>()
+//                                .eq(GlassInfo::getGlassId, glassId)
+//                );
+//                EdgGlassTaskInfo edgGlassTaskInfo = new EdgGlassTaskInfo();
+//                BeanUtils.copyProperties(glassInfo, edgGlassTaskInfo);
+//                edgGlassTaskInfo.setWidth((int) glassInfo.getWidth());
+//                edgGlassTaskInfo.setHeight((int) glassInfo.getHeight());
+//                edgGlassTaskInfoList.add(edgGlassTaskInfo);
+//                log.info("鍦ㄧ幓鐠冧俊鎭〃涓幏鍙栫幓鐠冧俊鎭瘂}", edgGlassTaskInfoList);
+//            }
+//        }
+//        Assert.isFalse(CollectionUtils.isEmpty(edgGlassTaskInfoList), "璇嗗埆鐜荤拑淇℃伅鏈嚭鐜板湪灏哄琛ㄤ腑,鑾峰彇鐩搁偦涓ゅ潡鐜荤拑澶辫触");
+//        //2銆佽幏鍙栧崸杞珛鍓╀綑瀹藉害
+//        BigStorageDTO sitToUpRemainWidth = bigStorageCageFeedTaskService.querySitToUpRemainWidth(line);
+//        Integer remainWidth;
+//        Integer glassCount;
+//        if (0 == sitToUpRemainWidth.getGlassCount()) {
+//            remainWidth = carWidth;
+//            glassCount = 0;
+//        } else {
+//            remainWidth = sitToUpRemainWidth.getWidth();
+//            glassCount = sitToUpRemainWidth.getGlassCount();
+//        }
+//
+//        Boolean flag = Boolean.TRUE;
+//        //2銆佽幏鍙栧崸杞珛
+//        Integer widthFirst = Math.max(edgGlassTaskInfoList.get(0).getWidth() / 10, edgGlassTaskInfoList.get(0).getHeight() / 10);
+//        Integer heightFirst = Math.min(edgGlassTaskInfoList.get(0).getWidth() / 10, edgGlassTaskInfoList.get(0).getHeight() / 10);
+//        if (edgGlassTaskInfoList.size() == 1) {
+//            if (remainWidth >= widthFirst) {
+//                if (glassCount < inCarMaxSize) {
+//                    addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst, heightFirst);
+//                } else {
+//                    if (glassCount < inCarMaxSize + 1) {
+//                        addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightFirst);
+//                    } else {
+//                        return Boolean.FALSE;
+//                    }
+//                }
+//            } else {
+//                flag = Boolean.FALSE;
+//            }
+//        } else {
+//            Integer widthSecond = Math.max(edgGlassTaskInfoList.get(1).getWidth() / 10, edgGlassTaskInfoList.get(1).getHeight() / 10);
+//            Integer heightSecond = Math.min(edgGlassTaskInfoList.get(1).getWidth() / 10, edgGlassTaskInfoList.get(1).getHeight() / 10);
+//            if (remainWidth >= widthFirst) {
+//                if (remainWidth - widthFirst - glassGap >= widthSecond) {
+//                    if (glassCount < inCarMaxSize) {
+//                        addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst, heightFirst);
+//                    } else {
+//                        if (glassCount < inCarMaxSize + 1) {
+//                            addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightFirst);
+//                        } else {
+//                            return Boolean.FALSE;
+//                        }
+//                    }
+//                } else {
+//                    if (glassCount < inCarMaxSize + 1) {
+//                        addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightFirst);
+//                    } else {
+//                        return Boolean.FALSE;
+//                    }
+//                }
+//            } else {
+//                flag = Boolean.FALSE;
+//            }
+//        }
+//        //鍚憄lc鍙戦�佽繘鐗囩‘璁�
+//        if (flag) {
+//            //鍚憄lc鍐欏叆纭瀛�
+//            PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+//            int returnData = 1;
+//            int count = 1;
+//            while (returnData != 0) {
+//                S7object.getinstance().plccontrol.writeWord(mesAddress, 1);
+//
+//                if (Const.A10_OUT_TARGET_POSITION.equals(line)) {
+//                    returnData = Integer.parseInt(plcParameterObject.getPlcParameter("D04ToMES").getValue());
+//                } else {
+//                    returnData = Integer.parseInt(plcParameterObject.getPlcParameter("D01ToMES").getValue());
+//                }
+////                returnData = S7object.getinstance().plccontrol.readWord(mesAddress, 1).get(0);
+//                log.info("杩涘崸杞珛绗瑊}娆″彂閫佺‘璁ゅ瓧瀹屾垚锛屽湴鍧�涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesAddress, 1);
+//            }
+//        }
+//        //璁板綍鏃犳硶鏀句笅鐜荤拑锛屽悗缁垽鏂惎鍔�
+//        return flag;
+//    }
+//
+//    /**
+//     * 娣诲姞浠诲姟淇℃伅
+//     */
+//    private Boolean addFeedTask(String glassId, Integer line, Integer taskType, Integer width, Integer height) {
+//        BigStorageCageFeedTask bigStorageCageFeedTask = new BigStorageCageFeedTask();
+//        bigStorageCageFeedTask.setGlassId(glassId);
+//        bigStorageCageFeedTask.setTaskState(Const.BIG_STORAGE_IN_NEW);
+//        bigStorageCageFeedTask.setLine(line);
+//        bigStorageCageFeedTask.setTaskType(taskType);
+//        bigStorageCageFeedTask.setWidth(width);
+//        bigStorageCageFeedTask.setHeight(height);
+//        bigStorageCageFeedTask.setCreateTime(new Date());
+//        //鍒犻櫎鐞嗙墖绗艰〃鎷胯蛋/鐮存崯鏁版嵁鏁版嵁
+//        damageService.deleteByGlassId(glassId);
+//        Damage damage = new Damage();
+//        damage.setGlassId(glassId);
+//        damage.setWorkingProcedure("纾ㄨ竟");
+//        damage.setLine(line);
+//        damage.setType(1);
+//        damage.setRemark("杩涘ぇ鐞嗙墖");
+//        damageService.insertDamage(damage);
+//        return bigStorageCageFeedTaskService.save(bigStorageCageFeedTask);
+//    }
+//
+//    /**
+//     * 鑾峰彇闇�瑕佸惎鍔ㄧ殑绾胯矾锛氫袱鏉$嚎閮藉彲鍚姩 鑾峰彇绗竴鐗囩幓鐠冪増鍥緄d鏈�灏� 鐗堝簭鏈�澶х殑绾胯矾
+//     *
+//     * @return 闇�瑕佸惎鍔ㄧ殑绾胯矾
+//     */
+//    public Integer getStartLine() {
+//        List<BigStorageCageFeedTask> taskList = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>()
+//                .inSql(BigStorageCageFeedTask::getId, "select min(id) from big_storage_cage_feed_task where task_state = 2" +
+//                        "and (target_slot = 0 or target_slot is null) group by line"));
+//        Assert.isFalse(CollectionUtils.isEmpty(taskList), "鍗ц浆绔嬩袱鏉$嚎閮芥病鏈夌幓鐠冭繘鐗囦换鍔�");
+//        Map<String, Integer> taskMap = taskList.stream().collect(Collectors.toMap(BigStorageCageFeedTask::getGlassId,
+//                BigStorageCageFeedTask::getLine));
+//        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
+//                .in(GlassInfo::getGlassId, taskMap.keySet())
+//                .orderByAsc(GlassInfo::getTemperingLayoutId)
+//                .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence)
+//                .last("limit 1"));
+//        return taskMap.get(glassInfo.getGlassId());
+//    }
+//
+//    /**
+//     * 璁$畻浠诲姟琛ㄨ繘鐗囩嚎璺殑鐩爣鏍煎瓙锛屽苟鍚姩浠诲姟
+//     */
+//    public boolean computeTargetByLine(Integer line) {
+//        //1銆佽幏鍙栦换鍔¤〃涓殑鎵�鏈夌幓鐠冿紙鎸囧畾绾胯矾涓斿凡缁忚繘鍗ц浆绔嬪畬鎴愶級
+//        List<BigStorageCageFeedTask> taskList = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>()
+//                .eq(BigStorageCageFeedTask::getLine, line)
+//                .and(e -> e.isNull(BigStorageCageFeedTask::getTargetSlot).or().eq(BigStorageCageFeedTask::getTargetSlot, Const.OUT_TARGET_POSITION_ZERO))
+//                .in(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP_ALL)
+//                .orderByAsc(BigStorageCageFeedTask::getId));
+//        //2銆佸幓绗煎瓙鍐呮煡鎵炬槸鍚﹀彲浠ョ户缁瓨鏀剧殑绗煎瓙
+//        List<String> glassIds = taskList.stream().map(BigStorageCageFeedTask::getGlassId).collect(Collectors.toList());
+//        List<GlassInfo> glassInfos = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>().in(GlassInfo::getGlassId, glassIds));
+//        return computeIsTemperingTargetByLine(glassInfos, taskList, line);
+//    }
+//
+//    /**
+//     * 鏄惁閽㈠寲鐜荤拑杩涚鐩爣浣嶇疆
+//     *
+//     * @param glassInfos 褰撴潯绾垮崸杞珛鎵�鏈夌幓鐠�
+//     * @param taskList   褰撴潯绾垮崸杞珛鎵�鏈変换鍔�
+//     * @param line       浠诲姟鏄摢鏉$嚎
+//     */
+//    private boolean computeIsTemperingTargetByLine(List<GlassInfo> glassInfos, List<BigStorageCageFeedTask> taskList, Integer line) {
+//        //1銆佸皢鐜荤拑淇℃伅闆嗗悎杞负glassid涓簁ey鐨刴ap
+//        Map<String, GlassInfo> glassInfoMap = glassInfos.stream()
+//                .collect(Collectors.toMap(GlassInfo::getGlassId, p -> p));
+//        for (BigStorageCageFeedTask e : taskList) {
+//            GlassInfo info = glassInfoMap.get(e.getGlassId());
+//            if (info == null) {
+//                continue;
+//            }
+//            BigStorageCageDetails cageDetails = new BigStorageCageDetails();
+//            BeanUtils.copyProperties(info, cageDetails);
+//            //2銆佽幏鍙栫洰鏍囨牸瀛愪俊鎭�
+//            BigStorageDTO bigStorageDTO = bigStorageCageDetailsService.queryTargetSlotByTempering(info);
+//            //3銆佷复鏃舵洿鏂版牸瀛愮殑鍓╀綑灏哄锛氶槻姝㈢浉閭荤幓鐠冭繘鍚屼竴鏍煎瓙閫犳垚鍓╀綑灏哄涓嶈冻锛岀幓鐠冭秺鐣岀殑鎯呭喌锛屼换鍔″畬鎴愬悗鍐嶆鏇存柊澶х悊鐗囩琛ㄥ墿浣欏搴︼紙鎸夌収绗煎唴鐜荤拑鏁伴噺鏇存柊澶х悊鐗囩鍓╀綑灏哄锛�
+//            bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, bigStorageDTO.getWidth() - Math.max(info.getWidth(), info.getHeight()) - glassGap)
+//                    .eq(BigStorageCage::getSlot, bigStorageDTO.getSlot()));
+//            //4銆佹洿鏂拌繘鐗囦换鍔¤〃锛岀洰鏍囨牸瀛愬強鐘舵�侊紙鐘舵�佹敼涓�2 鐢垫皵鎵埌鑷澶勭悊锛�  閬囧埌闂锛氭棤娉曟壒閲忔洿鏂帮紝鎵归噺鏇存柊鏃犳硶璧版寚瀹氫粠搴�
+//            e.setTargetSlot(bigStorageDTO.getSlot());
+//            bigStorageCageFeedTaskService.updateById(e);
+//
+//            //5銆佸皢杩涚墖淇℃伅瀛樺叆澶х悊鐗囩璇︽儏琛�
+//            cageDetails.setSlot(bigStorageDTO.getSlot());
+//            cageDetails.setState(Const.GLASS_STATE_NEW);
+//            cageDetails.setDeviceId(bigStorageDTO.getDeviceId());
+//            cageDetails.setGap(glassGap);
+//            bigStorageCageDetailsService.save(cageDetails);
+//
+//        }
+//        sendTaskListToPLC(taskList, line);
+//        return Boolean.TRUE;
+//    }
+//
+//    private void sendTaskListToPLC(List<BigStorageCageFeedTask> taskList, Integer line) {
+//        log.info("閫佺墖浠诲姟鍙戦�佽繘鐗囩幓鐠冧俊鎭�");
+//        S7control s7control = S7object.getinstance().plccontrol;
+//        PlcParameterObject plcMesObject = S7object.getinstance().PlcMesObject;
+//        String mesD03Address = plcMesObject.getPlcParameter("MESToD03").getAddress();
+//        String mesD05Address = plcMesObject.getPlcParameter("MESToD05").getAddress();
+//        String outLine = line.equals(Const.A09_OUT_TARGET_POSITION) ? mesD03Address : mesD05Address;
+//        List<String> returnData = new ArrayList<>();
+//
+//        for (int i = 1; i <= taskList.size(); i++) {
+//            s7control.writeWord(plcMesObject.getPlcParameter("StartAddToImport" + i).getAddress(), taskList.get(i - 1).getLine());
+//            s7control.writeWord(plcMesObject.getPlcParameter("TargetAddToImport" + i).getAddress(), taskList.get(i - 1).getTargetSlot());
+//            returnData.add(taskList.get(i - 1).getGlassId());
+//            log.info("鍚憄lc鍙戦�佺{}鐗囩幓鐠冨凡瀹屾垚,璧峰浣嶇疆鏄瘂}锛岀洰鏍囦綅缃槸", i, taskList.get(i - 1).getLine(), taskList.get(i - 1).getTargetSlot());
+//        }
+////        int returnData = 1;
+//        int count = 1;
+//
+//
+//        while (CollectionUtils.isNotEmpty(returnData)) {
+//            List<String> glassIds1 = new ArrayList<>();
+//            List<String> glassIds2 = new ArrayList<>();
+//            s7control.writeWord(outLine, 2);
+//            for (int i = 1; i <= 6; i++) {
+//                String line1GlassId = plcMesObject.getPlcParameter("D03ID" + i).getValue();
+//                if (StringUtils.isNotEmpty(line1GlassId)) {
+//                    glassIds1.add(line1GlassId);
+//                }
+//                String line2GlassId = plcMesObject.getPlcParameter("D05ID" + i).getValue();
+//                if (StringUtils.isNotEmpty(line2GlassId)) {
+//                    glassIds2.add(line2GlassId);
+//                }
+//            }
+//            if (line.equals(Const.A09_OUT_TARGET_POSITION)) {
+////                returnData = Integer.parseInt(plcMesObject.getPlcParameter("D03ToMES").getValue());
+//                returnData = glassIds1;
+//            } else {
+////                returnData = Integer.parseInt(plcMesObject.getPlcParameter("D05ToMES").getValue());
+//                returnData = glassIds2;
+//            }
+////            returnData = s7control.readWord(outLine, 1).get(0);
+//            log.info("宸插悜plc绗瑊}娆″彂閫佽繘鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{},璇诲埌鐨勮姹備负{}", count++, outLine, 2, returnData);
+//        }
+////        while (returnData != 0) {
+////            s7control.writeWord(outLine, 2);
+////            if (line.equals(Const.A09_OUT_TARGET_POSITION)) {
+//////                returnData = Integer.parseInt(plcMesObject.getPlcParameter("D03ToMES").getValue());
+////                returnData = s7control.readWord(plcMesObject.getPlcParameter("D03Request").getAddress(), 1).get(0);
+////            } else {
+//////                returnData = Integer.parseInt(plcMesObject.getPlcParameter("D05ToMES").getValue());
+////                returnData = s7control.readWord(plcMesObject.getPlcParameter("D05Request").getAddress(), 1).get(0);
+////            }
+//////            returnData = s7control.readWord(outLine, 1).get(0);
+////            log.info("宸插悜plc绗瑊}娆″彂閫佽繘鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{},璇诲埌鐨勮姹備负{}", count++, outLine, 2,returnData);
+////        }
+//    }
+//
+//    /**
+//     * 鍑虹墖涓�娆′粎鐢熸垚涓�杞︾幓鐠�
+//     *
+//     * @param list
+//     * @param isTempering
+//     * @param mesToPLCAddress
+//     * @param <T>
+//     * @return
+//     */
+//    private <T extends BigStorageCageBaseInfo> Boolean computeOutGlassInfo(List<T> list, Boolean isTempering, String mesToPLCAddress) {
+//        //浠诲姟鏁版嵁  鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲�  鐜荤拑闂撮殧
+//        List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>();
+//        //鎵撹溅鍓╀綑灏哄
+//        Integer remainWidth = carWidth;
+//        int maxX = 0;
+//        for (T e : list) {
+//            if (bigStorageCageOutTaskList.size() >= outCarMaxSize || Math.max((int) e.getWidth(), (int) e.getHeight()) > remainWidth) {
+//                break;
+//            }
+//            remainWidth = remainWidth - Math.max((int) e.getWidth(), (int) e.getHeight()) - glassGap;
+//            if (isTempering) {
+//                int minLength = Math.min((int) e.getWidth(), (int) e.getHeight());
+//                if (maxX + minLength <= xMaxSize) {
+//                    bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.TEMPERING_OUT_TARGET_POSITION,
+//                            e.getWidth() * 10, e.getHeight() * 10, 0, 0, 1, new Date()));
+////                    maxX = Math.max(maxX, e.getXCoordinate());
+//                } else {
+//                    break;
+//                }
+//
+//            } else {
+//                bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION,
+//                        e.getWidth() * 10, e.getHeight(), 0, 0, 1, new Date()));
+//            }
+//        }
+//        Assert.isFalse(CollectionUtils.isEmpty(bigStorageCageOutTaskList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟");
+//        log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", bigStorageCageOutTaskList.size());
+//        bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList);
+//        List<String> glassIds = bigStorageCageOutTaskList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
+//        log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄凡鍑虹墖", glassIds);
+//        bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
+//                .set(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING)
+//                .in(BigStorageCageDetails::getGlassId, glassIds));
+//        int returnData = 0;
+//        int count = 1;
+//        while (returnData == 0) {
+//            S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
+//            returnData = S7object.getinstance().plccontrol.readWord(mesToPLCAddress, 1).get(0);
+//            log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesToPLCAddress, returnData);
+//        }
+//        return Boolean.TRUE;
+//    }
+//
+//    /**
+//     * 鍑虹墖涓�娆$敓鎴愪竴鐐夌幓鐠�
+//     *
+//     * @param list
+//     * @param isTempering
+//     * @param mesToPLCAddress
+//     * @param <T>
+//     * @return
+//     */
+//    public <T extends BigStorageCageBaseInfo> Boolean computeOutMoreGlassInfo(List<T> list, Boolean isTempering, String mesToPLCAddress) {
+//        //浠诲姟鏁版嵁  鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲�  鐜荤拑闂撮殧
+//        List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>();
+//        //鎵撹溅鍓╀綑灏哄
+//        Integer remainWidth = carWidth;
+//        int trainNumber = 1;
+//        int serialNumber = 1;
+//        int maxX = 0;
+//        for (T e : list) {
+//            int maxLength = Math.max((int) e.getWidth(), (int) e.getHeight());
+//            if (serialNumber > outCarMaxSize || maxLength > remainWidth) {
+//                remainWidth = carWidth;
+//                trainNumber = trainNumber + 1;
+//                serialNumber = 1;
+//                maxX = 0;
+//            }
+//            remainWidth = remainWidth - maxLength - glassGap;
+//            if (isTempering) {
+//                int minLength = Math.min((int) e.getWidth(), (int) e.getHeight());
+//                if (maxX + minLength <= xMaxSize) {
+//                    bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.TEMPERING_OUT_TARGET_POSITION,
+//                            e.getWidth() * 10, e.getHeight() * 10, trainNumber, serialNumber++, 1, new Date()));
+////                    maxX = Math.max(maxX, e.getXCoordinate());
+//                } else {
+//                    remainWidth = carWidth - maxLength - glassGap;
+//                    trainNumber = trainNumber + 1;
+//                    serialNumber = 1;
+////                    maxX = e.getXCoordinate();
+//                    bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.TEMPERING_OUT_TARGET_POSITION,
+//                            e.getWidth() * 10, e.getHeight(), trainNumber, serialNumber++, 1, new Date()));
+//                }
+//            } else {
+//                bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION,
+//                        e.getWidth() * 10, e.getHeight(), trainNumber, serialNumber++, 1, new Date()));
+//            }
+//        }
+//        Assert.isFalse(CollectionUtils.isEmpty(bigStorageCageOutTaskList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟");
+//        log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", bigStorageCageOutTaskList.size());
+//        for (BigStorageCageOutTask bigStorageCageOutTask : bigStorageCageOutTaskList
+//        ) {
+//            bigStorageCageOutTaskService.save(bigStorageCageOutTask);
+//        }
+////        bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList);
+//        List<String> glassIds = bigStorageCageOutTaskList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
+//        log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄凡鍑虹墖", glassIds);
+//        bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
+//                .set(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING)
+//                .in(BigStorageCageDetails::getGlassId, glassIds)
+//                .ne(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT));
+////        int returnData = 0;
+////        int count = 1;
+////        while (returnData == 0) {
+////            S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
+////            returnData = S7object.getinstance().plccontrol.readWord(mesToPLCAddress, 1).get(0);
+////            log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesToPLCAddress, returnData);
+////        }
+//        return Boolean.TRUE;
+//    }
+//
+//    public void updateSlotRemainBySlots(List<Integer> slotList) {
+//        //鑾峰彇鏍煎瓙鍐呮墍鏈夌殑鐜荤拑淇℃伅
+//        List<BigStorageCageDetails> inSlotGlassList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
+//                .in(BigStorageCageDetails::getSlot, slotList).in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
+//        Map<Integer, Double> slotRemainMap = new HashMap<>();
+//        //鏄惁瀛樺湪鏈夋牸瀛愰潪绌虹殑鐜荤拑
+//        if (CollectionUtils.isNotEmpty(inSlotGlassList)) {
+//            //瀛樺湪  灏嗘牸瀛愬唴鐨勭幓鐠冨垎鍒繘琛屾洿鏂�
+//            slotRemainMap = inSlotGlassList.stream()
+//                    .collect(Collectors.groupingBy(BigStorageCageDetails::getSlot, Collectors.summingDouble(item -> Math.max(item.getWidth(), item.getHeight()) + glassGap)));
+//            slotRemainMap.forEach((e, v) -> {
+//                double remainWidth = slotWidth - v >= 0 ? slotWidth - v : 0;
+//                bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, remainWidth)
+//                        .eq(BigStorageCage::getSlot, e));
+//            });
+//        }
+//        //杩囨护涓嶅瓨鍦ㄧ幓鐠冪殑鏍煎瓙 灏嗗搴﹂噸缃负鍘熷瀹藉害5000
+//        Set<Integer> remainSlotList = slotRemainMap.keySet();
+//        slotList.removeAll(remainSlotList);
+//        if (CollectionUtils.isNotEmpty(slotList)) {
+//            bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, slotWidth)
+//                    .in(BigStorageCage::getSlot, slotList));
+//        }
+//    }
+//
+//    public Boolean computeIsRun(int line, String glassId) {
+//        //鑾峰彇鍗ц浆绔嬪墿浣欏搴�
+//        BigStorageDTO sitToUpRemainWidth = bigStorageCageFeedTaskService.querySitToUpRemainWidth(line);
+//        if (sitToUpRemainWidth.getGlassCount() == 0) {
+//            return Boolean.FALSE;
+//        }
+//        //鑾峰彇鐜荤拑淇℃伅
+//        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
+//        return sitToUpRemainWidth.getWidth() < Math.max(glassInfo.getWidth(), glassInfo.getHeight());
+//    }
+//
+//}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/opccallback/BigStorageStartCallback.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/opccallback/BigStorageStartCallback.java
new file mode 100644
index 0000000..e5803fb
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/opccallback/BigStorageStartCallback.java
@@ -0,0 +1,823 @@
+//package com.mes.job.opccallback;
+//
+//import cn.hutool.core.lang.Assert;
+//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+//import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+//import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+//import com.github.yulichang.toolkit.JoinWrappers;
+//import com.github.yulichang.wrapper.MPJLambdaWrapper;
+//import com.kangaroohy.milo.runner.subscription.SubscriptionCallback;
+//import com.mes.base.entity.BigStorageCageBaseInfo;
+//import com.mes.bigstorage.entity.BigStorageCage;
+//import com.mes.bigstorage.entity.BigStorageCageDetails;
+//import com.mes.bigstorage.entity.dto.BigStorageDTO;
+//import com.mes.bigstorage.entity.dto.SlotSequenceDTO;
+//import com.mes.bigstorage.entity.dto.TemperingLayoutDTO;
+//import com.mes.bigstorage.service.BigStorageCageDetailsService;
+//import com.mes.bigstorage.service.BigStorageCageService;
+//import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
+//import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
+//import com.mes.bigstoragetask.service.BigStorageCageFeedTaskService;
+//import com.mes.bigstoragetask.service.BigStorageCageOutTaskService;
+//import com.mes.common.S7object;
+//import com.mes.common.config.Const;
+//import com.mes.damage.entity.Damage;
+//import com.mes.damage.service.DamageService;
+//import com.mes.device.PlcParameterObject;
+//import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+//import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
+//import com.mes.glassinfo.entity.GlassInfo;
+//import com.mes.glassinfo.service.GlassInfoService;
+//import com.mes.temperingglass.entity.TemperingGlassInfo;
+//import com.mes.temperingglass.service.TemperingGlassInfoService;
+//import com.mes.tools.S7control;
+//import com.mes.utils.RedisUtil;
+//import lombok.extern.slf4j.Slf4j;
+//import org.apache.commons.lang.StringUtils;
+//import org.springframework.beans.BeanUtils;
+//import org.springframework.beans.factory.annotation.Value;
+//import org.springframework.stereotype.Service;
+//
+//import javax.annotation.Resource;
+//import java.util.ArrayList;
+//import java.util.Date;
+//import java.util.List;
+//import java.util.Map;
+//import java.util.stream.Collectors;
+//
+///**
+// * @Author : zhoush
+// * @Date: 2024/10/28 21:22
+// * @Description:
+// */
+//@Service
+//@Slf4j
+//public class BigStorageStartCallback implements SubscriptionCallback {
+//
+//
+//    @Resource
+//    private BigStorageCageService bigStorageCageService;
+//    @Resource
+//    private BigStorageCageDetailsService bigStorageCageDetailsService;
+//    @Resource
+//    private GlassInfoService glassInfoService;
+//    @Resource
+//    private BigStorageCageFeedTaskService bigStorageCageFeedTaskService;
+//    @Resource
+//    private BigStorageCageOutTaskService bigStorageCageOutTaskService;
+//    @Resource
+//    private EdgGlassTaskInfoService edgGlassTaskInfoService;
+//    @Resource
+//    private TemperingGlassInfoService temperingGlassInfoService;
+//    @Resource
+//    private DamageService damageService;
+//
+//    @Resource
+//    private RedisUtil redisUtil;
+//
+//    private static final String REQUEST_WORD = "1";
+//
+//    @Value("${mes.sequence.order}")
+//    private boolean sequenceOrder;
+//
+//    @Value("${mes.carWidth}")
+//    private Integer carWidth;
+//
+//    @Value("${mes.slotWidth}")
+//    private Integer slotWidth;
+//
+//    @Value("${mes.inCarMaxSize}")
+//    private Integer inCarMaxSize;
+//
+//    @Value("${mes.outCarMaxSize}")
+//    private Integer outCarMaxSize;
+//
+//    @Value("${mes.glassGap}")
+//    private Integer glassGap;
+//
+//    @Value("${mes.xMaxSize}")
+//    private Integer xMaxSize;
+//
+//
+//    private String d01GlassId = "";
+//    private String d04GlassId = "";
+//
+//    @Override
+//    public void onSubscribe(String identifier, Object value) {
+//        //todo:鑾峰彇浠诲姟鍒楄〃
+//        String tableName = "";
+//        //todo:鎸夌収琛ㄦ槑鑾峰彇浼嶄俊鎭�
+//        List<BigStorageCageFeedTask> tasks = new ArrayList<>();
+//        if (CollectionUtils.isEmpty(tasks)) {
+//            log.info("鍗ц浆绔嬩笂娌℃湁鐜荤拑");
+//            //todo 涓庡崸杞珛浜や簰锛屽皢璇锋眰瀛楀ぇ杞﹁姹傚彉涓�0锛岀‘淇濊闃呬换鍔″彲鍐嶆鎵ц
+//            return;
+//        }
+//        List<String> glassIds = tasks.stream().map(BigStorageCageFeedTask::getGlassId).collect(Collectors.toList());
+//        List<GlassInfo> glassInfos = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>().in(GlassInfo::getGlassId, glassIds));
+//        computeIsTemperingTargetByLine(glassInfos, tasks);
+//    }
+//
+//
+//    //    @Scheduled(fixedDelay = 10000)
+//    public void plcToHomeEdgOutTask() {
+//        String mesToPLCAddress = "";
+//        List<BigStorageCageOutTask> outingList = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>()
+//                .eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_NEW));
+//        if (CollectionUtils.isNotEmpty(outingList)) {
+//            log.info("鏈夋鍦ㄦ墽琛屽嚭鐗囩殑浠诲姟锛岀粨鏉熷綋鍓嶅嚭鐗囩嚎绋�");
+//            return;
+//        }
+//        if (redisUtil.getCacheObject("temperingSwitch")) {
+//            //鏄惁鏈夋鍦ㄩ挗鍖栫殑鐜荤拑
+//            List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.selectJoinList(TemperingGlassInfo.class, new MPJLambdaWrapper<TemperingGlassInfo>()
+//                    .selectAll(TemperingGlassInfo.class)
+//                    .leftJoin(BigStorageCageOutTask.class, BigStorageCageOutTask::getGlassId, TemperingGlassInfo::getGlassId)
+//                    .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW)
+//                    .isNull(BigStorageCageOutTask::getGlassId)
+//                    .orderBy(Boolean.TRUE, sequenceOrder, TemperingGlassInfo::getTemperingFeedSequence));
+//            if (CollectionUtils.isNotEmpty(temperingGlassInfoList)) {
+//                log.info("鏈夋鍦ㄥ嚭鐗囩殑閽㈠寲浠诲姟");
+//                computeOutMoreGlassInfo(temperingGlassInfoList, Boolean.TRUE, mesToPLCAddress);
+//                return;
+//            }
+//            //鏄惁鏈変汉宸ヤ笅鐗囦换鍔�   鏈夌洿鎺ュ嚭
+////            List<BigStorageCageDetails> artificialList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
+////                    .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_ARTIFICIAL).orderByDesc(BigStorageCageDetails::getWidth));
+//            List<BigStorageCageDetails> artificialList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
+//                    .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_ARTIFICIAL)
+//                    .orderByAsc(BigStorageCageDetails::getSlot)
+//                    .orderByDesc(BigStorageCageDetails::getId));
+//            if (CollectionUtils.isNotEmpty(artificialList)) {
+//                computeOutMoreGlassInfo(artificialList, Boolean.FALSE, mesToPLCAddress);
+//                return;
+//            }
+//            //閽㈠寲浼樺厛锛氳幏鍙栫悊鐗囩  鐜荤拑灏忕墖  鐮存崯琛� 鏁伴噺   鍒ゆ柇绗煎唴鐗堝浘鏄惁鍒伴綈
+//            List<TemperingLayoutDTO> temperingLayoutDTOList = bigStorageCageDetailsService.temperingIsAll();
+//            if (CollectionUtils.isNotEmpty(temperingLayoutDTOList)) {
+//                //鐜荤拑鍒伴綈鍖呮嫭宸插嚭鐗囩殑
+//                //鍒伴綈锛屽皢鐜荤拑灏忕墖鏁版嵁瀛樺叆閽㈠寲灏忕墖琛紝閫昏緫鐢熸垚鍑虹墖浠诲姟  缁撴潫
+//                for (TemperingLayoutDTO item : temperingLayoutDTOList) {
+//                    if (redisUtil.getCacheObject("temperingengineerId").equals(item.getEngineerId())) {
+//                        List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, JoinWrappers.lambda(GlassInfo.class)
+//                                .selectAll(GlassInfo.class)
+//                                .select("-1 as state")
+//                                .selectAs(BigStorageCageDetails::getSlot, TemperingGlassInfo::getSlot)
+//                                .innerJoin(BigStorageCageDetails.class, BigStorageCageDetails::getGlassId, GlassInfo::getGlassId)
+//                                .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+//                                .eq(GlassInfo::getTemperingLayoutId, item.getTemperingLayoutId())
+//                                .eq(GlassInfo::getEngineerId, item.getEngineerId())
+//                                .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence));
+//                        if (CollectionUtils.isNotEmpty(temperingGlassInfos)) {
+//                            temperingGlassInfoService.saveBatch(temperingGlassInfos);
+//                            computeOutMoreGlassInfo(temperingGlassInfoList, Boolean.TRUE, mesToPLCAddress);
+//                            return;
+//                        }
+//                    }
+//                }
+//            }
+//        }
+//        //鎵ц鍐呴儴璋冨害浠诲姟
+//        List<TemperingLayoutDTO> temperingOccupySlotList = bigStorageCageDetailsService.queryTemperingOccupySlot();
+//        if (CollectionUtils.isNotEmpty(temperingOccupySlotList)) {
+//            loop:
+//            for (TemperingLayoutDTO temperingOccupySlot : temperingOccupySlotList) {
+//                List<SlotSequenceDTO> slotSequenceList = bigStorageCageDetailsService.queryGlassMaxAndMin(temperingOccupySlot.getEngineerId(), temperingOccupySlot.getTemperingLayoutId());
+//                for (int i = 0; i < slotSequenceList.size() - 1; i++) {
+//                    SlotSequenceDTO first = slotSequenceList.get(i);
+//                    SlotSequenceDTO second = slotSequenceList.get(i + 1);
+//                    int slotWidth = carWidth - first.getRemainWidth() - glassGap;
+//                    if (first.getMinSequence() == second.getMaxSequence() + 1
+//                            && second.getRemainWidth() > slotWidth && slotWidth >= 0) {
+//                        List<BigStorageCageDetails> list = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
+//                                .eq(BigStorageCageDetails::getSlot, first.getSlot()).eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+//                                .orderBy(Boolean.TRUE, sequenceOrder, BigStorageCageDetails::getTemperingFeedSequence));
+//                        if (CollectionUtils.isNotEmpty(list)) {
+//                            List<BigStorageCageOutTask> outTasks = new ArrayList<>();
+//                            int serialNumber = 1;
+//                            for (BigStorageCageDetails item : list) {
+//                                outTasks.add(new BigStorageCageOutTask(item.getGlassId(), first.getSlot(), second.getSlot(),
+//                                        item.getWidth() * 10, item.getHeight() * 10, 1, serialNumber++, Const.BIG_STORAGE_OUT_NEW, new Date()));
+//                            }
+//                            //鏂板璋冨害浠诲姟
+//                            bigStorageCageOutTaskService.saveBatch(outTasks);
+//                            //鏇存柊鐞嗙墖绗艰鎯呰〃璋冨害鐨勫悗鐨勭幓鐠冧綅缃俊鎭細鐢熸垚浠诲姟鍚庡厛灏嗙幓鐠冩牸瀛愪綅缃繘琛岃皟鏁达紝鐜荤拑鐘舵�佹敼涓鸿皟搴︿腑锛屾柊澧炶皟搴﹀畬鎴愪换鍔★紝澶勭悊璋冨害瀹屾垚鍚庣幓鐠冪姸鎬佹敼涓�100.
+//                            List<String> glassList = list.stream().map(BigStorageCageDetails::getGlassId).collect(Collectors.toList());
+//                            bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>().set(BigStorageCageDetails::getState, Const.GLASS_STATE_SCHEDULE_ING)
+//                                    .set(BigStorageCageBaseInfo::getSlot, second.getSlot()).in(BigStorageCageDetails::getGlassId, glassList));
+//                            //涓ゆ鏇存柊绗煎瓙鐨勫墿浣欏昂瀵革細绗竴娆¢槻姝㈡湁鐜荤拑缁х画杩涜皟搴﹀悗鐨勭瀛愶紝绗簩娆℃洿鏂帮細璁$畻鏍煎瓙鐨勫疄闄呭昂瀵�
+//                            // 浠呮洿鏂拌皟搴﹀悗鐨勬牸瀛愪俊鎭細璧峰鏍煎瓙瀹屾垚鍚庢洿鏂帮細闃叉璋冨害鍑虹墖杩囩▼涓湁鏂扮幓鐠冭繘鍏ワ紝
+////                            todo:涓存椂瑙e喅鎶ラ敊
+////                            updateSlotRemainBySlots(Arrays.asList(second.getSlot()));
+//                            break loop;
+//                        }
+//                    }
+//                }
+//            }
+////            //鍚憄lc鍐欏叆纭瀛�
+////            int returnData = 0;
+////            int count = 1;
+////            while (returnData == 0) {
+////                log.info("宸插悜plc绗瑊}娆¢�佸崗璁�", count);
+////                S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
+////                returnData = S7object.getinstance().plccontrol.readWord(mesToPLCAddress, 1).get(0);
+////                log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesToPLCAddress, returnData);
+////            }
+//            return;
+//        }
+//    }
+//
+//
+//    /**
+//     * 纭瀛楁竻绌�
+//     */
+////    @Scheduled(fixedDelay = 300)
+//    public void confirmClear() {
+//        PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+//        String d01ToMES = plcParameterObject.getPlcParameter("D01ToMES").getValue();
+//        String d04ToMES = plcParameterObject.getPlcParameter("D04ToMES").getValue();
+//        String mesD01Address = plcParameterObject.getPlcParameter("MESToD01").getAddress();
+//        String mesD04Address = plcParameterObject.getPlcParameter("MESToD04").getAddress();
+//        String d03ToMES = plcParameterObject.getPlcParameter("D03ToMES").getValue();
+//        String d05ToMES = plcParameterObject.getPlcParameter("D05ToMES").getValue();
+//        String mesD03Address = plcParameterObject.getPlcParameter("MESToD03").getAddress();
+//        String mesD05Address = plcParameterObject.getPlcParameter("MESToD05").getAddress();
+//        if (!REQUEST_WORD.equals(d01ToMES)) {
+//            S7object.getinstance().plccontrol.writeWord(mesD01Address, 0);
+//        }
+//        if (!REQUEST_WORD.equals(d04ToMES)) {
+//            S7object.getinstance().plccontrol.writeWord(mesD04Address, 0);
+//        }
+//        if (!REQUEST_WORD.equals(d03ToMES)) {
+//            S7object.getinstance().plccontrol.writeWord(mesD03Address, 0);
+//        }
+//        if (!REQUEST_WORD.equals(d05ToMES)) {
+//            S7object.getinstance().plccontrol.writeWord(mesD05Address, 0);
+//        }
+//    }
+//
+//    /**
+//     * 杩涚墖鐘舵�佷慨鏀�
+//     */
+////    @Scheduled(fixedDelay = 300)
+//    public void feedStatusUpdate() {
+//        PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+//        List<String> glassIds1 = new ArrayList<>();
+//        List<String> glassIds2 = new ArrayList<>();
+//        for (int i = 1; i <= 6; i++) {
+//            String line1GlassId = plcParameterObject.getPlcParameter("D03ID" + i).getValue();
+//            if (StringUtils.isNotEmpty(line1GlassId)) {
+//                glassIds1.add(line1GlassId);
+//            }
+//            String line2GlassId = plcParameterObject.getPlcParameter("D05ID" + i).getValue();
+//            if (StringUtils.isNotEmpty(line2GlassId)) {
+//                glassIds2.add(line2GlassId);
+//            }
+//        }
+//        List<BigStorageCageFeedTask> bigStorageCageFeedTasks1 = bigStorageCageFeedTaskService.list(
+//                new LambdaQueryWrapper<BigStorageCageFeedTask>()
+//                        .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_NEW)
+//                        .eq(BigStorageCageFeedTask::getLine, Const.A09_OUT_TARGET_POSITION)
+//        );
+//        List<BigStorageCageFeedTask> bigStorageCageFeedTasks2 = bigStorageCageFeedTaskService.list(
+//                new LambdaQueryWrapper<BigStorageCageFeedTask>()
+//                        .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_NEW)
+//                        .eq(BigStorageCageFeedTask::getLine, Const.A10_OUT_TARGET_POSITION)
+//        );
+//        if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks1) && CollectionUtils.isNotEmpty(glassIds1)) {
+//            List<String> matchingIds1 = bigStorageCageFeedTasks1.stream()
+//                    .map(BigStorageCageFeedTask::getGlassId)
+//                    .filter(glassIds1::contains)
+//                    .distinct()
+//                    .collect(Collectors.toList());
+//            bigStorageCageFeedTaskService.update(
+//                    new LambdaUpdateWrapper<BigStorageCageFeedTask>()
+//                            .in(BigStorageCageFeedTask::getGlassId, matchingIds1)
+//                            .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
+//                            .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP)
+//            );
+//        }
+//        if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks2) && CollectionUtils.isNotEmpty(glassIds2)) {
+//            List<String> matchingIds2 = bigStorageCageFeedTasks2.stream()
+//                    .map(BigStorageCageFeedTask::getGlassId)
+//                    .filter(glassIds2::contains)
+//                    .distinct()
+//                    .collect(Collectors.toList());
+//            bigStorageCageFeedTaskService.update(
+//                    new LambdaUpdateWrapper<BigStorageCageFeedTask>()
+//                            .in(BigStorageCageFeedTask::getGlassId, matchingIds2)
+//                            .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
+//                            .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP)
+//            );
+//        }
+//        if (CollectionUtils.isEmpty(glassIds1)) {
+//            bigStorageCageFeedTaskService.update(
+//                    new LambdaUpdateWrapper<BigStorageCageFeedTask>()
+//                            .eq(BigStorageCageFeedTask::getLine, Const.A09_OUT_TARGET_POSITION)
+//                            .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP)
+//                            .gt(BigStorageCageFeedTask::getTargetSlot, 0)
+//                            .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
+//                            .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_CAR)
+//            );
+//        }
+//        if (CollectionUtils.isEmpty(glassIds2)) {
+//            bigStorageCageFeedTaskService.update(
+//                    new LambdaUpdateWrapper<BigStorageCageFeedTask>()
+//                            .eq(BigStorageCageFeedTask::getLine, Const.A10_OUT_TARGET_POSITION)
+//                            .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP)
+//                            .gt(BigStorageCageFeedTask::getTargetSlot, 0)
+//                            .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
+//                            .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_CAR)
+//            );
+//        }
+//    }
+//
+//    /**
+//     * 鎸夌収鐜荤拑id鍒ゆ柇鐜荤拑鐘舵�佸強鍗ц浆绔嬫槸鍚﹀彲鐩存帴鍚姩
+//     */
+//    public Boolean judgeGlassTypeStatus(String glassId, Integer line, String mesAddress) {
+//        //鍒ゆ柇姝ょ幓鐠冩槸鍦ㄧ鍐呮垨宸茬敓鎴愯繘鐗囦换鍔�
+//        BigStorageCageFeedTask bigStorageCageFeedTask = bigStorageCageFeedTaskService.getOne(
+//                new LambdaQueryWrapper<BigStorageCageFeedTask>()
+//                        .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
+//                        .eq(BigStorageCageFeedTask::getGlassId, glassId)
+//        );
+//        BigStorageCageDetails bigStorageCageDetails = bigStorageCageDetailsService.getOne(
+//                new LambdaQueryWrapper<BigStorageCageDetails>()
+//                        .eq(BigStorageCageDetails::getGlassId, glassId)
+//                        .ne(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+//        );
+//        if (bigStorageCageFeedTask != null || bigStorageCageDetails != null) {
+//            log.info("姝ょ幓鐠冨瓨浠诲姟鎴栧凡鍦ㄧ鍐�");
+//            return Boolean.TRUE;
+//        }
+//        //1銆佽幏鍙栦换鍔¤〃涓浉閭荤幓鐠�
+//        List<EdgGlassTaskInfo> edgGlassTaskInfoList;
+//        edgGlassTaskInfoList = edgGlassTaskInfoService.list(new LambdaQueryWrapper<EdgGlassTaskInfo>()
+//                .eq(EdgGlassTaskInfo::getLine, line)
+//                .apply("time >= (select time from edg_glass_task_info where line='" + line + "' and glass_id = '" + glassId + "' and deleted = 0)")
+//                .orderByAsc(EdgGlassTaskInfo::getCreateTime));
+//        if (edgGlassTaskInfoList.size() == 0) {
+//            edgGlassTaskInfoList = edgGlassTaskInfoService.list(new QueryWrapper<EdgGlassTaskInfo>()
+//                    .select("Top 1 *")
+//                    .eq("glass_id", glassId)
+//            );
+//            log.info("鍦ㄥ昂瀵歌〃涓幏鍙栫幓鐠冧俊鎭瘂}", edgGlassTaskInfoList);
+//            if (edgGlassTaskInfoList.size() == 0) {
+//                GlassInfo glassInfo = glassInfoService.getOne(
+//                        new LambdaQueryWrapper<GlassInfo>()
+//                                .eq(GlassInfo::getGlassId, glassId)
+//                );
+//                EdgGlassTaskInfo edgGlassTaskInfo = new EdgGlassTaskInfo();
+//                BeanUtils.copyProperties(glassInfo, edgGlassTaskInfo);
+//                edgGlassTaskInfo.setWidth((int) glassInfo.getWidth());
+//                edgGlassTaskInfo.setHeight((int) glassInfo.getHeight());
+//                edgGlassTaskInfoList.add(edgGlassTaskInfo);
+//                log.info("鍦ㄧ幓鐠冧俊鎭〃涓幏鍙栫幓鐠冧俊鎭瘂}", edgGlassTaskInfoList);
+//            }
+//        }
+//        Assert.isFalse(CollectionUtils.isEmpty(edgGlassTaskInfoList), "璇嗗埆鐜荤拑淇℃伅鏈嚭鐜板湪灏哄琛ㄤ腑,鑾峰彇鐩搁偦涓ゅ潡鐜荤拑澶辫触");
+//        //2銆佽幏鍙栧崸杞珛鍓╀綑瀹藉害
+//        BigStorageDTO sitToUpRemainWidth = bigStorageCageFeedTaskService.querySitToUpRemainWidth(line);
+//        Integer remainWidth;
+//        Integer glassCount;
+//        if (0 == sitToUpRemainWidth.getGlassCount()) {
+//            remainWidth = carWidth;
+//            glassCount = 0;
+//        } else {
+//            remainWidth = sitToUpRemainWidth.getWidth();
+//            glassCount = sitToUpRemainWidth.getGlassCount();
+//        }
+//
+//        Boolean flag = Boolean.TRUE;
+//        //2銆佽幏鍙栧崸杞珛
+//        Integer widthFirst = Math.max(edgGlassTaskInfoList.get(0).getWidth() / 10, edgGlassTaskInfoList.get(0).getHeight() / 10);
+//        Integer heightFirst = Math.min(edgGlassTaskInfoList.get(0).getWidth() / 10, edgGlassTaskInfoList.get(0).getHeight() / 10);
+//        if (edgGlassTaskInfoList.size() == 1) {
+//            if (remainWidth >= widthFirst) {
+//                if (glassCount < inCarMaxSize) {
+//                    addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst, heightFirst);
+//                } else {
+//                    if (glassCount < inCarMaxSize + 1) {
+//                        addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightFirst);
+//                    } else {
+//                        return Boolean.FALSE;
+//                    }
+//                }
+//            } else {
+//                flag = Boolean.FALSE;
+//            }
+//        } else {
+//            Integer widthSecond = Math.max(edgGlassTaskInfoList.get(1).getWidth() / 10, edgGlassTaskInfoList.get(1).getHeight() / 10);
+//            Integer heightSecond = Math.min(edgGlassTaskInfoList.get(1).getWidth() / 10, edgGlassTaskInfoList.get(1).getHeight() / 10);
+//            if (remainWidth >= widthFirst) {
+//                if (remainWidth - widthFirst - glassGap >= widthSecond) {
+//                    if (glassCount < inCarMaxSize) {
+//                        addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst, heightFirst);
+//                    } else {
+//                        if (glassCount < inCarMaxSize + 1) {
+//                            addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightFirst);
+//                        } else {
+//                            return Boolean.FALSE;
+//                        }
+//                    }
+//                } else {
+//                    if (glassCount < inCarMaxSize + 1) {
+//                        addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightFirst);
+//                    } else {
+//                        return Boolean.FALSE;
+//                    }
+//                }
+//            } else {
+//                flag = Boolean.FALSE;
+//            }
+//        }
+//        //鍚憄lc鍙戦�佽繘鐗囩‘璁�
+//        if (flag) {
+//            //鍚憄lc鍐欏叆纭瀛�
+//            PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+//            int returnData = 1;
+//            int count = 1;
+//            while (returnData != 0) {
+//                S7object.getinstance().plccontrol.writeWord(mesAddress, 1);
+//
+//                if (Const.A10_OUT_TARGET_POSITION.equals(line)) {
+//                    returnData = Integer.parseInt(plcParameterObject.getPlcParameter("D04ToMES").getValue());
+//                } else {
+//                    returnData = Integer.parseInt(plcParameterObject.getPlcParameter("D01ToMES").getValue());
+//                }
+////                returnData = S7object.getinstance().plccontrol.readWord(mesAddress, 1).get(0);
+//                log.info("杩涘崸杞珛绗瑊}娆″彂閫佺‘璁ゅ瓧瀹屾垚锛屽湴鍧�涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesAddress, 1);
+//            }
+//        }
+//        //璁板綍鏃犳硶鏀句笅鐜荤拑锛屽悗缁垽鏂惎鍔�
+//        return flag;
+//    }
+//
+//    /**
+//     * 娣诲姞浠诲姟淇℃伅
+//     */
+//    private Boolean addFeedTask(String glassId, Integer line, Integer taskType, Integer width, Integer height) {
+//        BigStorageCageFeedTask bigStorageCageFeedTask = new BigStorageCageFeedTask();
+//        bigStorageCageFeedTask.setGlassId(glassId);
+//        bigStorageCageFeedTask.setTaskState(Const.BIG_STORAGE_IN_NEW);
+//        bigStorageCageFeedTask.setLine(line);
+//        bigStorageCageFeedTask.setTaskType(taskType);
+//        bigStorageCageFeedTask.setWidth(width);
+//        bigStorageCageFeedTask.setHeight(height);
+//        bigStorageCageFeedTask.setCreateTime(new Date());
+//        //鍒犻櫎鐞嗙墖绗艰〃鎷胯蛋/鐮存崯鏁版嵁鏁版嵁
+//        damageService.deleteByGlassId(glassId);
+//        Damage damage = new Damage();
+//        damage.setGlassId(glassId);
+//        damage.setWorkingProcedure("纾ㄨ竟");
+//        damage.setLine(line);
+//        damage.setType(1);
+//        damage.setRemark("杩涘ぇ鐞嗙墖");
+//        damageService.insertDamage(damage);
+//        return bigStorageCageFeedTaskService.save(bigStorageCageFeedTask);
+//    }
+//
+//    /**
+//     * 鑾峰彇闇�瑕佸惎鍔ㄧ殑绾胯矾锛氫袱鏉$嚎閮藉彲鍚姩 鑾峰彇绗竴鐗囩幓鐠冪増鍥緄d鏈�灏� 鐗堝簭鏈�澶х殑绾胯矾
+//     *
+//     * @return 闇�瑕佸惎鍔ㄧ殑绾胯矾
+//     */
+//    public Integer getStartLine() {
+//        List<BigStorageCageFeedTask> taskList = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>()
+//                .inSql(BigStorageCageFeedTask::getId, "select min(id) from big_storage_cage_feed_task where task_state = 2" +
+//                        "and (target_slot = 0 or target_slot is null) group by line"));
+//        Assert.isFalse(CollectionUtils.isEmpty(taskList), "鍗ц浆绔嬩袱鏉$嚎閮芥病鏈夌幓鐠冭繘鐗囦换鍔�");
+//        Map<String, Integer> taskMap = taskList.stream().collect(Collectors.toMap(BigStorageCageFeedTask::getGlassId,
+//                BigStorageCageFeedTask::getLine));
+//        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
+//                .in(GlassInfo::getGlassId, taskMap.keySet())
+//                .orderByAsc(GlassInfo::getTemperingLayoutId)
+//                .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence)
+//                .last("limit 1"));
+//        return taskMap.get(glassInfo.getGlassId());
+//    }
+//
+//    /**
+//     * 璁$畻浠诲姟琛ㄨ繘鐗囩嚎璺殑鐩爣鏍煎瓙锛屽苟鍚姩浠诲姟
+//     */
+//    public boolean computeTargetByLine(Integer line) {
+//        //1銆佽幏鍙栦换鍔¤〃涓殑鎵�鏈夌幓鐠冿紙鎸囧畾绾胯矾涓斿凡缁忚繘鍗ц浆绔嬪畬鎴愶級
+//        List<BigStorageCageFeedTask> taskList = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>()
+//                .eq(BigStorageCageFeedTask::getLine, line)
+//                .and(e -> e.isNull(BigStorageCageFeedTask::getTargetSlot).or().eq(BigStorageCageFeedTask::getTargetSlot, Const.OUT_TARGET_POSITION_ZERO))
+//                .in(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP_ALL)
+//                .orderByAsc(BigStorageCageFeedTask::getId));
+//        //2銆佸幓绗煎瓙鍐呮煡鎵炬槸鍚﹀彲浠ョ户缁瓨鏀剧殑绗煎瓙
+//        List<String> glassIds = taskList.stream().map(BigStorageCageFeedTask::getGlassId).collect(Collectors.toList());
+//        List<GlassInfo> glassInfos = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>().in(GlassInfo::getGlassId, glassIds));
+//        return computeIsTemperingTargetByLine(glassInfos, taskList);
+//    }
+//
+//    /**
+//     * 鏄惁閽㈠寲鐜荤拑杩涚鐩爣浣嶇疆
+//     *
+//     * @param glassInfos 褰撴潯绾垮崸杞珛鎵�鏈夌幓鐠�
+//     * @param taskList   褰撴潯绾垮崸杞珛鎵�鏈変换鍔�
+//     */
+//    private boolean computeIsTemperingTargetByLine(List<GlassInfo> glassInfos, List<BigStorageCageFeedTask> taskList) {
+//        //1銆佸皢鐜荤拑淇℃伅闆嗗悎杞负glassid涓簁ey鐨刴ap
+//        Map<String, GlassInfo> glassInfoMap = glassInfos.stream()
+//                .collect(Collectors.toMap(GlassInfo::getGlassId, p -> p));
+//        for (BigStorageCageFeedTask e : taskList) {
+//            GlassInfo info = glassInfoMap.get(e.getGlassId());
+//            if (info == null) {
+//                continue;
+//            }
+//            BigStorageCageDetails cageDetails = new BigStorageCageDetails();
+//            BeanUtils.copyProperties(info, cageDetails);
+//            //todo:2銆佽幏鍙栫洰鏍囨牸瀛愪俊鎭�
+//            BigStorageDTO bigStorageDTO = bigStorageCageDetailsService.queryTargetSlotByTempering(info);
+//            //3銆佷复鏃舵洿鏂版牸瀛愮殑鍓╀綑灏哄锛氶槻姝㈢浉閭荤幓鐠冭繘鍚屼竴鏍煎瓙閫犳垚鍓╀綑灏哄涓嶈冻锛岀幓鐠冭秺鐣岀殑鎯呭喌锛屼换鍔″畬鎴愬悗鍐嶆鏇存柊澶х悊鐗囩琛ㄥ墿浣欏搴︼紙鎸夌収绗煎唴鐜荤拑鏁伴噺鏇存柊澶х悊鐗囩鍓╀綑灏哄锛�
+//            bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, bigStorageDTO.getWidth() - Math.max(info.getWidth(), info.getHeight()) - glassGap)
+//                    .eq(BigStorageCage::getSlot, bigStorageDTO.getSlot()));
+//            //4銆佹洿鏂拌繘鐗囦换鍔¤〃锛岀洰鏍囨牸瀛愬強鐘舵�侊紙鐘舵�佹敼涓�2 鐢垫皵鎵埌鑷澶勭悊锛�  閬囧埌闂锛氭棤娉曟壒閲忔洿鏂帮紝鎵归噺鏇存柊鏃犳硶璧版寚瀹氫粠搴�
+//            e.setTargetSlot(bigStorageDTO.getSlot());
+//            bigStorageCageFeedTaskService.updateById(e);
+//
+//            //5銆佸皢杩涚墖淇℃伅瀛樺叆澶х悊鐗囩璇︽儏琛�
+//            cageDetails.setSlot(bigStorageDTO.getSlot());
+//            cageDetails.setState(Const.GLASS_STATE_NEW);
+//            cageDetails.setDeviceId(bigStorageDTO.getDeviceId());
+//            cageDetails.setGap(glassGap);
+//            bigStorageCageDetailsService.save(cageDetails);
+//
+//        }
+//        return Boolean.TRUE;
+//    }
+//
+//    private void sendTaskListToPLC(List<BigStorageCageFeedTask> taskList, Integer line) {
+//        log.info("閫佺墖浠诲姟鍙戦�佽繘鐗囩幓鐠冧俊鎭�");
+//        S7control s7control = S7object.getinstance().plccontrol;
+//        PlcParameterObject plcMesObject = S7object.getinstance().PlcMesObject;
+//        String mesD03Address = plcMesObject.getPlcParameter("MESToD03").getAddress();
+//        String mesD05Address = plcMesObject.getPlcParameter("MESToD05").getAddress();
+//        String outLine = line.equals(Const.A09_OUT_TARGET_POSITION) ? mesD03Address : mesD05Address;
+//        for (int i = 1; i <= taskList.size(); i++) {
+//            s7control.writeWord(plcMesObject.getPlcParameter("StartAddToImport" + i).getAddress(), taskList.get(i - 1).getLine());
+//            s7control.writeWord(plcMesObject.getPlcParameter("TargetAddToImport" + i).getAddress(), taskList.get(i - 1).getTargetSlot());
+//            log.info("鍚憄lc鍙戦�佺{}鐗囩幓鐠冨凡瀹屾垚,璧峰浣嶇疆鏄瘂}锛岀洰鏍囦綅缃槸", i, taskList.get(i - 1).getLine(), taskList.get(i - 1).getTargetSlot());
+//        }
+//        int returnData = 1;
+//        int count = 1;
+//        while (returnData != 0) {
+//            s7control.writeWord(outLine, 2);
+//            if (line.equals(Const.A09_OUT_TARGET_POSITION)) {
+//                returnData = Integer.parseInt(plcMesObject.getPlcParameter("D03ToMES").getValue());
+//            } else {
+//                returnData = Integer.parseInt(plcMesObject.getPlcParameter("D05ToMES").getValue());
+//            }
+////            returnData = s7control.readWord(outLine, 1).get(0);
+//            log.info("宸插悜plc绗瑊}娆″彂閫佽繘鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, outLine, 2);
+//        }
+//    }
+//
+//    /**
+//     * 鍑虹墖涓�娆′粎鐢熸垚涓�杞︾幓鐠�
+//     *
+//     * @param list
+//     * @param isTempering
+//     * @param mesToPLCAddress
+//     * @param <T>
+//     * @return
+//     */
+//    private <T extends BigStorageCageBaseInfo> Boolean computeOutGlassInfo(List<T> list, Boolean isTempering, String mesToPLCAddress) {
+//        //浠诲姟鏁版嵁  鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲�  鐜荤拑闂撮殧
+//        List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>();
+//        //鎵撹溅鍓╀綑灏哄
+//        Integer remainWidth = carWidth;
+//        int maxX = 0;
+//        for (T e : list) {
+//            if (bigStorageCageOutTaskList.size() >= outCarMaxSize || Math.max((int) e.getWidth(), (int) e.getHeight()) > remainWidth) {
+//                break;
+//            }
+//            remainWidth = remainWidth - Math.max((int) e.getWidth(), (int) e.getHeight()) - glassGap;
+//            if (isTempering) {
+//                int minLength = Math.min((int) e.getWidth(), (int) e.getHeight());
+//                if (maxX + minLength <= xMaxSize) {
+//                    bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.TEMPERING_OUT_TARGET_POSITION,
+//                            e.getWidth() * 10, e.getHeight() * 10, 0, 0, 1, new Date()));
+////                    maxX = Math.max(maxX, e.getXCoordinate());
+//                } else {
+//                    break;
+//                }
+//
+//            } else {
+//                bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION,
+//                        e.getWidth() * 10, e.getHeight(), 0, 0, 1, new Date()));
+//            }
+//        }
+//        Assert.isFalse(CollectionUtils.isEmpty(bigStorageCageOutTaskList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟");
+//        log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", bigStorageCageOutTaskList.size());
+//        bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList);
+//        List<String> glassIds = bigStorageCageOutTaskList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
+//        log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄凡鍑虹墖", glassIds);
+//        bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
+//                .set(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING)
+//                .in(BigStorageCageDetails::getGlassId, glassIds));
+//        int returnData = 0;
+//        int count = 1;
+//        while (returnData == 0) {
+//            S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
+//            returnData = S7object.getinstance().plccontrol.readWord(mesToPLCAddress, 1).get(0);
+//            log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesToPLCAddress, returnData);
+//        }
+//        return Boolean.TRUE;
+//    }
+//
+//    /**
+//     * 鍑虹墖涓�娆$敓鎴愪竴鐐夌幓鐠�
+//     *
+//     * @param list
+//     * @param isTempering
+//     * @param mesToPLCAddress
+//     * @param <T>
+//     * @return
+//     */
+//    public <T extends BigStorageCageBaseInfo> Boolean computeOutMoreGlassInfo(List<T> list, Boolean isTempering, String mesToPLCAddress) {
+//        //浠诲姟鏁版嵁  鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲�  鐜荤拑闂撮殧
+//        List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>();
+//        //鎵撹溅鍓╀綑灏哄
+//        Integer remainWidth = carWidth;
+//        int trainNumber = 1;
+//        int serialNumber = 1;
+//        int maxX = 0;
+//        for (T e : list) {
+//            int maxLength = Math.max((int) e.getWidth(), (int) e.getHeight());
+//            if (serialNumber > outCarMaxSize || maxLength > remainWidth) {
+//                remainWidth = carWidth;
+//                trainNumber = trainNumber + 1;
+//                serialNumber = 1;
+//                maxX = 0;
+//            }
+//            remainWidth = remainWidth - maxLength - glassGap;
+//            if (isTempering) {
+//                int minLength = Math.min((int) e.getWidth(), (int) e.getHeight());
+//                if (maxX + minLength <= xMaxSize) {
+//                    bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.TEMPERING_OUT_TARGET_POSITION,
+//                            e.getWidth() * 10, e.getHeight() * 10, trainNumber, serialNumber++, 1, new Date()));
+////                    maxX = Math.max(maxX, e.getXCoordinate());
+//                } else {
+//                    remainWidth = carWidth - maxLength - glassGap;
+//                    trainNumber = trainNumber + 1;
+//                    serialNumber = 1;
+////                    maxX = e.getXCoordinate();
+//                    bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.TEMPERING_OUT_TARGET_POSITION,
+//                            e.getWidth() * 10, e.getHeight(), trainNumber, serialNumber++, 1, new Date()));
+//                }
+//            } else {
+//                bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION,
+//                        e.getWidth() * 10, e.getHeight(), trainNumber, serialNumber++, 1, new Date()));
+//            }
+//        }
+//        Assert.isFalse(CollectionUtils.isEmpty(bigStorageCageOutTaskList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟");
+//        log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", bigStorageCageOutTaskList.size());
+//        for (BigStorageCageOutTask bigStorageCageOutTask : bigStorageCageOutTaskList
+//        ) {
+//            bigStorageCageOutTaskService.save(bigStorageCageOutTask);
+//        }
+////        bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList);
+//        List<String> glassIds = bigStorageCageOutTaskList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
+//        log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄凡鍑虹墖", glassIds);
+//        bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
+//                .set(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING)
+//                .in(BigStorageCageDetails::getGlassId, glassIds)
+//                .ne(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT));
+//
+//        return Boolean.TRUE;
+//    }
+//
+//    private BigStorageDTO queryTargetSlotByTempering(GlassInfo glassInfo) {
+//
+//        MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>(BigStorageCage.class)
+//                .selectAll(BigStorageCage.class)
+//                .leftJoin(BigStorageCageDetails.class, BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
+//                .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+//                .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
+//                .eq(BigStorageCageDetails::getEngineerId, glassInfo.getEngineerId())
+//                .eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
+//                .gt(BigStorageCage::getRemainWidth, Math.max(glassInfo.getWidth(), glassInfo.getHeight()))
+//                .last("limit 1");
+//        if (glassInfo.getTemperingLayoutId() == 0) {
+//            wrapper.eq(BigStorageCageDetails::getFlowCardId, glassInfo.getFlowCardId())
+//                    .eq(BigStorageCageDetails::getLayer, glassInfo.getLayer());
+////            wrapper.eq(BigStorageCageDetails::getWidth, glassInfo.getWidth()).eq(BigStorageCageDetails::getHeight, glassInfo.getHeight());
+//        } else {
+//            wrapper.eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() + 1);
+//        }
+//        BigStorageCage bigStorageCage = bigStorageCageService.selectJoinOne(BigStorageCage.class, wrapper);
+//        return null;
+//    }
+//
+//    //    @Scheduled(fixedDelay = 300)
+//    public void querySizeByEngineerTask() {
+//        log.info("鏌ヨ缁撴灉锛歿}", querySizeByEngineer("P24072402", 1, 10, 8));
+//        log.info("鏌ヨ缁撴灉锛歿}", querySizeByEngineer("P24072402", 1, 5, 8));
+//
+//    }
+//
+//    public BigStorageDTO querySizeByEngineer(String engineerId, int temperingLayoutId, int temperingFeedSequence, double thickness) {
+//        BigStorageDTO bigStorageDTO = null;
+//        BigStorageCage bigStorageCage = null;
+//        //鑾峰彇绗煎唴褰撳墠鐗堝浘姣忎釜鏍煎瓙宸叉湁鐜荤拑鐨勬渶灏忕増搴� 鑾峰彇绗煎唴褰撳墠鐗堝浘鐨勬墍鏈夌幓鐠冧俊鎭�
+//        List<BigStorageCageDetails> cageDetailsList = bigStorageCageDetailsService.list(new QueryWrapper<BigStorageCageDetails>()
+//                .select("slot", "min(tempering_feed_sequence) as tempering_feed_sequence")
+//                .eq("engineer_id", engineerId).eq("tempering_layout_id", temperingLayoutId)
+//                .in("state", Const.GLASS_STATE_IN_ALL_ZERO).groupBy("slot").orderByAsc("min(tempering_feed_sequence)"));
+//        if (CollectionUtils.isNotEmpty(cageDetailsList)) {
+//            Integer minLength = cageDetailsList.stream().filter(e -> e.getTemperingFeedSequence() > temperingFeedSequence)
+//                    .mapToInt(BigStorageCageDetails::getTemperingFeedSequence).min().orElse(1000);
+//            List<GlassInfo> infoList = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>()
+//                    .notInSql(GlassInfo::getGlassId, "select glass_id from damage where tempering_layout_id = " + temperingLayoutId + " and engineer_id = '" + engineerId + "'")
+//                    .eq(GlassInfo::getTemperingLayoutId, temperingLayoutId).eq(GlassInfo::getEngineerId, engineerId).orderByAsc(GlassInfo::getTemperingFeedSequence));
+//            int remainWidth = carWidth;
+//            int trainNumber = 1;
+//            int serialNumber = 0;
+//            int min = 0;
+//            int temp = infoList.get(0).getTemperingFeedSequence();
+//            int slot = 0;
+//            int resultTrainNumber = 0;
+//            for (GlassInfo e : infoList) {
+//                int maxLength = Math.max((int) e.getWidth(), (int) e.getHeight());
+//                if (serialNumber >= outCarMaxSize || maxLength > remainWidth || e.getTemperingFeedSequence() >= minLength) {
+//                    if (resultTrainNumber != 0) {
+//                        min = temp;
+//                        break;
+//                    }
+//                    temp = e.getTemperingFeedSequence();
+//                    remainWidth = carWidth;
+//                    trainNumber = trainNumber + 1;
+//                    serialNumber = 0;
+//                }
+//                if (temperingFeedSequence == e.getTemperingFeedSequence()) {
+//                    resultTrainNumber = trainNumber;
+//                }
+//                remainWidth = remainWidth - maxLength - glassGap > 0 ? remainWidth - maxLength - glassGap : 0;
+//                serialNumber += 1;
+//                log.info("{},{},{}", trainNumber, remainWidth, serialNumber);
+//                if (e.getTemperingFeedSequence().equals(infoList.get(infoList.size() - 1).getTemperingFeedSequence())) {
+//                    min = temp;
+//                }
+//            }
+//            for (BigStorageCageDetails item : cageDetailsList) {
+//                if (min <= item.getTemperingFeedSequence() && item.getTemperingFeedSequence() < minLength) {
+//                    slot = item.getSlot();
+//                    bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+//                            .eq(BigStorageCage::getSlot, slot).eq(BigStorageCage::getEnableState, Const.SLOT_ON));
+//                    break;
+//                }
+//            }
+//        }
+//
+//        if (bigStorageCage != null) {
+//            bigStorageDTO = new BigStorageDTO();
+//            bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+//            bigStorageDTO.setSlot(bigStorageCage.getSlot());
+//            bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+//            return bigStorageDTO;
+//        }
+//
+//        bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+//                .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+//                .eq(BigStorageCage::getRemainWidth, slotWidth).orderByAsc(BigStorageCage::getSlot)
+//                .inSql(BigStorageCage::getDeviceId,
+//                        "select distinct device_id from big_storage_cage_details where engineer_id = '" + engineerId + "' and tempering_layout_id = " + temperingLayoutId)
+//                .last("limit 1"));
+//        if (null != bigStorageCage) {
+//            log.info("鏍规嵁鐗堝浘id鎵惧埌绗煎瓙鍐呯殑鐩爣鏍煎瓙锛歿}", bigStorageCage.getSlot());
+//            bigStorageDTO = new BigStorageDTO();
+//            bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+//            bigStorageDTO.setSlot(bigStorageCage.getSlot());
+//            bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+//            return bigStorageDTO;
+//
+//        }
+//
+//        //鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨 鍥犱负瀛愭煡璇㈡帓搴忓涓籹ql鏃犲奖鍝嶏紝鎵�浠ュ厛鎵ц瀛愭煡璇㈣幏鍙栭『搴忥紝鐒跺悗涓�娆″幓鏌ヨ
+//        List<Integer> deviceUsedList = bigStorageCageService.queryFreeDeviceByUsed(thickness);
+//        for (Integer item : deviceUsedList) {
+//            bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+//                    .eq(BigStorageCage::getRemainWidth, slotWidth).orderByAsc(BigStorageCage::getSlot)
+//                    .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+//                    .eq(BigStorageCage::getDeviceId, item)
+//                    .last("limit 1"));
+//            if (null != bigStorageCage) {
+//                log.info("鎸夌収瀛樼鐜荤拑鏍煎瓙鏁板崰鐢ㄦ渶灏戞柟寮忚幏鍙栦俊鎭牸瀛愪负锛歿}", bigStorageCage.getSlot());
+//                bigStorageDTO = new BigStorageDTO();
+//                bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+//                bigStorageDTO.setSlot(bigStorageCage.getSlot());
+//                bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+//                return bigStorageDTO;
+//            }
+//        }
+//        Assert.isTrue(null != bigStorageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�");
+//        return bigStorageDTO;
+//    }
+//
+//}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/s7/entity/S7Data.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/s7/entity/S7Data.java
new file mode 100644
index 0000000..50ca664
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/s7/entity/S7Data.java
@@ -0,0 +1,102 @@
+package com.mes.s7.entity;
+
+import com.github.xingshuangs.iot.protocol.common.enums.EDataType;
+import com.github.xingshuangs.iot.protocol.s7.serializer.S7Variable;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/4/30 14:19
+ * @Description:
+ */
+@Data
+public class S7Data {
+
+    @S7Variable(address = "DB3.X3118.0", type = EDataType.BOOL)
+    private Boolean mesControl;
+
+    @S7Variable(address = "DB7.0", type = EDataType.UINT16)
+    private Integer RequestMes;
+
+    @S7Variable(address = "DB7.2", type = EDataType.UINT16)
+    private Integer MesReply;
+
+    @S7Variable(address = "DB7.140", type = EDataType.UINT16)
+    private Integer FROM1;
+
+    @S7Variable(address = "DB7.142", type = EDataType.UINT16)
+    private Integer FROM2;
+
+    @S7Variable(address = "DB7.144", type = EDataType.UINT16)
+    private Integer FROM3;
+
+    @S7Variable(address = "DB7.146", type = EDataType.UINT16)
+    private Integer FROM4;
+
+    @S7Variable(address = "DB7.148", type = EDataType.UINT16)
+    private Integer FROM5;
+
+    @S7Variable(address = "DB7.150", type = EDataType.UINT16)
+    private Integer FROM6;
+
+    @S7Variable(address = "DB7.152", type = EDataType.UINT16)
+    private Integer TO1;
+
+    @S7Variable(address = "DB7.154", type = EDataType.UINT16)
+    private Integer TO2;
+
+    @S7Variable(address = "DB7.156", type = EDataType.UINT16)
+    private Integer TO3;
+
+    @S7Variable(address = "DB7.158", type = EDataType.UINT16)
+    private Integer T4;
+
+    @S7Variable(address = "DB7.160", type = EDataType.UINT16)
+    private Integer T5;
+
+    @S7Variable(address = "DB7.162", type = EDataType.UINT16)
+    private Integer T6;
+
+    @S7Variable(address = "DB7.164", type = EDataType.UINT16)
+    private Integer STATE1;
+
+    @S7Variable(address = "DB7.166", type = EDataType.UINT16)
+    private Integer STATE2;
+
+    @S7Variable(address = "DB7.168", type = EDataType.UINT16)
+    private Integer STATE3;
+
+    @S7Variable(address = "DB7.170", type = EDataType.UINT16)
+    private Integer STATE4;
+
+    @S7Variable(address = "DB7.172", type = EDataType.UINT16)
+    private Integer STATE5;
+
+    @S7Variable(address = "DB7.174", type = EDataType.UINT16)
+    private Integer STATE6;
+
+    @S7Variable(address = "DB7.1246", type = EDataType.UINT16)
+    private Integer glassCount;
+
+    @S7Variable(address = "DB7.8", type = EDataType.STRING, count = 22)
+    private Integer DI1;
+
+    @S7Variable(address = "DB7.30", type = EDataType.STRING, count = 22)
+    private Integer DI2;
+
+    @S7Variable(address = "DB7.52", type = EDataType.STRING, count = 22)
+    private Integer DI3;
+
+    @S7Variable(address = "DB7.74", type = EDataType.STRING, count = 22)
+    private Integer DI4;
+
+    @S7Variable(address = "DB7.96", type = EDataType.STRING, count = 22)
+    private Integer DI5;
+
+    @S7Variable(address = "DB7.118", type = EDataType.STRING, count = 22)
+    private Integer DI6;
+
+    @S7Variable(address = "MW1002", type = EDataType.UINT16)
+    private Integer alarmSignal;
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/s7/job/s7Job.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/s7/job/s7Job.java
new file mode 100644
index 0000000..0c30c4f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/s7/job/s7Job.java
@@ -0,0 +1,28 @@
+package com.mes.s7.job;
+
+import com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/4/30 14:20
+ * @Description:
+ */
+@Component
+@Slf4j
+public class s7Job {
+
+    @Autowired(required = false)
+    S7Serializer s7Serializer;
+
+
+    @Scheduled(fixedDelay = 1000)
+    public void hollowRemoveTaskOne() {
+//        S7Data read = s7Serializer.read(S7Data.class);
+//        log.info("read data: {}", read);
+    }
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
new file mode 100644
index 0000000..ef317bf
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
@@ -0,0 +1,49 @@
+package com.mes.temperingglass.controller;
+
+
+import com.mes.bigstorage.entity.BigStorageCage;
+import com.mes.bigstorage.service.BigStorageCageDetailsService;
+import com.mes.bigstorage.service.BigStorageCageService;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Api(tags = "閽㈠寲灏忕墖琛ㄤ俊鎭�")
+@RestController
+@RequestMapping("/temperingGlassInfo")
+public class TemperingGlassInfoController {
+
+    @Autowired
+    private TemperingGlassInfoService temperingGlassInfoService;
+    @Autowired
+    private BigStorageCageDetailsService bigStorageCageDetailsService;
+
+    @ApiOperation("鍑虹墖浠诲姟鍒犻櫎")
+    @PostMapping("/deleteTemperingGlassInfo")
+    public Result deleteTemperingGlassInfo(@RequestBody TemperingGlassInfo temperingGlassInfo) {
+        temperingGlassInfoService.removeById(temperingGlassInfo.getId());
+        return Result.build(200,"鍒犻櫎鎴愬姛",1);
+    }
+
+    @ApiOperation("鍑虹墖浠诲姟鐮存崯0/鎷胯蛋1")
+    @PostMapping("/damageTemperingGlassInfo")
+    public Result damageTemperingGlassInfo(@RequestBody TemperingGlassInfo temperingGlassInfo,int status) {
+        bigStorageCageDetailsService.damageBigStorageCageDetails(temperingGlassInfo.getGlassId(),status);
+        return Result.build(200,"鐮存崯鎴愬姛",1);
+    }
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java
new file mode 100644
index 0000000..ab5372d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java
@@ -0,0 +1,23 @@
+package com.mes.temperingglass.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface TemperingGlassInfoService extends MPJBaseService<TemperingGlassInfo> {
+
+    public void addOutTask(List<TemperingGlassInfo> temperingGlassInfoList);
+
+    boolean saveBatch(List<TemperingGlassInfo> list);
+
+    void schedulingTask();
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
new file mode 100644
index 0000000..5468375
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
@@ -0,0 +1,132 @@
+package com.mes.temperingglass.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.bigstorage.entity.BigStorageCage;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper;
+import com.mes.bigstorage.mapper.BigStorageCageMapper;
+import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Slf4j
+@Service
+public class TemperingGlassInfoServiceImpl extends ServiceImpl<TemperingGlassInfoMapper, TemperingGlassInfo> implements TemperingGlassInfoService {
+
+    @Resource
+    private BigStorageCageDetailsMapper bigStorageCageDetailsMapper;
+    @Resource
+    private BigStorageCageMapper bigStorageCageMapper;
+
+    @Override
+    public void addOutTask(List<TemperingGlassInfo> temperingGlassInfoList) {
+        double carWidth=5000;
+        double gap=50;
+        //鍐欏叆浠诲姟鍒颁换鍔¤〃
+        for (TemperingGlassInfo temperingGlassInfo:temperingGlassInfoList
+        ) {
+            log.info("1銆佸綋鍑虹墖杞﹀搴﹀ぇ浜庣幓鐠冨搴︽椂");
+            if((carWidth-temperingGlassInfo.getWidth())>0){
+                carWidth-=temperingGlassInfo.getWidth()+gap;
+                log.info("2銆佹坊鍔犻挗鍖栧皬鐗囪〃淇℃伅鍒颁换鍔¤〃");
+                temperingGlassInfo.setState(-1);
+                baseMapper.updateById(temperingGlassInfo);
+                log.info("3銆佷慨鏀归挗鍖栧皬鐗囪〃浠诲姟鐘舵��");
+                BigStorageCageOutTask bigStorageCageOutTask = new BigStorageCageOutTask();
+                bigStorageCageOutTask.setId(temperingGlassInfo.getId());
+            } else {
+                break;
+            }
+        }
+    }
+
+    @Override
+    public boolean saveBatch(List<TemperingGlassInfo> list) {
+        log.info("闇�瑕侀挗鍖栫殑鐜荤拑涓猴細{}", list);
+        return baseMapper.saveBatch(list);
+    }
+
+    //璋冨害
+    @Override
+    public void schedulingTask() {
+        QueryWrapper<BigStorageCageDetails> detailsWrapper1 = Wrappers.query();
+        detailsWrapper1.select("tempering_layout_id", "count(distinct slot)")
+                .groupBy("tempering_layout_id");
+        List<Map<String, Object>> temperingLayoutIdList = bigStorageCageDetailsMapper.selectMaps(detailsWrapper1);
+
+        boolean key = false;
+        for (Map<String, Object> row : temperingLayoutIdList) {
+            for (Map.Entry<String, Object> entry : row.entrySet()) {
+                String temperingId = entry.getKey();
+                int temperingNo = Integer.parseInt(entry.getValue().toString());
+                if(temperingNo>8){
+                    QueryWrapper<BigStorageCageDetails> detailsWrapper2 = Wrappers.query();
+                    detailsWrapper2.select("tempering_layout_id", "slot")
+                            .select("max(tempering_feed_sequence) as max_sequence", "min(tempering_feed_sequence) as min_sequence")
+                            .groupBy("tempering_layout_id", "slot")
+                            .orderByAsc("tempering_layout_id")
+                            .orderByDesc("min_sequence");
+
+                    List<Map<String, Object>> result = bigStorageCageDetailsMapper.selectMaps(detailsWrapper2);
+                    for (Map<String, Object> rows : result) {
+                        // 鑾峰彇姣忚鐨勫��
+                        Object temperingLayoutId = rows.get("tempering_layout_id");
+                        int slot = Integer.parseInt(rows.get("slot").toString());
+                        int maxSequence = Integer.parseInt(rows.get("max_sequence").toString());
+                        int minSequence = Integer.parseInt(rows.get("min_sequence").toString());
+
+                        LambdaQueryWrapper<BigStorageCage> bigStorageCageWrapper=new LambdaQueryWrapper<>();
+                        bigStorageCageWrapper.eq(BigStorageCage::getSlot,slot);
+                        BigStorageCage bigStorageCage=bigStorageCageMapper.selectOne(bigStorageCageWrapper);
+                        Integer remainWidth=5000-bigStorageCage.getRemainWidth();
+
+                        BigStorageCage bigStorageCages=bigStorageCageMapper.selectJoinOne(BigStorageCage.class, new MPJLambdaWrapper<BigStorageCage>()
+                                .selectAll(BigStorageCage.class)
+                                .leftJoin(BigStorageCageDetails.class, on -> on
+                                        .eq(BigStorageCage::getDeviceId, BigStorageCageDetails::getDeviceId)
+                                        .eq(BigStorageCage::getSlot, BigStorageCageDetails::getSlot))
+                                .gt(BigStorageCage::getRemainWidth,remainWidth)
+                                .eq(BigStorageCageDetails::getTemperingLayoutId,temperingLayoutId)
+                                .eq(BigStorageCageDetails::getTemperingFeedSequence,minSequence-1)
+                        );
+
+                        if(bigStorageCages.getSlot()!=null){
+                            LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailsWrapper=new LambdaQueryWrapper<>();
+                            bigStorageCageDetailsWrapper
+                                    .eq(BigStorageCageDetails::getSlot,slot)
+                                    .orderByDesc(BigStorageCageDetails::getTemperingFeedSequence);
+                            List<BigStorageCageDetails> bigStorageCageDetailsList=bigStorageCageDetailsMapper.selectList(bigStorageCageDetailsWrapper);
+                            for (BigStorageCageDetails bigStorageCageDetails:bigStorageCageDetailsList
+                                 ) {
+                                BigStorageCageOutTask bigStorageCageOutTask=new BigStorageCageOutTask();
+                                bigStorageCageOutTask.setTaskState(-3);
+                                bigStorageCageOutTask.setStartSlot(slot);
+                                bigStorageCageOutTask.setEndSlot(bigStorageCages.getSlot());
+                            }
+                            return;
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/tools/service/BigStorageBaseService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/tools/service/BigStorageBaseService.java
new file mode 100644
index 0000000..e611458
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/tools/service/BigStorageBaseService.java
@@ -0,0 +1,17 @@
+package com.mes.tools.service;
+
+import com.mes.bigstorage.entity.dto.BigStorageDTO;
+import com.mes.glassinfo.entity.GlassInfo;
+
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/11/8 22:02
+ * @Description:
+ */
+public interface BigStorageBaseService {
+    void updateSlotRemainBySlots(List<Integer> slotList);
+
+    BigStorageDTO queryTargetSlotByTempering(GlassInfo glassInfo);
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/tools/service/impl/BigStorageBaseServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/tools/service/impl/BigStorageBaseServiceImpl.java
new file mode 100644
index 0000000..d713005
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/tools/service/impl/BigStorageBaseServiceImpl.java
@@ -0,0 +1,671 @@
+package com.mes.tools.service.impl;
+
+import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.mes.bigstorage.entity.BigStorageCage;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.entity.dto.BigStorageDTO;
+import com.mes.bigstorage.service.BigStorageCageDetailsService;
+import com.mes.bigstorage.service.BigStorageCageService;
+import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
+import com.mes.common.S7object;
+import com.mes.common.config.Const;
+import com.mes.common.config.ConstSysConfig;
+import com.mes.device.PlcParameterObject;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.sysconfig.service.SysConfigService;
+import com.mes.tools.S7control;
+import com.mes.tools.service.BigStorageBaseService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/11/8 22:03
+ * @Description:
+ */
+@Service
+@Slf4j
+public class BigStorageBaseServiceImpl implements BigStorageBaseService {
+
+    @Resource
+    BigStorageCageDetailsService bigStorageCageDetailsService;
+
+    @Resource
+    BigStorageCageService bigStorageCageService;
+
+    @Resource
+    GlassInfoService glassInfoService;
+
+    @Resource
+    SysConfigService sysConfigService;
+
+//    @Value("${mes.slotWidth}")
+//    private Integer slotWidth;
+//
+//    @Value("${mes.carWidth}")
+//    private Integer carWidth;
+//
+//    @Value("${mes.outCarMaxSize}")
+//    private Integer outCarMaxSize;
+//
+//    @Value("${mes.glassGap}")
+//    private Integer glassGap;
+
+
+    @Override
+    public void updateSlotRemainBySlots(List<Integer> slotList) {
+        //鑾峰彇鏍煎瓙鍐呮墍鏈夌殑鐜荤拑淇℃伅
+        Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
+        int glassGap = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_GLASS_GAP);
+        List<BigStorageCageDetails> inSlotGlassList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
+                .in(BigStorageCageDetails::getSlot, slotList).in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
+        Map<Integer, Double> slotRemainMap = new HashMap<>();
+        //鏄惁瀛樺湪鏈夋牸瀛愰潪绌虹殑鐜荤拑
+        if (CollectionUtils.isNotEmpty(inSlotGlassList)) {
+            //瀛樺湪  灏嗘牸瀛愬唴鐨勭幓鐠冨垎鍒繘琛屾洿鏂�
+            slotRemainMap = inSlotGlassList.stream()
+                    .collect(Collectors.groupingBy(BigStorageCageDetails::getSlot, Collectors.summingDouble(item -> Math.max(item.getWidth(), item.getHeight()) + glassGap)));
+            slotRemainMap.forEach((e, v) -> {
+                double remainWidth = slotWidth - v >= 0 ? slotWidth - v : 0;
+                bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, remainWidth)
+                        .eq(BigStorageCage::getSlot, e));
+            });
+        }
+        //杩囨护涓嶅瓨鍦ㄧ幓鐠冪殑鏍煎瓙 灏嗗搴﹂噸缃负鍘熷瀹藉害5000
+        Set<Integer> remainSlotList = slotRemainMap.keySet();
+        slotList.removeAll(remainSlotList);
+        if (CollectionUtils.isNotEmpty(slotList)) {
+            bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, slotWidth)
+                    .in(BigStorageCage::getSlot, slotList));
+        }
+    }
+
+    /**
+     * 鎸夌収鐜荤拑id鍒ゆ柇鐜荤拑鐘舵�佸強鍗ц浆绔嬫槸鍚﹀彲鐩存帴鍚姩
+     */
+//    public Boolean judgeGlassTypeStatus(String glassId, Integer line, String mesAddress) {
+//        //鍒ゆ柇姝ょ幓鐠冩槸鍦ㄧ鍐呮垨宸茬敓鎴愯繘鐗囦换鍔�
+//        BigStorageCageFeedTask bigStorageCageFeedTask = bigStorageCageFeedTaskService.getOne(
+//                new LambdaQueryWrapper<BigStorageCageFeedTask>()
+//                        .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
+//                        .eq(BigStorageCageFeedTask::getGlassId, glassId)
+//        );
+//        BigStorageCageDetails bigStorageCageDetails = bigStorageCageDetailsService.getOne(
+//                new LambdaQueryWrapper<BigStorageCageDetails>()
+//                        .eq(BigStorageCageDetails::getGlassId, glassId)
+//                        .ne(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+//        );
+//        if (bigStorageCageFeedTask != null || bigStorageCageDetails != null) {
+//            log.info("姝ょ幓鐠冨瓨浠诲姟鎴栧凡鍦ㄧ鍐�");
+//            return Boolean.TRUE;
+//        }
+//        //1銆佽幏鍙栦换鍔¤〃涓浉閭荤幓鐠�
+//        List<EdgGlassTaskInfo> edgGlassTaskInfoList;
+//        edgGlassTaskInfoList = edgGlassTaskInfoService.list(new LambdaQueryWrapper<EdgGlassTaskInfo>()
+//                .eq(EdgGlassTaskInfo::getLine, line)
+//                .apply("time >= (select time from edg_glass_task_info where line='" + line + "' and glass_id = '" + glassId + "' and deleted = 0)")
+//                .orderByAsc(EdgGlassTaskInfo::getTime));
+//        if (edgGlassTaskInfoList.size() == 0) {
+//            edgGlassTaskInfoList = edgGlassTaskInfoService.list(new QueryWrapper<EdgGlassTaskInfo>()
+//                    .select("Top 1 *")
+//                    .eq("glass_id", glassId)
+//            );
+//            log.info("鍦ㄥ昂瀵歌〃涓幏鍙栫幓鐠冧俊鎭瘂}", edgGlassTaskInfoList);
+//            if (edgGlassTaskInfoList.size() == 0) {
+//                GlassInfo glassInfo = glassInfoService.getOne(
+//                        new LambdaQueryWrapper<GlassInfo>()
+//                                .eq(GlassInfo::getGlassId, glassId)
+//                );
+//                EdgGlassTaskInfo edgGlassTaskInfo = new EdgGlassTaskInfo();
+//                BeanUtils.copyProperties(glassInfo, edgGlassTaskInfo);
+//                edgGlassTaskInfo.setWidth((int) glassInfo.getWidth());
+//                edgGlassTaskInfo.setHeight((int) glassInfo.getHeight());
+//                edgGlassTaskInfoList.add(edgGlassTaskInfo);
+//                log.info("鍦ㄧ幓鐠冧俊鎭〃涓幏鍙栫幓鐠冧俊鎭瘂}", edgGlassTaskInfoList);
+//            }
+//        }
+//        Assert.isFalse(CollectionUtils.isEmpty(edgGlassTaskInfoList), "璇嗗埆鐜荤拑淇℃伅鏈嚭鐜板湪灏哄琛ㄤ腑,鑾峰彇鐩搁偦涓ゅ潡鐜荤拑澶辫触");
+//        //2銆佽幏鍙栧崸杞珛鍓╀綑瀹藉害
+//        BigStorageDTO sitToUpRemainWidth = bigStorageCageFeedTaskService.querySitToUpRemainWidth(line);
+//        Integer remainWidth;
+//        Integer glassCount;
+//        if (0 == sitToUpRemainWidth.getGlassCount()) {
+//            remainWidth = carWidth;
+//            glassCount = 0;
+//        } else {
+//            remainWidth = sitToUpRemainWidth.getWidth();
+//            glassCount = sitToUpRemainWidth.getGlassCount();
+//        }
+//
+//        Boolean flag = Boolean.TRUE;
+//        //2銆佽幏鍙栧崸杞珛
+//        Integer widthFirst = Math.max(edgGlassTaskInfoList.get(0).getWidth() / 10, edgGlassTaskInfoList.get(0).getHeight() / 10);
+//        Integer heightFirst = Math.min(edgGlassTaskInfoList.get(0).getWidth() / 10, edgGlassTaskInfoList.get(0).getHeight() / 10);
+//        if (edgGlassTaskInfoList.size() == 1) {
+//            if (remainWidth >= widthFirst) {
+//                if (glassCount < inCarMaxSize) {
+//                    addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst, heightFirst);
+//                } else {
+//                    if (glassCount < inCarMaxSize + 1) {
+//                        addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightFirst);
+//                    } else {
+//                        return Boolean.FALSE;
+//                    }
+//                }
+//            } else {
+//                flag = Boolean.FALSE;
+//            }
+//        } else {
+//            Integer widthSecond = Math.max(edgGlassTaskInfoList.get(1).getWidth() / 10, edgGlassTaskInfoList.get(1).getHeight() / 10);
+//            Integer heightSecond = Math.min(edgGlassTaskInfoList.get(1).getWidth() / 10, edgGlassTaskInfoList.get(1).getHeight() / 10);
+//            if (remainWidth >= widthFirst) {
+//                if (remainWidth - widthFirst - glassGap >= widthSecond) {
+//                    if (glassCount < inCarMaxSize) {
+//                        addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst, heightFirst);
+//                    } else {
+//                        if (glassCount < inCarMaxSize + 1) {
+//                            addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightFirst);
+//                        } else {
+//                            return Boolean.FALSE;
+//                        }
+//                    }
+//                } else {
+//                    if (glassCount < inCarMaxSize + 1) {
+//                        addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightFirst);
+//                    } else {
+//                        return Boolean.FALSE;
+//                    }
+//                }
+//            } else {
+//                flag = Boolean.FALSE;
+//            }
+//        }
+//        //鍚憄lc鍙戦�佽繘鐗囩‘璁�
+//        if (flag) {
+//            //鍚憄lc鍐欏叆纭瀛�
+//            PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+//            int returnData = 1;
+//            int count = 1;
+//            while (returnData != 0) {
+//                S7object.getinstance().plccontrol.writeWord(mesAddress, 1);
+//
+//                if (Const.A10_OUT_TARGET_POSITION.equals(line)) {
+//                    returnData = Integer.parseInt(plcParameterObject.getPlcParameter("D04ToMES").getValue());
+//                } else {
+//                    returnData = Integer.parseInt(plcParameterObject.getPlcParameter("D01ToMES").getValue());
+//                }
+////                returnData = S7object.getinstance().plccontrol.readWord(mesAddress, 1).get(0);
+//                log.info("杩涘崸杞珛绗瑊}娆″彂閫佺‘璁ゅ瓧瀹屾垚锛屽湴鍧�涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesAddress, 1);
+//            }
+//        }
+//        //璁板綍鏃犳硶鏀句笅鐜荤拑锛屽悗缁垽鏂惎鍔�
+//        return flag;
+//    }
+
+    /**
+     * 娣诲姞浠诲姟淇℃伅
+     */
+//    private Boolean addFeedTask(String glassId, Integer line, Integer taskType, Integer width, Integer height) {
+//        BigStorageCageFeedTask bigStorageCageFeedTask = new BigStorageCageFeedTask();
+//        bigStorageCageFeedTask.setGlassId(glassId);
+//        bigStorageCageFeedTask.setTaskState(Const.BIG_STORAGE_IN_NEW);
+//        bigStorageCageFeedTask.setLine(line);
+//        bigStorageCageFeedTask.setTaskType(taskType);
+//        bigStorageCageFeedTask.setWidth(width);
+//        bigStorageCageFeedTask.setHeight(height);
+//        bigStorageCageFeedTask.setCreateTime(new Date());
+//        //鍒犻櫎鐞嗙墖绗艰〃鎷胯蛋/鐮存崯鏁版嵁鏁版嵁
+//        damageService.deleteByGlassId(glassId);
+//        Damage damage = new Damage();
+//        damage.setGlassId(glassId);
+//        damage.setWorkingProcedure("纾ㄨ竟");
+//        damage.setLine(line);
+//        damage.setType(1);
+//        damage.setRemark("杩涘ぇ鐞嗙墖");
+//        damageService.insertDamage(damage);
+//        return bigStorageCageFeedTaskService.save(bigStorageCageFeedTask);
+//    }
+
+    /**
+     * 鑾峰彇闇�瑕佸惎鍔ㄧ殑绾胯矾锛氫袱鏉$嚎閮藉彲鍚姩 鑾峰彇绗竴鐗囩幓鐠冪増鍥緄d鏈�灏� 鐗堝簭鏈�澶х殑绾胯矾
+     *
+     * @return 闇�瑕佸惎鍔ㄧ殑绾胯矾
+     */
+//    public Integer getStartLine() {
+//        List<BigStorageCageFeedTask> taskList = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>()
+//                .inSql(BigStorageCageFeedTask::getId, "select min(id) from big_storage_cage_feed_task where task_state = 2" +
+//                        "and (target_slot = 0 or target_slot is null) group by line"));
+//        Assert.isFalse(CollectionUtils.isEmpty(taskList), "鍗ц浆绔嬩袱鏉$嚎閮芥病鏈夌幓鐠冭繘鐗囦换鍔�");
+//        Map<String, Integer> taskMap = taskList.stream().collect(Collectors.toMap(BigStorageCageFeedTask::getGlassId,
+//                BigStorageCageFeedTask::getLine));
+//        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
+//                .in(GlassInfo::getGlassId, taskMap.keySet())
+//                .orderByAsc(GlassInfo::getTemperingLayoutId)
+//                .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence)
+//                .last("limit 1"));
+//        return taskMap.get(glassInfo.getGlassId());
+//    }
+
+    /**
+     * 璁$畻浠诲姟琛ㄨ繘鐗囩嚎璺殑鐩爣鏍煎瓙锛屽苟鍚姩浠诲姟
+     */
+//    public boolean computeTargetByLine(Integer line) {
+//        //1銆佽幏鍙栦换鍔¤〃涓殑鎵�鏈夌幓鐠冿紙鎸囧畾绾胯矾涓斿凡缁忚繘鍗ц浆绔嬪畬鎴愶級
+//        List<BigStorageCageFeedTask> taskList = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>()
+//                .eq(BigStorageCageFeedTask::getLine, line)
+//                .and(e -> e.isNull(BigStorageCageFeedTask::getTargetSlot).or().eq(BigStorageCageFeedTask::getTargetSlot, Const.OUT_TARGET_POSITION_ZERO))
+//                .in(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP_ALL)
+//                .orderByAsc(BigStorageCageFeedTask::getId));
+//        //2銆佸幓绗煎瓙鍐呮煡鎵炬槸鍚﹀彲浠ョ户缁瓨鏀剧殑绗煎瓙
+//        List<String> glassIds = taskList.stream().map(BigStorageCageFeedTask::getGlassId).collect(Collectors.toList());
+//        List<GlassInfo> glassInfos = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>().in(GlassInfo::getGlassId, glassIds));
+//        return computeIsTemperingTargetByLine(glassInfos, taskList);
+//    }
+
+//    /**
+//     * 鏄惁閽㈠寲鐜荤拑杩涚鐩爣浣嶇疆
+//     *
+//     * @param glassInfos 褰撴潯绾垮崸杞珛鎵�鏈夌幓鐠�
+//     * @param taskList   褰撴潯绾垮崸杞珛鎵�鏈変换鍔�
+//     */
+//    private boolean computeIsTemperingTargetByLine(List<GlassInfo> glassInfos, List<BigStorageCageFeedTask> taskList) {
+//        //1銆佸皢鐜荤拑淇℃伅闆嗗悎杞负glassid涓簁ey鐨刴ap
+//        Map<String, GlassInfo> glassInfoMap = glassInfos.stream()
+//                .collect(Collectors.toMap(GlassInfo::getGlassId, p -> p));
+//        for (BigStorageCageFeedTask e : taskList) {
+//            GlassInfo info = glassInfoMap.get(e.getGlassId());
+//            if (info == null) {
+//                continue;
+//            }
+//            BigStorageCageDetails cageDetails = new BigStorageCageDetails();
+//            BeanUtils.copyProperties(info, cageDetails);
+//            //todo:2銆佽幏鍙栫洰鏍囨牸瀛愪俊鎭�
+//            BigStorageDTO bigStorageDTO = bigStorageCageDetailsService.queryTargetSlotByTempering(info);
+//            //3銆佷复鏃舵洿鏂版牸瀛愮殑鍓╀綑灏哄锛氶槻姝㈢浉閭荤幓鐠冭繘鍚屼竴鏍煎瓙閫犳垚鍓╀綑灏哄涓嶈冻锛岀幓鐠冭秺鐣岀殑鎯呭喌锛屼换鍔″畬鎴愬悗鍐嶆鏇存柊澶х悊鐗囩琛ㄥ墿浣欏搴︼紙鎸夌収绗煎唴鐜荤拑鏁伴噺鏇存柊澶х悊鐗囩鍓╀綑灏哄锛�
+//            bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, bigStorageDTO.getWidth() - Math.max(info.getWidth(), info.getHeight()) - glassGap)
+//                    .eq(BigStorageCage::getSlot, bigStorageDTO.getSlot()));
+//            //4銆佹洿鏂拌繘鐗囦换鍔¤〃锛岀洰鏍囨牸瀛愬強鐘舵�侊紙鐘舵�佹敼涓�2 鐢垫皵鎵埌鑷澶勭悊锛�  閬囧埌闂锛氭棤娉曟壒閲忔洿鏂帮紝鎵归噺鏇存柊鏃犳硶璧版寚瀹氫粠搴�
+//            e.setTargetSlot(bigStorageDTO.getSlot());
+//            bigStorageCageFeedTaskService.updateById(e);
+//
+//            //5銆佸皢杩涚墖淇℃伅瀛樺叆澶х悊鐗囩璇︽儏琛�
+//            cageDetails.setSlot(bigStorageDTO.getSlot());
+//            cageDetails.setState(Const.GLASS_STATE_NEW);
+//            cageDetails.setDeviceId(bigStorageDTO.getDeviceId());
+//            cageDetails.setGap(glassGap);
+//            bigStorageCageDetailsService.save(cageDetails);
+//
+//        }
+//        return Boolean.TRUE;
+//    }
+    private void sendTaskListToPLC(List<BigStorageCageFeedTask> taskList, Integer line) {
+        log.info("閫佺墖浠诲姟鍙戦�佽繘鐗囩幓鐠冧俊鎭�");
+        S7control s7control = S7object.getinstance().plccontrol;
+        PlcParameterObject plcMesObject = S7object.getinstance().PlcMesObject;
+        String mesD03Address = plcMesObject.getPlcParameter("MESToD03").getAddress();
+        String mesD05Address = plcMesObject.getPlcParameter("MESToD05").getAddress();
+        String outLine = line.equals(Const.A09_OUT_TARGET_POSITION) ? mesD03Address : mesD05Address;
+        for (int i = 1; i <= taskList.size(); i++) {
+            s7control.writeWord(plcMesObject.getPlcParameter("StartAddToImport" + i).getAddress(), taskList.get(i - 1).getLine());
+            s7control.writeWord(plcMesObject.getPlcParameter("TargetAddToImport" + i).getAddress(), taskList.get(i - 1).getTargetSlot());
+            log.info("鍚憄lc鍙戦�佺{}鐗囩幓鐠冨凡瀹屾垚,璧峰浣嶇疆鏄瘂}锛岀洰鏍囦綅缃槸", i, taskList.get(i - 1).getLine(), taskList.get(i - 1).getTargetSlot());
+        }
+        int returnData = 1;
+        int count = 1;
+        while (returnData != 0) {
+            s7control.writeWord(outLine, 2);
+            if (line.equals(Const.A09_OUT_TARGET_POSITION)) {
+                returnData = Integer.parseInt(plcMesObject.getPlcParameter("D03ToMES").getValue());
+            } else {
+                returnData = Integer.parseInt(plcMesObject.getPlcParameter("D05ToMES").getValue());
+            }
+//            returnData = s7control.readWord(outLine, 1).get(0);
+            log.info("宸插悜plc绗瑊}娆″彂閫佽繘鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, outLine, 2);
+        }
+    }
+
+//    /**
+//     * 鍑虹墖涓�娆′粎鐢熸垚涓�杞︾幓鐠�
+//     *
+//     * @param list
+//     * @param isTempering
+//     * @param mesToPLCAddress
+//     * @param <T>
+//     * @return
+//     */
+//    private <T extends BigStorageCageBaseInfo> Boolean computeOutGlassInfo(List<T> list, Boolean isTempering, String mesToPLCAddress) {
+//        //浠诲姟鏁版嵁  鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲�  鐜荤拑闂撮殧
+//        List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>();
+//        //鎵撹溅鍓╀綑灏哄
+//        Integer remainWidth = carWidth;
+//        int maxX = 0;
+//        for (T e : list) {
+//            if (bigStorageCageOutTaskList.size() >= outCarMaxSize || Math.max((int) e.getWidth(), (int) e.getHeight()) > remainWidth) {
+//                break;
+//            }
+//            remainWidth = remainWidth - Math.max((int) e.getWidth(), (int) e.getHeight()) - glassGap;
+//            if (isTempering) {
+//                int minLength = Math.min((int) e.getWidth(), (int) e.getHeight());
+//                if (maxX + minLength <= xMaxSize) {
+//                    bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.TEMPERING_OUT_TARGET_POSITION,
+//                            e.getWidth() * 10, e.getHeight() * 10, 0, 0, 1, new Date()));
+//                    maxX = Math.max(maxX, e.getXCoordinate());
+//                } else {
+//                    break;
+//                }
+//
+//            } else {
+//                bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION,
+//                        e.getWidth() * 10, e.getHeight(), 0, 0, 1, new Date()));
+//            }
+//        }
+//        Assert.isFalse(CollectionUtils.isEmpty(bigStorageCageOutTaskList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟");
+//        log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", bigStorageCageOutTaskList.size());
+//        bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList);
+//        List<String> glassIds = bigStorageCageOutTaskList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
+//        log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄凡鍑虹墖", glassIds);
+//        bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
+//                .set(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING)
+//                .in(BigStorageCageDetails::getGlassId, glassIds));
+//        int returnData = 0;
+//        int count = 1;
+//        while (returnData == 0) {
+//            S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
+//            returnData = S7object.getinstance().plccontrol.readWord(mesToPLCAddress, 1).get(0);
+//            log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesToPLCAddress, returnData);
+//        }
+//        return Boolean.TRUE;
+//    }
+
+//    /**
+//     * 鍑虹墖涓�娆$敓鎴愪竴鐐夌幓鐠�
+//     *
+//     * @param list
+//     * @param isTempering
+//     * @param mesToPLCAddress
+//     * @param <T>
+//     * @return
+//     */
+//    public <T extends BigStorageCageBaseInfo> Boolean computeOutMoreGlassInfo(List<T> list, Boolean isTempering, String mesToPLCAddress) {
+//        //浠诲姟鏁版嵁  鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲�  鐜荤拑闂撮殧
+//        List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>();
+//        //鎵撹溅鍓╀綑灏哄
+//        Integer remainWidth = carWidth;
+//        int trainNumber = 1;
+//        int serialNumber = 1;
+//        int maxX = 0;
+//        for (T e : list) {
+//            int maxLength = Math.max((int) e.getWidth(), (int) e.getHeight());
+//            if (serialNumber > outCarMaxSize || maxLength > remainWidth) {
+//                remainWidth = carWidth;
+//                trainNumber = trainNumber + 1;
+//                serialNumber = 1;
+//                maxX = 0;
+//            }
+//            remainWidth = remainWidth - maxLength - glassGap;
+//            if (isTempering) {
+//                int minLength = Math.min((int) e.getWidth(), (int) e.getHeight());
+//                if (maxX + minLength <= xMaxSize) {
+//                    bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.TEMPERING_OUT_TARGET_POSITION,
+//                            e.getWidth() * 10, e.getHeight() * 10, trainNumber, serialNumber++, 1, new Date()));
+//                    maxX = Math.max(maxX, e.getXCoordinate());
+//                } else {
+//                    remainWidth = carWidth - maxLength - glassGap;
+//                    trainNumber = trainNumber + 1;
+//                    serialNumber = 1;
+//                    maxX = e.getXCoordinate();
+//                    bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.TEMPERING_OUT_TARGET_POSITION,
+//                            e.getWidth() * 10, e.getHeight(), trainNumber, serialNumber++, 1, new Date()));
+//                }
+//            } else {
+//                bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION,
+//                        e.getWidth() * 10, e.getHeight(), trainNumber, serialNumber++, 1, new Date()));
+//            }
+//        }
+//        Assert.isFalse(CollectionUtils.isEmpty(bigStorageCageOutTaskList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟");
+//        log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", bigStorageCageOutTaskList.size());
+//        for (BigStorageCageOutTask bigStorageCageOutTask : bigStorageCageOutTaskList
+//        ) {
+//            bigStorageCageOutTaskService.save(bigStorageCageOutTask);
+//        }
+////        bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList);
+//        List<String> glassIds = bigStorageCageOutTaskList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
+//        log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄凡鍑虹墖", glassIds);
+//        bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
+//                .set(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING)
+//                .in(BigStorageCageDetails::getGlassId, glassIds)
+//                .ne(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT));
+//
+//        return Boolean.TRUE;
+//    }
+
+    @Override
+    public BigStorageDTO queryTargetSlotByTempering(GlassInfo glassInfo) {
+//        BigStorageDTO bigStorageDTO = null;
+//        MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>(BigStorageCage.class)
+//                .selectAll(BigStorageCage.class)
+//                .leftJoin(BigStorageCageDetails.class, BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
+//                .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+//                .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
+//                .eq(BigStorageCageDetails::getEngineerId, glassInfo.getEngineerId())
+//                .eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
+//                .gt(BigStorageCage::getRemainWidth, Math.max(glassInfo.getWidth(), glassInfo.getHeight()))
+//                .last("limit 1");
+//        if (glassInfo.getTemperingLayoutId() == 0) {
+//            wrapper.eq(BigStorageCageDetails::getFlowCardId, glassInfo.getFlowCardId())
+//                    .eq(BigStorageCageDetails::getLayer, glassInfo.getLayer());
+////            wrapper.eq(BigStorageCageDetails::getWidth, glassInfo.getWidth()).eq(BigStorageCageDetails::getHeight, glassInfo.getHeight());
+//        } else {
+//            wrapper.eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() + 1);
+//        }
+//        BigStorageCage bigStorageCage = bigStorageCageService.selectJoinOne(BigStorageCage.class, wrapper);
+//        if (null != bigStorageCage) {
+//            log.info("鏃犻挗鍖栫増鍥緄d鎴栨牴鎹綋鍓嶇幓鐠冪墖搴�+1鎵惧埌鐩爣鏍煎瓙锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
+//            bigStorageDTO = new BigStorageDTO();
+//            bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+//            bigStorageDTO.setSlot(bigStorageCage.getSlot());
+//            bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+//            return bigStorageDTO;
+//        }
+//        bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+//                .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+//                .eq(BigStorageCage::getRemainWidth, slotWidth)
+////                .notInSql(BigStorageCage::getSlot, "select distinct slot from big_storage_cage_details where state = 0")
+//                .inSql(BigStorageCage::getDeviceId,
+//                        "select distinct device_id from big_storage_cage_details where engineer_id = '" + glassInfo.getEngineerId() + "' and tempering_layout_id = " + glassInfo.getTemperingLayoutId())
+//                .last("limit 1"));
+//        if (null != bigStorageCage) {
+//            log.info("鏍规嵁鐗堝浘id鎵惧埌绗煎瓙鍐呯殑鐩爣鏍煎瓙锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
+//            bigStorageDTO = new BigStorageDTO();
+//            bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+//            bigStorageDTO.setSlot(bigStorageCage.getSlot());
+//            bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+//            return bigStorageDTO;
+//        }
+//
+//        //鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨 鍥犱负瀛愭煡璇㈡帓搴忓涓籹ql鏃犲奖鍝嶏紝鎵�浠ュ厛鎵ц瀛愭煡璇㈣幏鍙栭『搴忥紝鐒跺悗涓�娆″幓鏌ヨ
+//        List<Integer> deviceUsedList = bigStorageCageService.queryFreeDeviceByUsed(glassInfo.getThickness());
+//        List<Integer> deviceUseds = bigStorageCageService.queryFreeDeviceByUsed(glassInfo.getThickness());
+//        List<BigStorageCageDetails> engineerCount1 = baseMapper.selectList(
+//                new LambdaQueryWrapper<BigStorageCageDetails>()
+//                        .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
+//                        .select(BigStorageCageDetails::getEngineerId)
+//                        .groupBy(BigStorageCageDetails::getEngineerId)
+//                        .between(BigStorageCageDetails::getDeviceId, 1, 5)
+//        );
+//        List<BigStorageCageDetails> engineerCount2 = baseMapper.selectList(
+//                new LambdaQueryWrapper<BigStorageCageDetails>()
+//                        .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
+//                        .select(BigStorageCageDetails::getEngineerId)
+//                        .groupBy(BigStorageCageDetails::getEngineerId)
+//                        .between(BigStorageCageDetails::getDeviceId, 6, 8)
+//        );
+//        if (engineerCount1.size() > engineerCount2.size()) {
+//            deviceUsedList.removeIf(device -> device < 6);
+//        } else {
+//            deviceUsedList.removeIf(device -> device > 5);
+//        }
+//        if (CollectionUtils.isEmpty(deviceUsedList)) {
+//            deviceUsedList = deviceUseds;
+//        }
+//        for (Integer item : deviceUsedList) {
+//            bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+//                    .eq(BigStorageCage::getRemainWidth, slotWidth)
+//                    .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+//                    .eq(BigStorageCage::getDeviceId, item)
+//                    .last("limit 1"));
+//            if (null != bigStorageCage) {
+//                log.info("鎸夌収瀛樼鐜荤拑鏍煎瓙鏁板崰鐢ㄦ渶灏戞柟寮忚幏鍙栦俊鎭牸瀛愪负锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
+//                bigStorageDTO = new BigStorageDTO();
+//                bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+//                bigStorageDTO.setSlot(bigStorageCage.getSlot());
+//                bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+//                return bigStorageDTO;
+//            }
+//        }
+
+        //鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨
+//        List<Integer> deviceNotUsedList = bigStorageCageService.queryFreeDeviceByNotUsed(glassInfo.getThickness());
+//        for (Integer item : deviceNotUsedList) {
+//            bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+//                    .eq(BigStorageCage::getRemainWidth, slotWidth)
+//                    .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+//                    .eq(BigStorageCage::getDeviceId, item)
+//                    .last("limit 1"));
+//            if (null != bigStorageCage) {
+//                log.info("鎸夌収瀛樼鐜荤拑鏍煎瓙鏁板墿浣欐渶澶氬緱鏂瑰紡鑾峰彇淇℃伅鐗堝浘id:{},鏍煎瓙锛歿},鐜荤拑id锛歿}", glassInfo.getTemperingLayoutId(), bigStorageCage.getSlot(), glassInfo.getGlassId());
+//                bigStorageDTO = new BigStorageDTO();
+//                bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+//                bigStorageDTO.setSlot(bigStorageCage.getSlot());
+//                bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+//                return bigStorageDTO;
+//            }
+//        }
+//        Assert.isTrue(null != bigStorageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�");
+//        return bigStorageDTO;
+        return null;
+    }
+
+
+    //    @Scheduled(fixedDelay = 300)
+    public void querySizeByEngineerTask() {
+        log.info("鏌ヨ缁撴灉锛歿}", querySizeByEngineer("P24072402", 1, 10, 8));
+        log.info("鏌ヨ缁撴灉锛歿}", querySizeByEngineer("P24072402", 1, 5, 8));
+
+    }
+
+    public BigStorageDTO querySizeByEngineer(String engineerId, int temperingLayoutId, int temperingFeedSequence, double thickness) {
+        BigStorageDTO bigStorageDTO = null;
+        BigStorageCage bigStorageCage = null;
+        //鑾峰彇绗煎唴褰撳墠鐗堝浘姣忎釜鏍煎瓙宸叉湁鐜荤拑鐨勬渶灏忕増搴� 鑾峰彇绗煎唴褰撳墠鐗堝浘鐨勬墍鏈夌幓鐠冧俊鎭�
+        List<BigStorageCageDetails> cageDetailsList = bigStorageCageDetailsService.list(new QueryWrapper<BigStorageCageDetails>()
+                .select("slot", "min(tempering_feed_sequence) as tempering_feed_sequence")
+                .eq("engineer_id", engineerId).eq("tempering_layout_id", temperingLayoutId)
+                .in("state", Const.GLASS_STATE_IN_ALL_ZERO).groupBy("slot").orderByAsc("min(tempering_feed_sequence)"));
+        if (CollectionUtils.isNotEmpty(cageDetailsList)) {
+            Integer minLength = cageDetailsList.stream().filter(e -> e.getTemperingFeedSequence() > temperingFeedSequence)
+                    .mapToInt(BigStorageCageDetails::getTemperingFeedSequence).min().orElse(1000);
+            List<GlassInfo> infoList = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>()
+                    .notInSql(GlassInfo::getGlassId, "select glass_id from damage where tempering_layout_id = " + temperingLayoutId + " and engineer_id = '" + engineerId + "'")
+                    .eq(GlassInfo::getTemperingLayoutId, temperingLayoutId).eq(GlassInfo::getEngineerId, engineerId).orderByAsc(GlassInfo::getTemperingFeedSequence));
+            int remainWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_CAR_WIDTH);
+            int trainNumber = 1;
+            int serialNumber = 0;
+            int min = 0;
+            int temp = infoList.get(0).getTemperingFeedSequence();
+            int slot = 0;
+            int resultTrainNumber = 0;
+            int outCarMaxSize = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_OUT_CAR_SIZE);
+            int carWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_CAR_WIDTH);
+            int glassGap = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_GLASS_GAP);
+            for (GlassInfo e : infoList) {
+                int maxLength = Math.max((int) e.getWidth(), (int) e.getHeight());
+                if (serialNumber >= outCarMaxSize || maxLength > remainWidth || e.getTemperingFeedSequence() >= minLength) {
+                    if (resultTrainNumber != 0) {
+                        min = temp;
+                        break;
+                    }
+                    temp = e.getTemperingFeedSequence();
+                    remainWidth = carWidth;
+                    trainNumber = trainNumber + 1;
+                    serialNumber = 0;
+                }
+                if (temperingFeedSequence == e.getTemperingFeedSequence()) {
+                    resultTrainNumber = trainNumber;
+                }
+                remainWidth = remainWidth - maxLength - glassGap > 0 ? remainWidth - maxLength - glassGap : 0;
+                serialNumber += 1;
+                log.info("{},{},{}", trainNumber, remainWidth, serialNumber);
+                if (e.getTemperingFeedSequence().equals(infoList.get(infoList.size() - 1).getTemperingFeedSequence())) {
+                    min = temp;
+                }
+            }
+            for (BigStorageCageDetails item : cageDetailsList) {
+                if (min <= item.getTemperingFeedSequence() && item.getTemperingFeedSequence() < minLength) {
+                    slot = item.getSlot();
+                    bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+                            .eq(BigStorageCage::getSlot, slot).eq(BigStorageCage::getEnableState, Const.SLOT_ON));
+                    break;
+                }
+            }
+        }
+
+        if (bigStorageCage != null) {
+            bigStorageDTO = new BigStorageDTO();
+            bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+            bigStorageDTO.setSlot(bigStorageCage.getSlot());
+            bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+            return bigStorageDTO;
+        }
+        int slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
+        bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+                .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+                .eq(BigStorageCage::getRemainWidth, slotWidth).orderByAsc(BigStorageCage::getSlot)
+                .inSql(BigStorageCage::getDeviceId,
+                        "select distinct device_id from big_storage_cage_details where engineer_id = '" + engineerId + "' and tempering_layout_id = " + temperingLayoutId)
+                .last("limit 1"));
+        if (null != bigStorageCage) {
+            log.info("鏍规嵁鐗堝浘id鎵惧埌绗煎瓙鍐呯殑鐩爣鏍煎瓙锛歿}", bigStorageCage.getSlot());
+            bigStorageDTO = new BigStorageDTO();
+            bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+            bigStorageDTO.setSlot(bigStorageCage.getSlot());
+            bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+            return bigStorageDTO;
+
+        }
+
+        //鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨 鍥犱负瀛愭煡璇㈡帓搴忓涓籹ql鏃犲奖鍝嶏紝鎵�浠ュ厛鎵ц瀛愭煡璇㈣幏鍙栭『搴忥紝鐒跺悗涓�娆″幓鏌ヨ
+        List<Integer> deviceUsedList = bigStorageCageService.queryFreeDeviceByUsed(thickness);
+        for (Integer item : deviceUsedList) {
+            bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+                    .eq(BigStorageCage::getRemainWidth, slotWidth).orderByAsc(BigStorageCage::getSlot)
+                    .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+                    .eq(BigStorageCage::getDeviceId, item)
+                    .last("limit 1"));
+            if (null != bigStorageCage) {
+                log.info("鎸夌収瀛樼鐜荤拑鏍煎瓙鏁板崰鐢ㄦ渶灏戞柟寮忚幏鍙栦俊鎭牸瀛愪负锛歿}", bigStorageCage.getSlot());
+                bigStorageDTO = new BigStorageDTO();
+                bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+                bigStorageDTO.setSlot(bigStorageCage.getSlot());
+                bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+                return bigStorageDTO;
+            }
+        }
+        Assert.isTrue(null != bigStorageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�");
+        return bigStorageDTO;
+    }
+
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/JsonFile/PlcCacheVerticalGlass.json b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/JsonFile/PlcCacheVerticalGlass.json
new file mode 100644
index 0000000..a8aed05
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/JsonFile/PlcCacheVerticalGlass.json
@@ -0,0 +1,391 @@
+{
+	"plcAddressBegin": "DB14.0",
+	"plcAddressLenght": "938",
+	"dataType": "word",
+	"parameteInfor": [{
+			"codeId": "D01ID",
+			"addressIndex": "0",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D02ID",
+			"addressIndex": "32",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ID1",
+			"addressIndex": "64",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ID2",
+			"addressIndex": "96",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ID3",
+			"addressIndex": "128",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ID4",
+			"addressIndex": "160",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ID5",
+			"addressIndex": "192",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ID6",
+			"addressIndex": "224",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D04ID",
+			"addressIndex": "256",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ID1",
+			"addressIndex": "288",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ID2",
+			"addressIndex": "320",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ID3",
+			"addressIndex": "352",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ID4",
+			"addressIndex": "384",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ID5",
+			"addressIndex": "416",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ID6",
+			"addressIndex": "448",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01ID1",
+			"addressIndex": "480",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01ID2",
+			"addressIndex": "512",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01ID3",
+			"addressIndex": "544",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01ID4",
+			"addressIndex": "576",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01ID5",
+			"addressIndex": "608",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01ID6",
+			"addressIndex": "640",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02ID1",
+			"addressIndex": "672",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02ID2",
+			"addressIndex": "704",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02ID3",
+			"addressIndex": "736",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02ID4",
+			"addressIndex": "768",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02ID5",
+			"addressIndex": "800",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02ID6",
+			"addressIndex": "832",
+			"addressLenght": "32",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03ToMES",
+			"addressIndex": "874",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05ToMES",
+			"addressIndex": "876",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D01ToMES",
+			"addressIndex": "878",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D04ToMES",
+			"addressIndex": "880",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "MESToD03",
+			"addressIndex": "888",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "MESToD05",
+			"addressIndex": "890",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "MESToPLC",
+			"addressIndex": "892",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "StartAddToImport1",
+			"addressIndex": "914",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "StartAddToImport2",
+			"addressIndex": "916",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "StartAddToImport3",
+			"addressIndex": "918",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "StartAddToImport4",
+			"addressIndex": "920",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "StartAddToImport5",
+			"addressIndex": "922",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "StartAddToImport6",
+			"addressIndex": "924",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "TargetAddToImport1",
+			"addressIndex": "926",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "TargetAddToImport2",
+			"addressIndex": "928",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "TargetAddToImport3",
+			"addressIndex": "930",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "TargetAddToImport4",
+			"addressIndex": "932",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "TargetAddToImport5",
+			"addressIndex": "934",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "TargetAddToImport6",
+			"addressIndex": "936",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "deviceState",
+			"addressIndex": "864",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E01State",
+			"addressIndex": "866",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "E02State",
+			"addressIndex": "868",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03State",
+			"addressIndex": "870",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05State",
+			"addressIndex": "872",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "MESToD01",
+			"addressIndex": "894",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "MESToD04",
+			"addressIndex": "896",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D03Request",
+			"addressIndex": "898",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		},
+		{
+			"codeId": "D05Request",
+			"addressIndex": "900",
+			"addressLenght": "2",
+			"ratio": "1",
+			"unit": ""
+		}
+	]
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-cz.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-cz.yml
new file mode 100644
index 0000000..86a6428
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-cz.yml
@@ -0,0 +1,30 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.1.199:3306/hangzhoumes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://192.168.10.2:1433;databasename=hangzhoumes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+        pp:
+          url: jdbc:mysql://192.168.1.199:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-dev.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..c0bcd39
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-dev.yml
@@ -0,0 +1,40 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+        pp:
+          url: jdbc:mysql://127.0.0.1:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://10.153.19.150:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..b54038f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-prod.yml
@@ -0,0 +1,40 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://10.153.19.150:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://10.153.19.150:1433;databasename=north_glass_mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+        pp:
+          url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 10.153.19.150:8849
+  redis:
+    database: 0
+    host: 10.153.19.150
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://10.153.19.150:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-yw.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-yw.yml
new file mode 100644
index 0000000..89e07f7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application-yw.yml
@@ -0,0 +1,40 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.2.100:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://192.168.2.100:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://192.168.2.100:1433;databasename=mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 192.168.2.100:8848
+  redis:
+    database: 0
+    host: 192.168.2.100
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://192.168.2.100:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
new file mode 100644
index 0000000..f6baa40
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
@@ -0,0 +1,33 @@
+server:
+  port: 10012
+
+spring:
+  profiles:
+    active: dev
+  application:
+    name: cacheVerticalGlass
+  liquibase:
+    enabled: false
+  task:
+    scheduling:
+      pool:
+        size: 10
+      thread-name-prefix: task-cacheVertical
+mybatis-plus:
+  mapper-locations: classpath*:mapper/*.xml
+  configuration:
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+mes:
+  sequence:
+    order: true
+  minCount: 30
+  carWidth: 6200   #澶ц溅瀹藉害
+  slotWidth: 6200   #澶ц溅瀹藉害
+  inCarMaxSize: 5    #杩涚墖澶ц溅鏈�澶у瓨鏀剧幓鐠冩暟閲�
+  outCarMaxSize: 6     #鍑虹墖澶ц溅鏈�澶у瓨鏀剧幓鐠冩暟閲�
+  glassGap: 250  #鐜荤拑闂磋窛
+  xMaxSize: 2800
+  slotMaxHeight: 2500
+  slotMaxthickness: 12
+  temperingOutTargetPosition: 930
+  artificialOutTargetPosition: 931
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/logback-spring.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..2392df0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/logback-spring.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="10 seconds">
+    <!-- logger涓婁笅鏂囧悕绉帮紙鏍规嵁涓氬姟淇敼锛� -->
+    <contextName>cacheVerticalGlass</contextName>
+
+    <!-- 瀹氫箟浜嗕竴涓悕涓簊erverName鐨勫睘鎬э紝瀹冪殑鍊兼潵鑷簬logging.file.name锛屽鏋滄病鏈夋壘鍒拌灞炴�ч粯璁や负MyServerName锛堟牴鎹笟鍔′慨鏀癸級 -->
+    <springProperty name="serverName" source="logging.file.name" defaultValue="cacheVerticalGlass"/>
+    <springProperty name="logging.path" source="logging.file.path" defaultValue="././logs/"/>
+
+    <!-- 褰╄壊鏃ュ織渚濊禆鐨勬覆鏌撶被 -->
+    <!-- 瀹氫箟浜嗕竴涓悕涓篶lr鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.ColorConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗘棩蹇楄緭鍑轰腑鐨勬枃鏈潃鑹诧紝浠ヤ究鏇村鏄撳湴鍖哄垎涓嶅悓鐨勬棩蹇楃骇鍒垨鍏朵粬淇℃伅 -->
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
+    <!-- WhitespaceThrowableProxyConverter鍜孍xtendedWhitespaceThrowableProxyConverter閮芥槸鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず鐨勭被銆傚畠浠箣闂寸殑鍖哄埆鍦ㄤ簬锛孍xtendedWhitespaceThrowableProxyConverter鍦ㄨ緭鍑哄紓甯镐俊鎭椂浼氬寘鍚洿澶氱殑璇︾粏淇℃伅锛屼緥濡傚紓甯哥殑绫诲悕銆佹柟娉曞悕鍜岃鍙风瓑 -->
+    <!-- 瀹氫箟浜嗕竴涓悕涓簑ex鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <conversionRule conversionWord="wex"
+                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
+    <!-- 瀹氫箟浜嗕竴涓悕涓簑Ex鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <conversionRule conversionWord="wEx"
+                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
+
+    <!-- 褰╄壊鏃ュ織鏍煎紡 -->
+    <!-- value鍊兼槸鏃ュ織杈撳嚭妯℃澘锛� :-鏄睘鎬у悕鍜屽叾榛樿鍊间箣闂寸殑鍒嗛殧绗︼紝浣滅敤涓�:鐩稿悓 -->
+    <!-- 瀹氫箟鏃ュ織杈撳嚭鏍煎紡鐨勮浆鎹㈣鍒欙紝%d{yyyy-MM-dd HH:mm:ss.SSS}琛ㄧず鏃ユ湡鍜屾椂闂达紝%clr琛ㄧず灏嗚緭鍑烘枃鏈潃鑹诧紝{faint}琛ㄧず浣跨敤娣¤壊 -->
+    <!-- %5p琛ㄧず鏃ュ織绾у埆杈撳嚭鍙冲榻愶紝宸﹁竟浠ョ┖鏍煎~鍏� -->
+    <!-- ${PID:- }琛ㄧず杩涚▼ID锛�%clr琛ㄧず灏嗚緭鍑烘枃鏈潃鑹诧紝{magenta}琛ㄧず浣跨敤娲嬬孩鑹� -->
+    <!-- -琛ㄧず涓�涓垎闅旂 -->
+    <!-- %t锛氭樉绀轰骇鐢熻鏃ュ織鐨勭嚎绋嬪悕锛�%15锛氳嫢瀛楃闀垮害灏忎簬15锛屽垯宸﹁竟鐢ㄧ┖鏍煎~鍏咃紱%.15锛氳嫢瀛楃闀垮害瓒呰繃15锛屾埅鍘诲浣欏瓧绗� -->
+    <!-- %-40锛氳嫢瀛楃闀垮害灏忎簬40锛屽垯鍙宠竟鐢ㄧ┖鏍煎~鍏咃紱%.40锛氳嫢瀛楃闀垮害瓒呰繃40锛屾埅鍘诲浣欏瓧绗︼紱logger{39}瀵瑰簲鐨勬槸鈥渓ogging.WARNING鈥濈骇鍒�傚叿浣撴潵璇达紝Python鐨刲ogging妯″潡瀹氫箟浜嗕互涓嬪嚑涓骇鍒紙浠庝綆鍒伴珮锛夛細NOTSET銆丏EBUG銆両NFO銆乄ARNING銆丒RROR銆丆RITICAL銆傚洜姝わ紝logger{39}琛ㄧず鐨勬槸WARNING绾у埆锛屽嵆鏃ュ織璁板綍鍣ㄤ細璁板綍鎵�鏈塛ARNING绾у埆鍙婁互涓婄殑鏃ュ織淇℃伅 -->
+    <!-- %m琛ㄧず鏃ュ織娑堟伅锛�%n琛ㄧず鎹㈣绗︼紱${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}琛ㄧず寮傚父淇℃伅銆傚鏋滄棩蹇楄緭鍑轰腑鍖呭惈寮傚父淇℃伅锛岃繖涓鍒欏皢浼氬皢鍏惰浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <property name="CONSOLE_LOG_PATTERN"
+              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+
+    <!--1. 杈撳嚭鍒版帶鍒跺彴-->
+    <!-- 瀹氫箟鎺у埗鍙版棩蹇楄緭鍑虹殑appender锛宑lass="ch.qos.logback.core.ConsoleAppender"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凜onsoleAppender绫绘潵杈撳嚭鏃ュ織鍒版帶鍒跺彴 -->
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <!--姝ゆ棩蹇梐ppender鏄负寮�鍙戜娇鐢紝鍙厤缃渶搴曠骇鍒紝鎺у埗鍙拌緭鍑虹殑鏃ュ織绾у埆鏄ぇ浜庢垨绛変簬姝ょ骇鍒殑鏃ュ織淇℃伅-->
+        <!-- 瀹氫箟鏃ュ織杈撳嚭绾у埆鐨勮繃婊ゅ櫒锛宑lass="ch.qos.logback.classic.filter.ThresholdFilter"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凾hresholdFilter绫绘潵杩囨护鏃ュ織杈撳嚭锛�<level>debug</level>琛ㄧず鍙緭鍑篸ebug绾у埆鍙婁互涓婄殑鏃ュ織 -->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>debug</level>
+        </filter>
+        <encoder>
+            <!-- ${CONSOLE_LOG_PATTERN}琛ㄧず鎺у埗鍙版棩蹇楄緭鍑烘牸寮忥紝UTF-8琛ㄧず缂栫爜鏍煎紡 -->
+            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
+            <!-- 璁剧疆瀛楃闆� -->
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+    <!--2. 杈撳嚭鍒版枃妗�-->
+    <!-- 2.1 level涓� DEBUG 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <!-- 瀹氫箟鏂囦欢鏃ュ織杈撳嚭鐨刟ppender锛宑lass="ch.qos.logback.core.rolling.RollingFileAppender"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凴ollingFileAppender绫绘潵杈撳嚭鏃ュ織鍒版枃浠� -->
+    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_debug.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <!-- 瀹氫箟鏃ュ織鏂囦欢婊氬姩绛栫暐鐨勬爣绛撅紝class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凾imeBasedRollingPolicy绫绘潵瀹氫箟鏃ュ織鏂囦欢鐨勬粴鍔ㄧ瓥鐣� -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 鏃ュ織褰掓。 -->
+            <!-- 瀹氫箟鏃ュ織鏂囦欢鍚嶇殑妯″紡銆傚湪杩欎釜妯″紡涓紝${logging.path}琛ㄧず鏃ュ織鏂囦欢鐨勮矾寰勶紝%d{yyyy-MM-dd}琛ㄧず鏃ユ湡鏍煎紡锛�%i琛ㄧず鏂囦欢绱㈠紩 -->
+            <fileNamePattern>${logging.path}/${serverName}/web-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <!-- 瀹氫箟鏃ュ織鏂囦欢婊氬姩绛栫暐鐨勬爣绛撅紝class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凷izeAndTimeBasedFNATP绫绘潵瀹氫箟鏃ュ織鏂囦欢鐨勬粴鍔ㄧ瓥鐣ワ紝<maxFileSize>100MB</maxFileSize>琛ㄧず鏃ュ織鏂囦欢鐨勬渶澶уぇ灏忎负100MB銆傝繖涓粴鍔ㄧ瓥鐣ラ�氬父鐢ㄤ簬鎸夌収鏃堕棿鍜屾枃浠跺ぇ灏忔粴鍔ㄦ棩蹇楁枃浠讹紝浠ヤ究鏇村ソ鍦扮鐞嗘棩蹇楁枃浠剁殑澶у皬鍜屾暟閲� -->
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍debug绾у埆鐨� -->
+        <!-- 瀹氫箟鏃ュ織杈撳嚭绾у埆鐨勮繃婊ゅ櫒銆傚湪杩欎釜杩囨护鍣ㄤ腑锛宑lass="ch.qos.logback.classic.filter.LevelFilter"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凩evelFilter绫绘潵杩囨护鏃ュ織杈撳嚭锛�<level>debug</level>琛ㄧず鍙緭鍑篸ebug绾у埆鍙婁互涓婄殑鏃ュ織 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>debug</level>
+            <!-- <onMatch>ACCEPT</onMatch>琛ㄧず濡傛灉鏃ュ織浜嬩欢涓庤繃婊ゅ櫒鍖归厤锛屽垯鎺ュ彈璇ヤ簨浠讹紝<onMismatch>DENY</onMismatch>琛ㄧず濡傛灉鏃ュ織浜嬩欢涓庤繃婊ゅ櫒涓嶅尮閰嶏紝鍒欐嫆缁濊浜嬩欢 -->
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.2 level涓� INFO 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_info.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 澶╁ぉ鏃ュ織褰掓。璺緞浠ュ強鏍煎紡 -->
+            <fileNamePattern>${logging.path}/${serverName}/web-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍info绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>info</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.3 level涓� WARN 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_warn.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 姝ゅ璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logging.path}/${serverName}/web-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍warn绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>warn</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.4 level涓� ERROR 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_error.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 姝ゅ璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logging.path}/${serverName}/web-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍ERROR绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!--     4.1 寮�鍙戠幆澧�:鎵撳嵃鎺у埗鍙�-->
+    <!-- 鐢ㄤ簬鍦⊿pring Boot搴旂敤绋嬪簭涓厤缃棩蹇楄褰曠殑鏍囩銆傚湪杩欎釜鏍囩涓紝name="dev"琛ㄧず杩欎釜閰嶇疆鏂囦欢鍙湪dev鐜涓敓鏁堬紝<logger name="com.myClass.controller" level="debug"/>琛ㄧず涓篶om.myClass.controller锛堟牴鎹笟鍔′慨鏀癸級杩欎釜鍖呬笅鐨勭被閰嶇疆鏃ュ織杈撳嚭绾у埆涓篸ebug -->
+    <!--    <springProfile name="dev">-->
+    <!--        <logger name="com.myClass.controller" level="debug"/>-->
+    <!--    </springProfile>-->
+    <!-- 鐢ㄤ簬閰嶇疆鏃ュ織杈撳嚭鐨勬爣绛俱�傚湪杩欎釜鏍囩涓紝level="info"琛ㄧず鏃ュ織杈撳嚭绾у埆涓篿nfo锛�<appender-ref ref="CONSOLE"/>銆�<appender-ref ref="DEBUG_FILE"/>銆�<appender-ref ref="INFO_FILE"/>銆�<appender-ref ref="WARN_FILE"/>銆�<appender-ref ref="ERROR_FILE"/>琛ㄧず灏嗘棩蹇楄緭鍑哄埌涓嶅悓鐨刟ppender涓紝鍒嗗埆涓烘帶鍒跺彴銆乨ebug鏂囦欢銆乮nfo鏂囦欢銆亀arn鏂囦欢鍜宔rror鏂囦欢 -->
+    <root level="info">
+        <appender-ref ref="CONSOLE"/>
+        <appender-ref ref="INFO_FILE"/>
+        <appender-ref ref="WARN_FILE"/>
+        <appender-ref ref="ERROR_FILE"/>
+    </root>
+</configuration>
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
new file mode 100644
index 0000000..40ca6d8
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -0,0 +1,277 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.bigstorage.mapper.BigStorageCageDetailsMapper">
+
+    <resultMap id="temperingLayoutDTO" type="com.mes.bigstorage.entity.dto.TemperingLayoutDTO">
+        <result column="engineer_id" property="engineerId"/>
+        <result column="tempering_layout_id" property="temperingLayoutId"/>
+        <result column="count" property="count"/>
+        <result column="slot_count" property="slotCount"/>
+    </resultMap>
+
+    <resultMap id="slotSequenceDTO" type="com.mes.bigstorage.entity.dto.SlotSequenceDTO">
+        <result column="engineer_id" property="engineerId"/>
+        <result column="tempering_layout_id" property="temperingLayoutId"/>
+        <result column="slot" property="slot"/>
+        <result column="glass_count" property="glassCount"/>
+        <result column="max_sequence" property="maxSequence"/>
+        <result column="min_sequence" property="minSequence"/>
+        <result column="remain_width" property="remainWidth"/>
+    </resultMap>
+
+    <resultMap id="virtualSlotSequenceDTO" type="com.mes.bigstorage.entity.dto.BigStorageRelationDTO">
+        <result column="engineer_id" property="engineerId"/>
+        <result column="tempering_layout_id" property="temperingLayoutId"/>
+        <result column="virtual_slot" property="virtualSlot"/>
+    </resultMap>
+    <resultMap id="baseSlotSequenceDTO" type="com.mes.bigstorage.entity.dto.BigStorageSequenceDTO">
+        <result column="slot" property="slot"/>
+        <result column="max_sequence" property="maxSequence"/>
+        <result column="min_sequence" property="minSequence"/>
+    </resultMap>
+
+    <resultMap id="temperingGlassCount" type="com.mes.bigstorage.entity.dto.TemperingGlassCountDTO">
+        <result column="engineer_id" property="engineerId"/>
+        <result column="tempering_layout_id" property="temperingLayoutId"/>
+        <result column="films_id" property="filmsId"/>
+        <result column="thickness" property="thickness"/>
+        <result column="total_count" property="totalCount"/>
+        <result column="real_count" property="realCount"/>
+        <result column="damage_count" property="damageCount"/>
+        <result column="lack_count" property="lackCount"/>
+    </resultMap>
+
+    <resultMap id="glassInfoLackDTO" type="com.mes.bigstorage.entity.dto.GlassInfoLackDTO">
+        <result column="flow_card_id" property="flowCardId"/>
+        <result column="width" property="width"/>
+        <result column="height" property="height"/>
+        <result column="thickness" property="thickness"/>
+        <result column="filmsid" property="filmsid"/>
+        <result column="total_layer" property="totalLayer"/>
+        <result column="layer" property="layer"/>
+        <result column="tempering_layout_id" property="temperingLayoutId"/>
+        <result column="tempering_feed_sequence" property="temperingFeedSequence"/>
+        <result column="x_coordinate" property="xCoordinate"/>
+        <result column="y_coordinate" property="yCoordinate"/>
+        <result column="angle" property="angle"/>
+        <result column="engineer_id" property="engineerId"/>
+        <result column="glass_id" property="glassId"/>
+        <result column="is_damage" property="isDamage"/>
+    </resultMap>
+
+    <select id="temperingIsAll" resultMap="temperingLayoutDTO">
+        SELECT T2.*
+        FROM (
+                 SELECT T.ENGINEER_ID,
+                        T.TEMPERING_LAYOUT_ID,
+                        COUNT(T.TEMPERING_FEED_SEQUENCE) AS COUNT
+                 FROM GLASS_INFO T
+                          LEFT JOIN DAMAGE T1
+                                    ON T.ENGINEER_ID = T1.ENGINEER_ID
+                                        AND T.GLASS_ID = T1.GLASS_ID
+                                        AND (T1.TYPE = 8
+                                            OR T1.TYPE = 9)
+                 WHERE T1.GLASS_ID IS NULL
+                 GROUP BY T.ENGINEER_ID,
+                          T.TEMPERING_LAYOUT_ID
+             ) T2
+                 INNER JOIN (SELECT ENGINEER_ID, TEMPERING_LAYOUT_ID, COUNT(TEMPERING_FEED_SEQUENCE) AS COUNT
+                             FROM BIG_STORAGE_CAGE_DETAILS
+                             WHERE STATE in (100)
+                             GROUP BY ENGINEER_ID, TEMPERING_LAYOUT_ID) T3 ON T2.ENGINEER_ID = T3.ENGINEER_ID
+            AND T2.TEMPERING_LAYOUT_ID = T3.TEMPERING_LAYOUT_ID
+            AND T2.COUNT = T3.COUNT
+                 INNER JOIN ENGINEERING T4 ON T2.ENGINEER_ID = T4.ENGINEER_ID
+        ORDER BY T4.ID, T2.TEMPERING_LAYOUT_ID
+    </select>
+
+    <select id="queryTemperingOccupySlot" resultMap="temperingLayoutDTO">
+        SELECT ENGINEER_ID,
+               TEMPERING_LAYOUT_ID,
+               COUNT(DISTINCT SLOT) as SLOT_COUNT
+        FROM BIG_STORAGE_CAGE_DETAILS
+        WHERE STATE = 100
+        GROUP BY ENGINEER_ID,
+                 TEMPERING_LAYOUT_ID
+        HAVING SLOT_COUNT &gt;= #{count}
+        ORDER BY SLOT_COUNT DESC
+    </select>
+    <select id="queryGlassMaxAndMin" resultMap="slotSequenceDTO">
+        SELECT T.*,
+               T1.REMAIN_WIDTH
+        FROM (
+                 SELECT ENGINEER_ID,
+                        TEMPERING_LAYOUT_ID,
+                        SLOT,
+                        count(*)                     as glass_count,
+                        MAX(TEMPERING_FEED_SEQUENCE) AS MAX_SEQUENCE,
+                        MIN(TEMPERING_FEED_SEQUENCE) AS MIN_SEQUENCE
+                 FROM BIG_STORAGE_CAGE_DETAILS
+                 WHERE ENGINEER_ID = #{engineerId}
+                   AND TEMPERING_LAYOUT_ID = #{temperingLayoutId}
+                 GROUP BY ENGINEER_ID,
+                          TEMPERING_LAYOUT_ID,
+                          SLOT
+             ) T
+                 INNER JOIN BIG_STORAGE_CAGE T1 ON T.SLOT = T1.SLOT
+        ORDER BY T.MAX_SEQUENCE DESC
+    </select>
+
+    <update id="updateBySlot">
+        update big_storage_cage_details
+        <set>
+            state = #{state}
+        </set>
+        <where>
+            (glass_id,slot) in (
+            <foreach collection="list" item="item" separator=",">
+                (#{item.glassId}, #{item.targetSlot})
+            </foreach>
+            )
+            and state !=101
+        </where>
+    </update>
+    <update id="updateDeviceIdBySlot">
+        update big_storage_cage_details t inner join big_storage_cage t1 on t.slot = t1.slot
+        set t.device_id = t1.device_id
+        where t.slot in (
+        <foreach collection="list" item="item" separator=",">
+            #{item}
+        </foreach>
+        )
+    </update>
+
+    <select id="selectTemperingGlassCount" resultMap="temperingGlassCount">
+        with glass_info_temp as (
+        select engineer_id, tempering_layout_id, count(*) as total_count
+        from glass_info
+        group by engineer_id, tempering_layout_id
+        ),
+        big_details_temp as (
+        select engineer_id, tempering_layout_id, count(*) as real_count, films_id, thickness
+        from big_storage_cage_details
+        where state = 100
+        <if test="isTempering == 0">
+            and tempering_layout_id = 0
+        </if>
+        <if test="isTempering == 1">
+            and tempering_layout_id != 0
+        </if>
+
+        group by engineer_id, tempering_layout_id, films_id, thickness
+        ),
+        damage_temp as (
+        select engineer_id, tempering_layout_id, count(*) as damage_count
+        from damage
+        where type in(8,9)
+        group by engineer_id, tempering_layout_id
+        ),
+        result as (
+        select t.engineer_id,
+        t.tempering_layout_id,
+        t.films_id,
+        t.thickness,
+        total_count,
+        real_count,
+        ifnull(damage_count, 0) as damage_count,
+        case when total_count - real_count - ifnull(damage_count, 0) &lt; 0 then 0 else
+        total_count - real_count - ifnull(damage_count, 0) end as lack_count
+        from big_details_temp t
+        inner join glass_info_temp t1 on t.engineer_id = t1.engineer_id and
+        t.tempering_layout_id = t1.tempering_layout_id
+        left join damage_temp t2
+        on t.engineer_id = t2.engineer_id and t.tempering_layout_id = t2.tempering_layout_id
+        )
+        select *
+        from result
+        order by engineer_id,tempering_layout_id
+    </select>
+
+    <select id="queryIsAllNeedDispatchVirtualSlot" resultMap="virtualSlotSequenceDTO">
+        with relation_temp as (
+            select engineer_id, tempering_layout_id, virtual_slot, count(1) as slot_count
+            from big_storage_glass_relation_info
+            group by engineer_id, tempering_layout_id, virtual_slot
+        ),
+             details_temp as (
+                 select t.engineer_id, t.tempering_layout_id, t.virtual_slot, count(1) as slot_count
+                 from big_storage_glass_relation_info t
+                          left join big_storage_cage_details t1 on
+                         t.engineer_id = t1.engineer_id and t.tempering_layout_id = t1.tempering_layout_id and
+                         t.tempering_feed_sequence = t1.tempering_feed_sequence
+                 where t1.state = 100
+                 group by t.engineer_id, t.tempering_layout_id, t.virtual_slot
+             ),
+             result_one as (
+                 select t.*, t1.slot_count as tslot_count
+                 from relation_temp t
+                          INNER JOIN details_temp t1 on t.engineer_id = t1.engineer_id and
+                                                        t.tempering_layout_id = t1.tempering_layout_id and
+                                                        t.virtual_slot = t1.virtual_slot
+                 where t.slot_count = t1.slot_count
+             )
+        select engineer_id, tempering_layout_id, virtual_slot
+        from result_one
+        order by engineer_id, tempering_layout_id
+    </select>
+
+    <select id="queryNeedDispatchSlot" resultMap="baseSlotSequenceDTO">
+        with glass_id_temp as (
+            select engineer_id, tempering_layout_id, tempering_feed_sequence
+            from big_storage_glass_relation_info
+            where (engineer_id, tempering_layout_id, virtual_slot) =
+                  (#{engineerId}, #{temperingLayoutId}, #{virtualSlot})
+        )
+        select t.slot, max(t1.tempering_feed_sequence) as max_sequence, min(t1.tempering_feed_sequence) as min_sequence
+        from big_storage_cage_details t
+                 inner join big_storage_glass_relation_info t1
+                            on t.engineer_id = t1.engineer_id and t.tempering_layout_id = t1.tempering_layout_id and
+                               t.tempering_feed_sequence = t1.tempering_feed_sequence
+        where (t.engineer_id, t.tempering_layout_id, t.tempering_feed_sequence) in
+              (select engineer_id, tempering_layout_id, tempering_feed_sequence from glass_id_temp)
+          and t.state = 100
+        group by t.slot
+        order by max_sequence desc
+    </select>
+    <select id="queryLackGlassInfo" resultMap="glassInfoLackDTO">
+        WITH glass_info_temp AS (SELECT *
+                                 FROM glass_info
+                                 WHERE engineer_id = #{engineerId}
+                                   AND tempering_layout_id = #{temperingLayoutId}),
+             big_details_temp AS (SELECT *
+                                  FROM big_storage_cage_details
+                                  WHERE state = 100
+                                    AND engineer_id = #{engineerId}
+                                    AND tempering_layout_id = #{temperingLayoutId}),
+             damage_temp AS (SELECT *
+                             FROM damage
+                             WHERE type IN (8, 9)
+                               AND engineer_id = #{engineerId}
+                               AND tempering_layout_id = #{temperingLayoutId}),
+             result_lack AS (SELECT t.*
+                             FROM glass_info_temp t
+                                      LEFT JOIN big_details_temp t1 ON t.glass_id = t1.glass_id
+                             WHERE t1.glass_id IS NULL),
+             result AS (
+                 SELECT t.*,
+                        CASE
+
+                            WHEN t1.glass_id is null THEN
+                                0
+                            ELSE 1
+                            END AS is_damage
+                 FROM result_lack t
+                          LEFT JOIN damage_temp t1 ON t.glass_id = t1.glass_id
+             )
+        SELECT *
+        FROM result
+    </select>
+    <select id="querybigStorageCageDetail" resultType="com.mes.base.entity.vo.BigStorageVO">
+        select bsc.device_id, bsc.slot, count(bscd.glass_id) as count
+        from big_storage_cage bsc
+                 left join big_storage_cage_details bscd
+                           on bsc.slot = bscd.slot and bscd.state in (100, 102, 103, 104)
+        group by bsc.device_id, bsc.slot
+        order by bsc.device_id, bsc.slot
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml
new file mode 100644
index 0000000..3c508d8
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.bigstoragetask.mapper.BigStorageCageFeedTaskMapper">
+
+    <resultMap id="bigStorageDTO" type="com.mes.bigstorage.entity.dto.BigStorageDTO">
+        <result column="REMAIN_WIDTH" property="width"/>
+        <result column="GLASS_COUNT" property="glassCount"/>
+    </resultMap>
+
+    <select id="querySitToUpGlass" resultType="java.lang.Integer">
+        select t.line
+        from (
+                 select line,
+                        COUNT(glass_id)                               as total_count,
+                        SUM(case task_state when 2 then 1 else 0 end) as real_count
+                 from big_storage_cage_feed_task
+                 where task_state in (1, 2)
+                   and deleted = 0
+                   and (target_slot = 0 or target_slot is null)
+                 group by line
+             ) t
+        where t.total_count = t.real_count
+    </select>
+    <select id="querySitToUpRemainWidth" resultMap="bigStorageDTO">
+        SELECT CAST
+                   (5000 - SUM(MAX_LENGTH + #{glassGap}) AS INT) AS REMAIN_WIDTH,
+               COUNT(GLASS_ID)                                   AS GLASS_COUNT
+        FROM (
+                 SELECT GLASS_ID,
+                        CASE
+
+                            WHEN WIDTH >= HEIGHT THEN
+                                WIDTH
+                            ELSE HEIGHT
+                            END MAX_LENGTH
+                 FROM BIG_STORAGE_CAGE_FEED_TASK
+                 WHERE LINE = #{line}
+                   AND (target_slot = 0 or target_slot is null)
+                   AND TASK_STATE IN (1, 2)
+                   and deleted = 0
+             ) T
+    </select>
+
+</mapper>
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageHistoryTaskMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageHistoryTaskMapper.xml
new file mode 100644
index 0000000..8cc0c74
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageHistoryTaskMapper.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.bigstoragecagetask.mapper.BigStorageCageHistoryTaskMapper">
+
+    <resultMap id="baseMap" type="com.mes.largenscreen.entity.DailyProductionVO">
+        <result column="date" property="date"/>
+        <result column="count_out_one" property="countOutOne"/>
+        <result column="total_area_out_one" property="totalAreaOutOne"/>
+        <result column="count_out_two" property="countOutTwo"/>
+        <result column="total_area_out_two" property="totalAreaOutTwo"/>
+        <result column="count_in" property="countIn"/>
+        <result column="total_area_in" property="totalAreaIn"/>
+        <result column="count_out" property="countOut"/>
+        <result column="total_area_out" property="totalAreaOut"/>
+        <result column="hollow_count_out_one" property="hollowCountOutOne"/>
+        <result column="hollow_total_area_out_one" property="hollowTotalAreaOutOne"/>
+        <result column="hollow_count_out_two" property="hollowCountOutTwo"/>
+        <result column="hollow_total_area_out_two" property="hollowTotalAreaOutTwo"/>
+    </resultMap>
+
+    <select id="queryBigDailyProduction" resultMap="baseMap">
+        with big_storage_in_temp as (
+        select count(t.glass_id) as count_in, round(sum(t1.width * t1.height) / 1000000, 2) as total_area_in
+        from big_storage_cage_history_task t
+        INNER JOIN glass_info t1 on t.glass_id = t1.glass_id
+        where t.task_type = 1
+        <if test="beginDate != null and beginDate != ''">
+            AND STR_TO_DATE( t.create_time, '%Y-%m-%d' ) BETWEEN #{beginDate}
+            AND #{endDate}
+        </if>
+        ),
+        big_storage_out_temp as (
+        select count(t.glass_id) as count_out, round(sum(t1.width * t1.height) / 1000000, 2) as total_area_out
+        from big_storage_cage_history_task t
+        INNER JOIN glass_info t1 on t.glass_id = t1.glass_id
+        where t.task_type = 2
+        <if test="beginDate != null and beginDate != ''">
+            AND STR_TO_DATE( t.create_time, '%Y-%m-%d' ) BETWEEN #{beginDate}
+            AND #{endDate}
+        </if>
+        )
+        select *
+        from big_storage_in_temp
+        INNER join big_storage_out_temp on 1 = 1
+
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageMapper.xml
new file mode 100644
index 0000000..4fe303e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageMapper.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.bigstorage.mapper.BigStorageCageMapper">
+    <resultMap id="downStorageCageDetails" type="com.mes.bigstorage.entity.dto.BigStorageSummaryDTO">
+        <result column="engineer_id" property="engineerId"/>
+        <result column="countTemp" property="countTemp"/>
+        <result column="countGlass" property="countGlass"/>
+        <result column="area" property="area"/>
+        <result column="fullTemp" property="fullTemp"/>
+        <result column="countSlot" property="countSlot"/>
+        <result column="percent" property="percent"/>
+    </resultMap>
+
+
+    <select id="queryFreeDeviceByUsed" resultType="java.lang.Integer">
+        SELECT T.DEVICE_ID
+        FROM BIG_STORAGE_CAGE T
+                 LEFT JOIN (SELECT * FROM BIG_STORAGE_CAGE_DETAILS WHERE STATE NOT IN (101, 8, 9)) T1
+                           ON T.SLOT = T1.SLOT
+        WHERE T.MAX_THICKNESS >= #{thickness}
+          AND T.ENABLE_STATE = 1
+        GROUP BY T.DEVICE_ID
+        ORDER BY min(T.MAX_THICKNESS),
+                 COUNT(DISTINCT T1.ENGINEER_ID), COUNT(DISTINCT T1.TEMPERING_LAYOUT_ID),
+                 COUNT(DISTINCT T1.SLOT)
+    </select>
+
+    <select id="selectBigStorageSummary" resultType="com.mes.bigstorage.entity.dto.BigStorageSummaryDTO">
+        SELECT
+            engineer_id as engineerId,
+            count( tempering_layout_id ) AS countTemp,
+            sum( countGlass ) AS countGlass,
+            round( sum( area ), 2 ) as area,
+            sum( fullTemp ) AS fullTemp,
+            sum( countSlot ) AS countSlot,
+            sum( countGlass )/ sum( countGlass1 )* 100 AS percent,
+            thickness
+        FROM
+            (
+                SELECT
+                    bscd.engineer_id,
+                    bscd.tempering_layout_id,
+                    count(*) AS countGlass,
+                    sum( bscd.width * bscd.height / 1000000 ) AS area,
+                    IF
+                        ( gi.countGlass1 = count(*), 1, 0 ) AS fullTemp,
+                    count( DISTINCT bscd.slot ) AS countSlot,
+                    countGlass1,
+                    gi.thickness
+                FROM
+                    big_storage_cage_details bscd
+                        INNER JOIN ( SELECT engineer_id, tempering_layout_id, count(*) AS countGlass1, thickness FROM glass_info GROUP BY engineer_id, tempering_layout_id ) gi ON bscd.engineer_id = gi.engineer_id
+                        AND bscd.tempering_layout_id = gi.tempering_layout_id
+                WHERE
+                    bscd.state = 100
+                GROUP BY
+                    bscd.engineer_id,
+                    bscd.tempering_layout_id
+            ) AS cageSummary
+        GROUP BY
+            engineer_id
+        ORDER BY
+            percent DESC,
+            countSlot DESC,
+            thickness DESC
+    </select>
+    <select id="queryPieChart" resultType="com.mes.largenscreen.entity.PieChartVO">
+        SELECT
+            round(sum( CASE WHEN e.station_cell = 5 THEN 1 ELSE 0 END ),2) as oneCompletedQuantity,
+            round(sum( CASE WHEN e.station_cell = 5 THEN bscd.width*bscd.height/1000000 ELSE 0 END ),2) as oneCompletedArea,
+            round(sum( CASE WHEN e.station_cell = 6 THEN 1 ELSE 0 END ),2) as twoCompletedQuantity,
+            round(sum( CASE WHEN e.station_cell = 6 THEN bscd.width*bscd.height/1000000 ELSE 0 END ),2) as twoCompletedArea,
+            round(sum( CASE WHEN e.station_cell = 5 and bscd.device_id is null THEN 1 ELSE 0 END ),2) as oneUncompletedQuantity,
+            round(sum( CASE WHEN e.station_cell = 5 and bscd.device_id is null THEN gi.width*gi.height/1000000 ELSE 0 END ),2) as oneUncompletedArea,
+            round(sum( CASE WHEN e.station_cell = 6 and bscd.device_id is null THEN 1 ELSE 0 END ),2) as twoUncompletedQuantity,
+            round(sum( CASE WHEN e.station_cell = 6 and bscd.device_id is null THEN gi.width*gi.height/1000000 ELSE 0 END ),2) as twoUncompletedArea
+        FROM
+            glass_info gi
+                left join big_storage_cage_details bscd ON gi.glass_id = bscd.glass_id
+                left join engineering e on gi.engineer_id=e.engineer_id
+        WHERE
+            date(e.create_time) = date(now())
+    </select>
+
+
+    <!--    <select id="queryFreeDeviceByNotUsed" resultType="java.lang.Integer">-->
+    <!--        SELECT T.DEVICE_ID-->
+    <!--        FROM BIG_STORAGE_CAGE T-->
+    <!--                 LEFT JOIN (SELECT * FROM BIG_STORAGE_CAGE_DETAILS WHERE STATE NOT IN (101, 8, 9)) T1-->
+    <!--                           ON T.SLOT = T1.SLOT-->
+    <!--        WHERE T.MAX_THICKNESS >= #{thickness}-->
+    <!--          AND T.ENABLE_STATE = 1-->
+    <!--        GROUP BY T.DEVICE_ID-->
+    <!--        ORDER BY COUNT(DISTINCT T1.ENGINEER_ID)-->
+    <!--                 COUNT(DISTINCT T1.TEMPERING_LAYOUT_ID),-->
+    <!--                 COUNT(DISTINCT T.SLOT) - COUNT(DISTINCT T1.SLOT) DESC-->
+    <!--    </select>-->
+</mapper>
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageOutTaskMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageOutTaskMapper.xml
new file mode 100644
index 0000000..7e9084d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageOutTaskMapper.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.bigstoragetask.mapper.BigStorageCageOutTaskMapper">
+
+    <insert id="saveBatch">
+        INSERT INTO big_storage_cage_out_task ( glass_id, start_slot, end_slot, train_number, serial_number, width,
+        height, task_state,
+        deleted )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (#{item.glassId}, #{item.startSlot}, #{item.endSlot}, #{item.trainNumber}, #{item.serialNumber},
+            #{item.width}, #{item.height},
+            #{item.taskState},0)
+        </foreach>
+    </insert>
+</mapper>
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageGlassRelationInfoMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageGlassRelationInfoMapper.xml
new file mode 100644
index 0000000..88cf822
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageGlassRelationInfoMapper.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.bigstorage.mapper.BigStorageGlassRelationInfoMapper">
+
+    <select id="queryNeedOutGlassId" resultType="java.lang.String">
+        select glass_id
+        from glass_info
+        where (engineer_id, tempering_layout_id, tempering_feed_sequence) in (
+            SELECT engineer_id, tempering_layout_id, tempering_feed_sequence
+            FROM big_storage_glass_relation_info
+            WHERE (engineer_id, tempering_layout_id, virtual_slot) =
+                  (SELECT engineer_id, tempering_layout_id, virtual_slot
+                   FROM big_storage_glass_relation_info
+                   WHERE engineer_id = #{engineerId}
+                     and tempering_layout_id = #{temperingLayoutId}
+                     and tempering_feed_sequence = #{temperingFeedSequence}
+                  )
+        )
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java
new file mode 100644
index 0000000..c7451b1
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java
@@ -0,0 +1,322 @@
+package com.mes;
+
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.mes.bigstorage.entity.BigStorageCage;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.service.BigStorageCageDetailsService;
+import com.mes.bigstorage.service.BigStorageCageService;
+import com.mes.bigstoragetask.mapper.BigStorageCageFeedTaskMapper;
+import com.mes.common.config.Const;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
+import com.mes.job.PlcStorageCageTask;
+import com.mes.pp.entity.ReportingWork;
+import com.mes.pp.entity.ReportingWorkDetail;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/3/27 16:37
+ * @Description:
+ */
+@Slf4j
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = CacheVerticalClassModuleApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+public class CacheVerticalGlassModuleApplicationTest {
+
+    @Autowired
+    BigStorageCageService bigStorageCageService;
+    @Autowired
+    PlcStorageCageTask plcStorageCageTask;
+    @Autowired
+    BigStorageCageDetailsService bigStorageCageDetailsService;
+    @Autowired
+    DamageService damageService;
+    @Autowired
+    EdgGlassTaskInfoService edgGlassTaskInfoService;
+
+//    @Autowired
+//    BigStorageCageFeedTaskMapper bigStorageCageFeedTaskMapper;
+
+    @Test
+    public void testInsertSlot() {
+        List<BigStorageCage> list = new ArrayList();
+        for (int j = 1; j <= 5; j++) {
+            for (int i = 1 + (55 * (j - 1)); i <= 55 * j; i++) {
+                BigStorageCage cage = new BigStorageCage();
+                cage.setDeviceId(j);
+                cage.setSlot(i);
+                cage.setMinThickness(4);
+                cage.setMaxThickness(6);
+                cage.setEnableState(1);
+                cage.setRemainWidth(5000);
+                list.add(cage);
+            }
+        }
+        for (int i = 276; i <= 300; i++) {
+            BigStorageCage cage = new BigStorageCage();
+            cage.setDeviceId(6);
+            cage.setSlot(i);
+            cage.setMinThickness(8);
+            cage.setMaxThickness(12);
+            cage.setEnableState(1);
+            cage.setRemainWidth(5000);
+            list.add(cage);
+        }
+        for (int i = 301; i <= 330; i++) {
+            BigStorageCage cage = new BigStorageCage();
+            cage.setDeviceId(7);
+            cage.setSlot(i);
+            cage.setMinThickness(8);
+            cage.setMaxThickness(12);
+            cage.setEnableState(1);
+            cage.setRemainWidth(5000);
+            list.add(cage);
+        }
+        for (int i = 331; i <= 355; i++) {
+            BigStorageCage cage = new BigStorageCage();
+            cage.setDeviceId(8);
+            cage.setSlot(i);
+            cage.setMinThickness(8);
+            cage.setMaxThickness(12);
+            cage.setEnableState(1);
+            cage.setRemainWidth(5000);
+            list.add(cage);
+        }
+        for (int i = 356; i <= 380; i++) {
+            BigStorageCage cage = new BigStorageCage();
+            cage.setDeviceId(9);
+            cage.setSlot(i);
+            cage.setMinThickness(15);
+            cage.setMaxThickness(19);
+            cage.setEnableState(1);
+            cage.setRemainWidth(5000);
+            list.add(cage);
+        }
+        bigStorageCageService.saveBatch(list);
+    }
+
+    @Test
+    public void testFindPath() {
+        log.info("瀹屾暣璺緞锛歿}", Arrays.asList("123"));
+    }
+
+    @Test
+    public void outGlass() {
+        log.info("瀹屾暣璺緞锛歿}", bigStorageCageService.outGlass());
+    }
+
+    @Test
+    public void plcToHomeEdgOutTask() {
+        plcStorageCageTask.plcToHomeEdgOutTask();
+    }
+
+    @Test
+    public void plcToHomeEdgFreeCarTask() {
+        plcStorageCageTask.plcToHomeEdgFreeCarTask();
+    }
+
+    @Test
+    public void plcStorageCageTask() {
+        plcStorageCageTask.plcToHomeEdgScan();
+
+    }
+
+
+
+    @Test
+    public void computeTargetByLine() {
+        plcStorageCageTask.computeTargetByLine(2001);
+    }
+
+    @Test
+    public void judgeGlassTypeStatus() {
+        plcStorageCageTask.judgeGlassTypeStatus("P24060403|6|7", Const.A09_OUT_TARGET_POSITION, "mesD03Address");
+    }
+
+    @Test
+    public void getStartLine() {
+        Integer startLine = plcStorageCageTask.getStartLine();
+        log.info("---------{}", startLine);
+    }
+
+    @Test
+    public void selectBigStorageCageUsage() {
+        log.info("鑾峰彇澶х悊鐗囩淇℃伅锛歿}", bigStorageCageService.selectBigStorageCageUsage());
+    }
+
+    @Test
+    public void selectBigStorageCageDetails() {
+        log.info("鑾峰彇澶х悊鐗囩淇℃伅锛歿}", bigStorageCageDetailsService.selectBigStorageCageDetails("P24060403|3|6"));
+    }
+
+    @Test
+    public void insertDamage() {
+//        Damage damage=new Damage();
+//        damage.setGlassId("P24060403|3|6");
+//        damage.setLine(2001);
+//        damage.setWorkingProcedure("鍐峰姞宸�");
+//        damage.setRemark("");
+//        damage.setStatus(2);
+//        damageService.insertDamage(damage);
+        Damage damage=damageService.getOne(
+                new LambdaQueryWrapper<Damage>()
+                .eq(Damage::getGlassId,"P24071503|12|4")
+        );
+        damageService.submitReport(damage);
+    }
+
+    @Test
+    public void updateOutGlassStateTask() {
+        plcStorageCageTask.updateOutGlassStateTask();
+    }
+
+    @Test
+    public void chaxun(){
+        List<EdgGlassTaskInfo> edgGlassTaskInfoList = edgGlassTaskInfoService.list(new QueryWrapper<EdgGlassTaskInfo>()
+                .select("Top 1 *")
+                .eq("glass_id", "P24072402|1|13")
+        );
+        log.info("鍦ㄥ昂瀵歌〃涓幏鍙栫幓鐠冧俊鎭瘂}", edgGlassTaskInfoList);
+    }
+
+    @Test
+    public void deleteByGlassId(){
+        damageService.deleteByGlassId("P24081203|2|5");
+    }
+
+    @Test
+    public void testttt(){
+        List<Integer> deviceUsedList = bigStorageCageService.queryFreeDeviceByUsed(6);
+        List<Integer> deviceUseds = deviceUsedList;
+        List<BigStorageCageDetails> engineerCount1 = bigStorageCageDetailsService.list(
+                new LambdaQueryWrapper<BigStorageCageDetails>()
+                        .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT,Const.GLASS_STATE_DAMAGE,Const.GLASS_STATE_TAKE)
+                        .select(BigStorageCageDetails::getEngineerId)
+                        .groupBy(BigStorageCageDetails::getEngineerId)
+                        .between(BigStorageCageDetails::getDeviceId, 1, 5)
+        );
+        List<BigStorageCageDetails> engineerCount2 = bigStorageCageDetailsService.list(
+                new LambdaQueryWrapper<BigStorageCageDetails>()
+                        .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT,Const.GLASS_STATE_DAMAGE,Const.GLASS_STATE_TAKE)
+                        .select(BigStorageCageDetails::getEngineerId)
+                        .groupBy(BigStorageCageDetails::getEngineerId)
+                        .between(BigStorageCageDetails::getDeviceId, 6, 8)
+        );
+        if (engineerCount1.size() > engineerCount2.size()) {
+            deviceUsedList.removeIf(device -> device < 6);
+        } else {
+            deviceUsedList.removeIf(device -> device > 5);
+        }
+        if (CollectionUtils.isEmpty(deviceUsedList)) {
+            deviceUsedList = deviceUseds;
+        }
+        log.info("zhi:{}",deviceUsedList);
+    }
+
+
+    @Test
+    public void ca(){
+        try {
+            // 鐩爣绯荤粺鐨凙PI URL
+            String url = "http://192.168.3.119:8086/reportingWork/mesSaveReportingWorkWorn";
+            URL obj = new URL(url);
+            HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+
+            // 璁剧疆璇锋眰鏂规硶鍜岃姹傚ご
+            con.setRequestMethod("POST");
+            con.setRequestProperty("Content-Type", "application/json; utf-8");
+            con.setRequestProperty("Accept", "application/json");
+            con.setDoOutput(true);
+
+            // 鍒涘缓 JSON 瀵硅薄
+            JSONObject result = new JSONObject();
+
+            ReportingWork reportingWork = new ReportingWork();
+            reportingWork.setOrderId("NG24042301");
+            reportingWork.setProductionId("NG24042301A");
+            reportingWork.setProcessId("NG24042301A001");
+            reportingWork.setDeviceName("纾ㄨ竟鏈�");
+            reportingWork.setThisProcess("鍒囧壊");
+            reportingWork.setNextProcess("纾ㄨ竟");
+            reportingWork.setThisCompletedQuantity(1);
+            reportingWork.setThisWornQuantity(0);
+            reportingWork.setClasses("鏃╃彮");
+            reportingWork.setReportingWorkTime(LocalDateTime.now());
+            reportingWork.setTeamsGroupsName("灏忓粬涓�鍙�");
+            reportingWork.setCreator("灏忓粬");
+
+            List<ReportingWorkDetail> reportingWorkDetails = new ArrayList<>();
+            ReportingWorkDetail reportingWorkDetail = new ReportingWorkDetail();
+            reportingWorkDetail.setTechnologyNumber(1);
+            reportingWorkDetail.setOrderNumber(1);
+            reportingWorkDetail.setCompletedQuantity(1);
+            reportingWorkDetail.setBreakageQuantity(0);
+            reportingWorkDetails.add(reportingWorkDetail);
+
+            ObjectMapper objectMapper = new ObjectMapper();
+
+            // 灏� ReportingWork 杞崲涓� JSONObject
+            JSONObject reportingWorkJson = new JSONObject(objectMapper.writeValueAsString(reportingWork));
+            reportingWorkJson.put("reportingWorkTime", reportingWork.getReportingWorkTime().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
+            // 灏� ReportingWorkDetail 鍒楄〃杞崲涓� JSONArray
+            JSONArray detailsJsonArray = new JSONArray(objectMapper.writeValueAsString(reportingWorkDetails));
+
+            // 灏� JSON 瀵硅薄鍜屾暟缁勬坊鍔犲埌缁撴灉瀵硅薄涓�
+            result.put("title", reportingWorkJson);
+            result.put("detail", detailsJsonArray);
+            result.put("type", 0);
+            result.put("userId", "admin");
+            result.put("userName", "admin");
+            result.put("qualityInsStatus", 0);
+
+            // 灏� result 瀵硅薄杞崲涓哄瓧绗︿覆
+            String jsonInputString = result.toString();
+            System.out.println("jsonInputString : " + result);
+            // 鍙戦�佽姹�
+            try (OutputStream os = con.getOutputStream()) {
+                byte[] input = jsonInputString.getBytes("utf-8");
+                os.write(input, 0, input.length);
+            }
+
+            // 鑾峰彇鍝嶅簲鐮�
+            int responseCode = con.getResponseCode();
+            System.out.println("Response Code : " + responseCode);
+
+            // 鑾峰彇鍝嶅簲鍐呭
+            try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8"))) {
+                StringBuilder response = new StringBuilder();
+                String inputLine;
+                while ((inputLine = in.readLine()) != null) {
+                    response.append(inputLine);
+                }
+                System.out.println("Response Body: " + response.toString());
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/pom.xml b/hangzhoumesParent/moduleService/GlassStorageModule/pom.xml
new file mode 100644
index 0000000..d0ed157
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/pom.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>moduleService</artifactId>
+        <groupId>com.mes</groupId>
+        <version>1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>glassStorage</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml</artifactId>
+            <version>5.2.4</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+            <version>2.8.9</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.mes</groupId>
+            <artifactId>servicebase</artifactId>
+            <version>1.0-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/GlassStorageApplication.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/GlassStorageApplication.java
new file mode 100644
index 0000000..1d461dc
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/GlassStorageApplication.java
@@ -0,0 +1,28 @@
+package com.mes;
+
+import lombok.extern.slf4j.Slf4j;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/7 14:36RRRR
+ * @Description:
+ */
+@Slf4j
+@SpringBootApplication
+@EnableSwagger2WebMvc
+@EnableDiscoveryClient
+@MapperScan(basePackages = "com.mes.*.mapper")
+@EnableScheduling
+public class GlassStorageApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(GlassStorageApplication.class, args);
+    }
+
+}
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/config/S7Config.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/config/S7Config.java
new file mode 100644
index 0000000..2eaf886
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/config/S7Config.java
@@ -0,0 +1,21 @@
+package com.mes.config;
+
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer;
+import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/4/30 13:50
+ * @Description:
+ */
+@Configuration
+public class S7Config {
+    @Bean
+    public S7Serializer s7Serializer() {
+        S7PLC s7PLC = new S7PLC(EPlcType.S1200, "10.153.19.192");
+        return S7Serializer.newInstance(s7PLC);
+    }
+}
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassPushMessage.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassPushMessage.java
new file mode 100644
index 0000000..b7e9966
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassPushMessage.java
@@ -0,0 +1,85 @@
+package com.mes.job;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.common.config.Const;
+import com.mes.order.entity.dto.OrderDTO;
+import com.mes.order.service.OrdersService;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
+import com.mes.rawglassstation.entity.RawGlassStorageStation;
+import com.mes.rawglassstation.service.RawGlassStorageStationService;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
+import com.mes.rawglasstask.service.RawGlassStorageTaskService;
+import com.mes.tools.WebSocketServer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @author wangfei
+ */
+@Slf4j
+@Component
+public class RawGlassPushMessage {
+
+    @Resource
+    private RawGlassStorageStationService rawGlassStorageStationService;
+
+    @Resource
+    private RawGlassStorageTaskService rawGlassStorageTaskService;
+
+    @Resource
+    private RawGlassStorageDetailsService rawGlassStorageDetailsService;
+
+    @Resource
+    private OrdersService ordersService;
+
+    @Scheduled(fixedDelay = 2000)
+    public void sendRawGlassMessage() {
+        log.info("鍙戦�佷换鍔′俊鎭拰鏋跺瓙淇℃伅");
+        JSONObject jsonObject = new JSONObject();
+        List<RawGlassStorageDetails> rawStationDetailsList =
+                rawGlassStorageStationService.listRawGlassDetails();
+        List<RawGlassStorageTask> tasks = rawGlassStorageTaskService.listRawGlassTask();
+        jsonObject.append("rawStationDetailsList", rawStationDetailsList);
+        jsonObject.append("tasks", tasks);
+        List<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("rawGlass");
+        if (CollectionUtil.isNotEmpty(sendwServer)) {
+            sendwServer.stream().forEach(e -> {
+                e.sendMessage(String.valueOf(jsonObject));
+            });
+        }
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void largenScreen() {
+        log.info("鍙戦�佷换鍔′俊鎭拰鏋跺瓙淇℃伅");
+        JSONObject jsonObject = new JSONObject();
+        MPJLambdaWrapper<RawGlassStorageDetails> wrapper = new MPJLambdaWrapper<>();
+        wrapper.select(RawGlassStorageStation::getSlot)
+                .select("ifnull(remain_quantity, 0) as remain_quantity")
+                .rightJoin(RawGlassStorageStation.class, on -> on.eq(RawGlassStorageStation::getSlot, RawGlassStorageDetails::getSlot)
+                        .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN))
+                .orderByAsc(RawGlassStorageStation::getSlot);
+        List<RawGlassStorageDetails> rawGlassStorageDetailList = rawGlassStorageDetailsService.list(wrapper);
+        jsonObject.append("rawGlassStorageDetailList", rawGlassStorageDetailList);
+
+        List<OrderDTO> orderDTOS = ordersService.selectOrderPercent();
+        jsonObject.append("orderDTOS", orderDTOS);
+
+        List<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("largenScreen");
+        if (CollectionUtil.isNotEmpty(sendwServer)) {
+            sendwServer.stream().forEach(e -> {
+                e.sendMessage(String.valueOf(jsonObject));
+            });
+        }
+    }
+}
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
new file mode 100644
index 0000000..fe3a539
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
@@ -0,0 +1,603 @@
+package com.mes.job;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer;
+import com.kangaroohy.milo.model.ReadWriteEntity;
+import com.kangaroohy.milo.service.MiloService;
+import com.mes.common.config.Const;
+import com.mes.engineering.entity.Engineering;
+import com.mes.engineering.mapper.EngineeringMapper;
+import com.mes.opctask.entity.LoadGlassDeviceTask;
+import com.mes.opctask.service.LoadGlassDeviceTaskService;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
+import com.mes.rawglassstation.entity.RawGlassStorageStation;
+import com.mes.rawglassstation.service.RawGlassStorageStationService;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
+import com.mes.rawglasstask.service.RawGlassStorageTaskService;
+import com.mes.s7.entity.S7Data;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import com.mes.uppattenusage.entity.vo.UpPattenUsageVO;
+import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/10/11 16:13
+ * @Description:
+ */
+@Slf4j
+@Component
+public class RawGlassTask {
+
+    @Autowired
+    private RawGlassStorageDetailsService rawGlassStorageDetailsService;
+
+    @Autowired
+    private RawGlassStorageTaskService rawGlassStorageTaskService;
+    @Autowired
+    private RawGlassStorageStationService rawGlassStorageStationService;
+
+    @Resource
+    private EngineeringMapper engineeringMapper;
+    @Resource
+    private UpPattenUsageMapper upPattenUsageMapper;
+
+    @Resource
+    private LoadGlassDeviceTaskService loadGlassDeviceTaskService;
+
+    @Autowired(required = false)
+    private MiloService miloService;
+
+    @Autowired(required = false)
+    S7Serializer s7Serializer;
+
+
+    private static final String LOAD_GLASS_DEVICE_ONE_TASK = "load_glass_device_one_task";
+
+    private static final String LOAD_GLASS_DEVICE_TWO_TASK = "load_glass_device_two_task";
+
+    private static final List<Integer> LOAD_STATION_01 = Arrays.asList(101, 102);
+    private static final List<Integer> LOAD_STATION_02 = Arrays.asList(103, 104);
+    private static final List<Integer> LOAD_STATION_ALL = Arrays.asList(101, 102, 103, 104);
+    private static final Integer LEFTING_01 = 98;
+    private static final Integer LEFTING_02 = 99;
+    private static final Integer LOAD_GLASS_ONE_DEVICE = 5;
+    private static final Integer LOAD_GLASS_TWO_DEVICE = 6;
+
+    @Scheduled(fixedDelay = 1000)
+    public void rawStorageTask() throws Exception {
+        S7Data S7DataWL1 = s7Serializer.read(S7Data.class);
+        String requestWord = S7DataWL1.getRequest().toString();
+        String confireWord = S7DataWL1.getConfirmation().toString();
+        String reportWord = S7DataWL1.getReportWord().toString();
+        String taskWord = S7DataWL1.getTaskWord().toString();
+        String requestValue = requestWord;
+//        ReadWriteEntity requestWord = miloService.readFromOpcUa("CC.CC.request");
+//        ReadWriteEntity confireWord = miloService.readFromOpcUa("CC.CC.confirmation");
+//        ReadWriteEntity reportWord = miloService.readFromOpcUa("CC.CC.reportWord");
+//        ReadWriteEntity taskWord = miloService.readFromOpcUa("CC.CC.taskWord");
+//        String requestValue = requestWord.getValue() + "";
+        if ("0".equals(requestValue)) {
+            if ("1".equals(confireWord) && "0".equals(reportWord)) {
+//            if ("1".equals(confireWord.getValue() + "") && "0".equals(reportWord.getValue() + "")) {
+                S7Data s7Data = new S7Data();
+                s7Data.setConfirmation((short) 0);
+                s7Serializer.write(s7Data);
+//                List<ReadWriteEntity> list = new ArrayList<>();
+//                list.add(generateReadWriteEntity("CC.CC.confirmation", 0));
+//                miloService.writeToOpcWord(list);
+            }
+            if ("1".equals(taskWord)) {
+//          if ("1".equals(taskWord.getValue() + "")) {
+                S7Data s7Data = new S7Data();
+                s7Data.setTaskWord((short) 0);
+                s7Data.setStartSlot((short) 0);
+                s7Data.setEndSlot((short) 0);
+                s7Serializer.write(s7Data);
+//                List<ReadWriteEntity> list = new ArrayList<>();
+//                list.add(generateReadWriteEntity("CC.CC.taskWord", 0));
+//                list.add(generateReadWriteEntity("CC.CC.startSlot", 0));
+//                list.add(generateReadWriteEntity("CC.CC.endSlot", 0));
+//                miloService.writeToOpcWord(list);
+            }
+            return;
+        }
+        if (!"1".equals(requestValue)) {
+            log.info("鏃犺姹�");
+            return;
+        }
+        //鏄惁鏈夋鍦ㄦ墽琛岀殑浠诲姟
+        boolean flag = isHasRunningTask();
+        if (flag) {
+            log.info("鏈夋湭瀹屾垚鐨勪换鍔★紝缁撴潫");
+            return;
+        }
+        //todo:浼樺厛杩涗笂鐗囨満浣�
+        flag = rawGlassDispatchTask();
+        if (flag) {
+            log.info("鎵ц璋冨害浠诲姟锛岀粨鏉�");
+            return;
+        }
+        flag = outboundTask();
+        if (flag) {
+            log.info("鎵ц鍑哄簱浠诲姟锛岀粨鏉�");
+            return;
+        }
+        flag = warehouseTask();
+        if (flag) {
+            log.info("鎵ц鍏ュ簱浠诲姟");
+            return;
+        }
+        flag = shelfResetTask();
+        if (flag) {
+            log.info("鎵ц澶嶄綅浠诲姟");
+            return;
+        }
+        log.info("鏃犱换鍔℃墽琛岋紝缁撴潫");
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void rawStorageInCar() throws Exception {
+        S7Data S7DataWL1 = s7Serializer.read(S7Data.class);
+        String value = S7DataWL1.getInCar().toString();
+//        ReadWriteEntity entity = miloService.readFromOpcUa("CC.CC.inCar");
+//        String value = entity.getValue() + "";
+        if (!"1".equals(value)) {
+            log.info("澶ц溅涓婃病鏈夋灦瀛�");
+            return;
+        }
+        //鏌ヨ浠诲姟
+        RawGlassStorageDetails one = rawGlassStorageDetailsService.getOne(new LambdaQueryWrapper<RawGlassStorageDetails>()
+                .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
+        if (one == null) {
+            log.info("娌℃湁姝e湪鎵ц鐨勪换鍔�");
+            return;
+        }
+        rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getId, one.getId())
+                .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_CAR));
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void rawStorageFinish() throws Exception {
+        S7Data S7DataWL1 = s7Serializer.read(S7Data.class);
+        String value = S7DataWL1.getReportWord().toString();
+//        ReadWriteEntity entity = miloService.readFromOpcUa("CC.CC.reportWord");
+//        String value = entity.getValue() + "";
+        if ("0".equals(value)) {
+            log.info("褰撳墠浠诲姟鏈眹鎶ワ紝缁撴潫鏈浠诲姟");
+            return;
+        }
+        RawGlassStorageDetails details = rawGlassStorageDetailsService.getOne(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_CAR));
+        if (null == details) {
+            log.info("鏃犳墽琛屼腑鐨勪换鍔�");
+            return;
+        }
+        RawGlassStorageTask task = rawGlassStorageTaskService.getOne(new LambdaQueryWrapper<RawGlassStorageTask>()
+                .in(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_NEW));
+        RawGlassStorageDetails targetDetails = rawGlassStorageDetailsService.generateDetails(details, task.getEndSlot());
+        int deviceId = details.getDeviceId();
+        Integer taskType = task.getTaskType();
+        if ("1".equals(value)) {
+            log.info("灏嗚鎯呰〃鐨勭姸鎬佹敼涓哄凡鍑哄簱");
+            rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                    .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT)
+                    .eq(RawGlassStorageDetails::getSlot, task.getStartSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_CAR));
+            log.info("浠诲姟鐘舵�佸凡鏇存敼涓猴細宸插畬鎴�");
+            rawGlassStorageTaskService.update(new LambdaUpdateWrapper<RawGlassStorageTask>()
+                    .eq(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                    .set(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_SUCCESS));
+            switch (taskType) {
+                case 1:
+                case 3:
+                    log.info("1銆佸叆搴擄紝3銆佽皟搴︿换鍔°�倇}", taskType);
+                    if (targetDetails.getRemainQuantity() > 0) {
+                        rawGlassStorageDetailsService.save(targetDetails);
+                    }
+                    break;
+                case 2:
+                case 4:
+                    log.info("2銆佸嚭鐗�,4銆佸叆搴撹姹傘�倇}", taskType);
+                    targetDetails = new RawGlassStorageDetails();
+                    targetDetails.setSlot(task.getEndSlot());
+                    targetDetails.setDeviceId(deviceId);
+                    targetDetails.setShelf(task.getStartSlot());
+                    targetDetails.setState(Const.RAW_GLASS_STATE_IN);
+                    rawGlassStorageDetailsService.save(targetDetails);
+                    break;
+                default:
+                    break;
+            }
+        } else {
+            if (taskType.equals(Const.RAW_GLASS_TASK_TYPE_IN_REQUEST)) {
+                rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                        .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT)
+                        .eq(RawGlassStorageDetails::getSlot, task.getStartSlot())
+                        .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING, Const.RAW_GLASS_STATE_CAR));
+            } else {
+                rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                        .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+                        .eq(RawGlassStorageDetails::getSlot, task.getStartSlot())
+                        .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING, Const.RAW_GLASS_STATE_CAR));
+            }
+            rawGlassStorageTaskService.update(new LambdaUpdateWrapper<RawGlassStorageTask>()
+                    .eq(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                    .set(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_FAILURE));
+
+        }
+        S7Data s7Data = new S7Data();
+        s7Data.setConfirmation((short) 1);
+        s7Serializer.write(s7Data);
+//        List<ReadWriteEntity> list = new ArrayList<>();
+//        list.add(generateReadWriteEntity("CC.CC.confirmation", 1));
+//        miloService.writeToOpcWord(list);
+    }
+
+    private boolean isHasRunningTask() {
+        RawGlassStorageTask task = rawGlassStorageTaskService.getOne(new LambdaQueryWrapper<RawGlassStorageTask>()
+                .in(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_NEW));
+        return task == null ? Boolean.FALSE : Boolean.TRUE;
+    }
+
+    /**
+     * 鍘熺墖璋冨害锛�1銆佹煡璇㈠伐绋嬪師鐗囪〃锛屾寜鐓ч『搴忓皢鍘熺墖鏀惧叆涓婄墖1鍙蜂綅锛屽悗缁師鐗囨斁涓婄墖2鍙蜂綅锛屽嚭鐜板昂瀵告浛鎹紝鍒ゆ柇鍘熶笂鐗囦綅鏄惁鏈夌幓鐠冿紝鏈� 鍏堝嚭鍚庤繘锛屾棤 鐩存帴杩涚墖
+     */
+    public boolean rawGlassDispatchTask() throws Exception {
+        //鏌ヨ褰撳墠绯荤粺姝e湪鎵ц鐨勮鍗�
+        List<Engineering> engineeringList = engineeringMapper.selectList(new LambdaQueryWrapper<Engineering>()
+                .eq(Engineering::getState, Const.ENGINEERING_RUNNING).last("order by id"));
+        if (CollectionUtils.isEmpty(engineeringList)) {
+            log.info("娌℃湁姝e湪鎵ц鐨勫伐绋�");
+            return false;
+        }
+        for (Engineering engineering : engineeringList) {
+            boolean flag = rawGlassDispatchByEngineering(engineering.getStationCell(), engineering.getEngineerId());
+            if (flag) {
+                return flag;
+            }
+        }
+        return Boolean.FALSE;
+
+
+    }
+
+    /**
+     * 鍑哄簱浠诲姟锛�1銆佺偣鍑哄簱锛岀珛椹敓鎴愬嚭鐗囦换鍔� 2銆佺偣鍑哄簱淇敼宸ヤ綅璇︽儏鍐呯殑鐘舵�佷负寰呭嚭搴擄紝瀹氭椂浠诲姟鎵弿鐢熸垚鍑哄簱浠诲姟
+     */
+    public boolean outboundTask() throws Exception {
+        List<RawGlassStorageDetails> rawGlassList = rawGlassStorageDetailsService.list(new LambdaQueryWrapper<RawGlassStorageDetails>()
+                .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_WAIT_OUT)
+                .inSql(RawGlassStorageDetails::getSlot, "select slot from raw_glass_storage_station where enable_state = 1"));
+        if (CollectionUtil.isEmpty(rawGlassList)) {
+            log.info("绯荤粺娌℃湁闇�瑕佸嚭搴撶殑鍘熺墖淇℃伅");
+            return Boolean.FALSE;
+        }
+        //鑾峰彇宸ヤ綅涓婃槸鍚︽湁鏋跺瓙锛�
+        List<RawGlassStorageDetails> emptyLeftingList = rawGlassStorageDetailsService.list(new LambdaQueryWrapper<RawGlassStorageDetails>()
+                .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN_ALL)
+                .in(RawGlassStorageDetails::getSlot, "select slot from raw_glass_storage_station where enable_state = 1 and device_id = 4"));
+        if (CollectionUtil.isNotEmpty(emptyLeftingList) && emptyLeftingList.size() > 1) {
+            log.info("鍚婅浣嶅綋鍓嶉兘鏈夋灦瀛愶紝缁撴潫鍑虹墖浠诲姟");
+            return Boolean.FALSE;
+        }
+        //鑾峰彇闇�瑕佽惤鏋剁殑
+        List<Integer> leftingList = emptyLeftingList.stream().map(RawGlassStorageDetails::getSlot).collect(Collectors.toList());
+        int lefting = CollectionUtil.isEmpty(leftingList) ? LEFTING_01 : leftingList.get(0).equals(LEFTING_01) ? LEFTING_02 : LEFTING_01;
+        Integer startSlot = rawGlassList.get(0).getSlot();
+        //鐢熸垚鍑哄簱浠诲姟
+        rawGlassStorageDetailsService.generateTask(startSlot, lefting, startSlot, rawGlassList.get(0).getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_OUT);
+
+//        List<ReadWriteEntity> list = new ArrayList<>();
+//        list.add(generateReadWriteEntity("CC.CC.taskWord", 1));
+//        list.add(generateReadWriteEntity("CC.CC.taskSending", 1));
+//        list.add(generateReadWriteEntity("CC.CC.startSlot", startSlot));
+//        list.add(generateReadWriteEntity("CC.CC.endSlot", lefting));
+//        miloService.writeToOpcWord(list);
+
+        //淇敼鍑虹墖浠诲姟鐘舵��
+        rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                .eq(RawGlassStorageDetails::getSlot, rawGlassList.get(0).getSlot())
+                .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_WAIT_OUT)
+                .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
+        return Boolean.TRUE;
+    }
+
+
+    /**
+     * 澶嶄綅浠诲姟锛�1銆佺偣澶嶄綅锛岀珛椹敓鎴愬浣嶄换鍔� 2銆佺偣鍑哄簱淇敼宸ヤ綅璇︽儏鍐呯殑鐘舵�佷负鏋跺瓙澶嶄綅锛屽畾鏃朵换鍔℃壂鎻忕敓鎴愬浣嶄换鍔�
+     */
+    public boolean shelfResetTask() throws Exception {
+        List<RawGlassStorageDetails> rawGlassList = rawGlassStorageDetailsService.list(new LambdaQueryWrapper<RawGlassStorageDetails>()
+                .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RESET)
+                .inSql(RawGlassStorageDetails::getSlot, "select slot from raw_glass_storage_station where enable_state = 1"));
+        if (CollectionUtil.isEmpty(rawGlassList)) {
+            log.info("绯荤粺娌℃湁闇�瑕佸浣嶇殑鍘熺墖淇℃伅");
+            return Boolean.FALSE;
+        }
+        //鐢熸垚澶嶄綅浠诲姟
+
+//        rawGlassStorageDetailsService.generatask(rawGlassList.get(0).getSlot(), rawGlassList.get(0).getShelf(), rawGlassList.get(0).getShelf(), rawGlassList.get(0).getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
+
+//        List<ReadWriteEntity> list = new ArrayList<>();
+//        list.add(generateReadWriteEntity("CC.CC.taskWord", 1));
+//        list.add(generateReadWriteEntity("CC.CC.taskSending", 1));
+//        list.add(generateReadWriteEntity("CC.CC.startSlot", startSlot));
+//        list.add(generateReadWriteEntity("CC.CC.endSlot", lefting));
+//        miloService.writeToOpcWord(list);
+
+        //淇敼澶嶄綅浠诲姟鐘舵��
+        rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                .eq(RawGlassStorageDetails::getSlot, rawGlassList.get(0).getSlot())
+                .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RESET)
+                .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
+        return Boolean.TRUE;
+    }
+
+    /**
+     * 鍏ュ簱浠诲姟锛氬悐瑁呬綅鏈夌幓鐠冿紝鍏堝幓宸ヤ綅琛ㄦ煡璇㈢┖鏍煎瓙锛岀敓鎴愬叆搴撲换鍔′粠鍚婅浣嶅埌鐩爣鏍煎瓙
+     *
+     * @throws Exception
+     */
+    public boolean warehouseTask() throws Exception {
+        List<RawGlassStorageDetails> rawGlassList = rawGlassStorageDetailsService.list(new LambdaQueryWrapper<RawGlassStorageDetails>()
+                .eq(RawGlassStorageDetails::getState, Const.GLASS_STATE_IN)
+                .gt(RawGlassStorageDetails::getRemainQuantity, 0)
+                .inSql(RawGlassStorageDetails::getSlot, "select slot from raw_glass_storage_station where enable_state = 1 and device_id = 4")
+                .inSql(RawGlassStorageDetails::getShelf, "select slot from raw_glass_storage_station where enable_state = 1 "));
+        if (CollectionUtil.isEmpty(rawGlassList)) {
+            log.info("鍚婅浣嶈绂佺敤/鏋跺瓙鎵�鍦ㄥ伐浣嶈绂佺敤/鏃犲師鐗囦俊鎭�");
+            return Boolean.FALSE;
+        }
+        //鐢熸垚杩涚浠诲姟
+        RawGlassStorageDetails details = rawGlassList.get(0);
+        rawGlassStorageDetailsService.generateTask(details.getSlot(), details.getShelf(), details.getShelf(),
+                details.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_IN);
+//        List<ReadWriteEntity> list = new ArrayList<>();
+//        list.add(generateReadWriteEntity("CC.CC.taskWord", 1));
+//        list.add(generateReadWriteEntity("CC.CC.taskSending", 1));
+//        list.add(generateReadWriteEntity("CC.CC.startSlot", details.getSlot()));
+//        list.add(generateReadWriteEntity("CC.CC.endSlot", details.getShelf()));
+//        miloService.writeToOpcWord(list);
+        //鐢熸垚宸ヤ綅浠诲姟锛屽皢鍚婅浣嶇殑鐜荤拑鐘舵�佹敼浣嶈繘绗间腑
+        //淇敼鍚婅浣嶇殑鍘熺墖鐘舵�佷负103 鍑虹墖涓�
+        //淇敼鍑虹墖浠诲姟鐘舵��
+        rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                .eq(RawGlassStorageDetails::getSlot, rawGlassList.get(0).getSlot())
+                .eq(RawGlassStorageDetails::getState, Const.GLASS_STATE_IN)
+                .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
+        return Boolean.TRUE;
+    }
+
+    /**
+     * @param stationCell 璁惧淇℃伅  5  銆� 6
+     * @param enginneerId 鍏变酣鍙�
+     * @return
+     * @throws Exception
+     */
+    private boolean rawGlassDispatchByEngineering(int stationCell, String enginneerId) throws Exception {
+        //褰撳墠灏哄闇�瑕佷笂鐗囩殑鏁伴噺
+        List<UpPattenUsageVO> pattenUsageList = upPattenUsageMapper.queryRawGlassByEngineeringId(enginneerId);
+        if (CollectionUtils.isEmpty(pattenUsageList)) {
+            log.info("姝e湪鎵ц鐨勫伐绋嬪師鐗囨棤鍙笂鐗囩殑鍘熺墖淇℃伅");
+            return Boolean.FALSE;
+        }
+        //鑾峰彇褰撳墠闇�瑕佷笂鐗囩殑鍘熺墖鏁版嵁
+        Map<String, List<UpPattenUsageVO>> upListMap = pattenUsageList.stream()
+                .collect(Collectors.groupingBy(UpPattenUsageVO::getGroupNumber));
+        List<UpPattenUsageVO> usageVOS = upListMap.get("1");
+        //鑾峰彇褰撳墠涓婄墖浣�1鍙锋灦瀛愪俊鎭�
+        List<Integer> loadStation = LOAD_GLASS_ONE_DEVICE.equals(stationCell) ? LOAD_STATION_01 : LOAD_STATION_02;
+        List<RawGlassStorageStation> stations = rawGlassStorageStationService.list(new LambdaQueryWrapper<RawGlassStorageStation>()
+                .in(RawGlassStorageStation::getSlot, loadStation)
+                .eq(RawGlassStorageStation::getEnableState, Const.SLOT_ON).orderByAsc(RawGlassStorageStation::getSlot));
+        if (CollectionUtils.isEmpty(stations)) {
+            log.info("娌℃湁鍙敤鐨勪笂鐗囦綅");
+            return Boolean.FALSE;
+        }
+
+        List<RawGlassStorageDetails> loadStationList = rawGlassStorageDetailsService.list(new LambdaQueryWrapper<RawGlassStorageDetails>()
+                .inSql(RawGlassStorageDetails::getSlot, "select slot from raw_glass_storage_station where enable_state = 1")
+                .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+                .eq(RawGlassStorageDetails::getDeviceId, stationCell));
+        if (stations.size() == 1) {
+            if (CollectionUtils.isEmpty(loadStationList)) {
+                RawGlassStorageDetails rawDetails = getRawGlassStorageDetailsBySize(usageVOS.get(0), usageVOS.size());
+                rawGlassStorageDetailsService.generateTask(rawDetails.getSlot(), stations.get(0).getSlot(), rawDetails.getShelf(), rawDetails.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
+                //缁撴潫璋冨害浠诲姟 淇敼宸ヤ綅鐘舵��(璧峰浣嶏級鐘舵�佷负103 RAW_GLASS_STATE_RUNNING 浠诲姟瀹屾垚鍚庡皢鐘舵�佹敼涓�101  鐩爣浣嶆柊澧炰竴鏉℃暟鎹紝鏋跺瓙鍙蜂负锛堣捣濮嬩綅锛�
+                rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                        .eq(RawGlassStorageDetails::getSlot, rawDetails.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+                        .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
+                return Boolean.TRUE;
+            }
+            RawGlassStorageDetails oneLoadStation = loadStationList.get(0);
+            if (oneLoadStation.getRemainQuantity() <= 0 || !compareRawSize(usageVOS.get(0), oneLoadStation)) {
+                rawGlassStorageDetailsService.generateTask(stations.get(0).getSlot(), oneLoadStation.getShelf(), oneLoadStation.getShelf(), oneLoadStation.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
+                rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                        .eq(RawGlassStorageDetails::getSlot, oneLoadStation.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+                        .set(RawGlassStorageDetails::getDeviceId, Const.RAW_GLASS_STATE_RUNNING));
+                return Boolean.FALSE;
+            }
+        }
+
+        log.info("鑾峰彇{}涓婄墖绾跨殑宸ヤ綅淇℃伅{}", stationCell, loadStationList);
+        if (CollectionUtils.isEmpty(loadStationList)) {
+            log.info("1鍙蜂笂鐗囦綅鐢熸垚璋冨害浠诲姟");
+            RawGlassStorageDetails rawDetails = getRawGlassStorageDetailsBySize(usageVOS.get(0), usageVOS.size());
+            if (CollectionUtils.isEmpty(loadStationList)) {
+                log.info("浠撳簱鍐呮棤鍖归厤鐨勭幓鐠�");
+                return Boolean.FALSE;
+            }
+            rawGlassStorageDetailsService.generateTask(rawDetails.getSlot(), loadStation.get(0), rawDetails.getShelf(), rawDetails.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
+            //缁撴潫璋冨害浠诲姟 淇敼宸ヤ綅鐘舵��(璧峰浣嶏級鐘舵�佷负103 RAW_GLASS_STATE_RUNNING 浠诲姟瀹屾垚鍚庡皢鐘舵�佹敼涓�101  鐩爣浣嶆柊澧炰竴鏉℃暟鎹紝鏋跺瓙鍙蜂负锛堣捣濮嬩綅锛�
+            rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                    .eq(RawGlassStorageDetails::getSlot, rawDetails.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+                    .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
+            return Boolean.TRUE;
+        }
+        RawGlassStorageDetails oneLoadStation = loadStationList.stream().filter(e -> e.getSlot().equals(loadStation.get(0))).findFirst().orElse(null);
+        if (null == oneLoadStation) {
+            RawGlassStorageDetails twoLoadStation = loadStationList.stream().filter(e -> e.getSlot().equals(loadStation.get(1))).findFirst().orElse(null);
+            if (twoLoadStation.getRemainQuantity() > 0) {
+                if (compareRawSize(usageVOS.get(0), twoLoadStation)) {
+//                    2鍙蜂笂鐗囦綅鐨勫師鐗囦俊鎭簮宸ョ▼淇℃伅涓�鑷达紝鍙笂鐗囨搷浣滐紝缁撴潫鏈浠诲姟
+                    return Boolean.FALSE;
+                } else {
+//                    鐢熸垚1鍙蜂綅鍏ュ簱浠诲姟
+                    log.info("2鍙蜂笂鐗囦綅鐜荤拑灏哄涓嶄竴鑷达紝1鍙蜂笂鐗囦綅鐢熸垚璋冨害浠诲姟");
+                    //鎸夌収灏哄鍙婃暟閲忚幏鍙栨暟閲忔渶鎺ヨ繎鐨勬牸瀛愪俊鎭�
+                    RawGlassStorageDetails rawDetails = getRawGlassStorageDetailsBySize(usageVOS.get(0), usageVOS.size());
+                    if (null == rawDetails) {
+                        log.info("浠撳簱鍐呮棤闇�瑕佷笂鏋剁殑鐜荤拑");
+                        return Boolean.FALSE;
+                    }
+                    rawGlassStorageDetailsService.generateTask(rawDetails.getSlot(), loadStation.get(0), rawDetails.getShelf(), rawDetails.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
+                    //缁撴潫璋冨害浠诲姟 淇敼宸ヤ綅鐘舵��(璧峰浣嶏級鐘舵�佷负103 RAW_GLASS_STATE_RUNNING 浠诲姟瀹屾垚鍚庡皢鐘舵�佹敼涓�101  鐩爣浣嶆柊澧炰竴鏉℃暟鎹紝鏋跺瓙鍙蜂负锛堣捣濮嬩綅锛�
+                    rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                            .eq(RawGlassStorageDetails::getSlot, rawDetails.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+                            .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
+                    return Boolean.TRUE;
+                }
+            } else {
+//                鐢熸垚1鍙蜂綅鍏ュ簱浠诲姟
+                log.info("2鍙蜂笂鐗囦綅浠呭墿绌烘灦瀛愶紝1鍙蜂笂鐗囦綅鐢熸垚璋冨害浠诲姟");
+                RawGlassStorageDetails rawDetails = getRawGlassStorageDetailsBySize(usageVOS.get(0), usageVOS.size());
+                rawGlassStorageDetailsService.generateTask(rawDetails.getSlot(), loadStation.get(0), rawDetails.getShelf(), rawDetails.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
+                rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                        .eq(RawGlassStorageDetails::getSlot, rawDetails.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+                        .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
+                return Boolean.TRUE;
+            }
+        } else {
+            String tableName = stationCell == 5 ? LOAD_GLASS_DEVICE_ONE_TASK : LOAD_GLASS_DEVICE_TWO_TASK;
+            if (oneLoadStation.getRemainQuantity() > 0) {
+                if (compareRawSize(usageVOS.get(0), oneLoadStation)) {
+                    //缁撴潫浠撳偍璋冨害锛岀瓑寰呬笂鐗囦换鍔�
+                    //鍦ㄤ笂鐗囦换鍔℃墽琛岀┖闂茶繃绋嬩腑,鍙墽琛屼簩鍙蜂綅鍑哄叆搴撲换鍔�  浜屽彿鏋跺瓙鐨勪俊鎭槸鍚﹂渶瑕佽皟搴�,涓嶉渶瑕佽皟搴︾洿鎺ユ斁鍥瀎alse
+                    log.info("鑾峰彇浜屽彿浣嶅師鐗囦俊鎭�");
+                    RawGlassStorageDetails twoLoadStation = loadStationList.stream().filter(e -> e.getSlot().equals(loadStation.get(1))).findFirst().orElse(null);
+                    if (null == twoLoadStation) {
+                        //鎸夌収灏哄鐢熸垚浜屽彿浣嶄笂鐗囦换鍔′俊鎭�
+                        LoadGlassDeviceTask loadTask = loadGlassDeviceTaskService.queryTaskMessage(tableName);
+                        RawGlassStorageDetails rawDetails = null;
+                        if (oneLoadStation.getRemainQuantity() > (loadTask.getTotalCount() + loadTask.getDamageCount())) {
+                            usageVOS = upListMap.get("2");
+                            if (CollectionUtils.isEmpty(usageVOS)) {
+                                log.info("褰撳墠宸ョ▼鐨勫師鐗囧嵆灏嗙敤瀹岋紝缁撴潫鏈璋冨害");
+                                return Boolean.FALSE;
+                            }
+                            rawDetails = getRawGlassStorageDetailsBySize(usageVOS.get(0), usageVOS.size());
+                        } else {
+                            rawDetails = getRawGlassStorageDetailsBySize(usageVOS.get(0), usageVOS.size());
+
+                        }
+                        if (null == rawDetails) {
+                            log.info("鍘熺墖浠撳偍娌℃湁鐩稿悓灏哄鐨勭幓鐠�");
+                            return Boolean.FALSE;
+                        }
+                        rawGlassStorageDetailsService.generateTask(rawDetails.getSlot(), loadStation.get(1), rawDetails.getShelf(), rawDetails.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
+                        //缁撴潫璋冨害浠诲姟 淇敼宸ヤ綅鐘舵��(璧峰浣嶏級鐘舵�佷负103 RAW_GLASS_STATE_RUNNING 浠诲姟瀹屾垚鍚庡皢鐘舵�佹敼涓�101  鐩爣浣嶆柊澧炰竴鏉℃暟鎹紝鏋跺瓙鍙蜂负锛堣捣濮嬩綅锛�
+                        rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                                .eq(RawGlassStorageDetails::getSlot, rawDetails.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+                                .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
+                        return Boolean.TRUE;
+                    } else {
+                        //todo:褰撲簩鍙蜂负鐨勫昂瀵稿ぇ浜�0鏃讹紝鏄惁鎵ц璋冨害浠诲姟锛屾洿鎹㈠綋鍓嶅師鐗囩殑灏哄锛岀瓑寰呬笅涓�娆′换鍔$殑鐩存帴鎵ц锛涜繕鏄户缁瓑寰咃紝褰撳昂瀵镐笉涓�鏍凤紝绛夊緟涓�鍙峰伐浣嶇殑杩涘嚭搴撹皟搴︿换鍔°��
+                        if (twoLoadStation.getRemainQuantity() > 0) {
+                            LoadGlassDeviceTask loadTask = loadGlassDeviceTaskService.queryTaskMessage(tableName);
+                            if (oneLoadStation.getRemainQuantity() > (loadTask.getTotalCount() + loadTask.getDamageCount())) {
+                                usageVOS = upListMap.get("2");
+                                if (CollectionUtils.isEmpty(usageVOS)) {
+                                    log.info("褰撳墠宸ョ▼鐨勫師鐗囧嵆灏嗙敤瀹岋紝缁撴潫鏈璋冨害");
+                                    return Boolean.FALSE;
+                                }
+                            }
+                            if (compareRawSize(usageVOS.get(0), twoLoadStation)) {
+//                              //2鍙蜂笂鐗囦綅鐨勫師鐗囦俊鎭簮宸ョ▼淇℃伅涓�鑷达紝鍙笂鐗囨搷浣滐紝缁撴潫鏈浠诲姟
+                                return Boolean.FALSE;
+                            } else {
+//                    鐢熸垚1鍙蜂綅鍏ュ簱浠诲姟
+                                log.info("2鍙蜂笂鐗囦綅鐜荤拑灏哄涓嶄竴鑷达紝2鍙蜂笂鐗囦綅鐢熸垚鍑虹墖璋冨害浠诲姟");
+                                //鎸夌収灏哄鍙婃暟閲忚幏鍙栨暟閲忔渶鎺ヨ繎鐨勬牸瀛愪俊鎭�
+                                rawGlassStorageDetailsService.generateTask(loadStation.get(1), twoLoadStation.getShelf(), twoLoadStation.getShelf(), twoLoadStation.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
+                                //缁撴潫璋冨害浠诲姟 淇敼宸ヤ綅鐘舵��(璧峰浣嶏級鐘舵�佷负103 RAW_GLASS_STATE_RUNNING 浠诲姟瀹屾垚鍚庡皢鐘舵�佹敼涓�101  鐩爣浣嶆柊澧炰竴鏉℃暟鎹紝鏋跺瓙鍙蜂负锛堣捣濮嬩綅锛�
+                                rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                                        .eq(RawGlassStorageDetails::getSlot, loadStation.get(1)).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+                                        .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
+                                return Boolean.TRUE;
+                            }
+                        } else {
+                            //todo:鐢熸垚鍑哄簱浠诲姟
+                            rawGlassStorageDetailsService.generateTask(loadStation.get(1), twoLoadStation.getShelf(), twoLoadStation.getShelf(), twoLoadStation.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
+                            //缁撴潫璋冨害浠诲姟 淇敼宸ヤ綅鐘舵��(璧峰浣嶏級鐘舵�佷负103 RAW_GLASS_STATE_RUNNING 浠诲姟瀹屾垚鍚庡皢鐘舵�佹敼涓�101  鐩爣浣嶆柊澧炰竴鏉℃暟鎹紝鏋跺瓙鍙蜂负锛堣捣濮嬩綅锛�
+                            rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                                    .eq(RawGlassStorageDetails::getSlot, loadStation.get(1)).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+                                    .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
+                            return Boolean.TRUE;
+                        }
+                    }
+//                    return Boolean.FALSE;
+                } else {
+                    log.info("2鍙蜂笂鐗囦綅浠呭墿绌烘灦瀛愶紝1鍙蜂笂鐗囦綅鐢熸垚鍑哄簱璋冨害浠诲姟");
+                    rawGlassStorageDetailsService.generateTask(loadStation.get(0), oneLoadStation.getShelf(), oneLoadStation.getShelf(), oneLoadStation.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
+                    rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                            .eq(RawGlassStorageDetails::getSlot, loadStation.get(0)).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+                            .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
+                    return Boolean.TRUE;
+                }
+            } else {
+                log.info("1鍙蜂笂鐗囦綅鐜荤拑灏哄涓嶄竴鑷达紝1鍙蜂笂鐗囦綅鐢熸垚鍑哄簱璋冨害浠诲姟");
+                rawGlassStorageDetailsService.generateTask(loadStation.get(0), oneLoadStation.getSlot(), oneLoadStation.getShelf(), oneLoadStation.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
+                rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                        .eq(RawGlassStorageDetails::getSlot, loadStation.get(0)).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+                        .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
+                return Boolean.TRUE;
+            }
+        }
+    }
+
+    private ReadWriteEntity generateReadWriteEntity(String identifier, int value) {
+        ReadWriteEntity readWriteEntity = new ReadWriteEntity();
+        readWriteEntity.setIdentifier(identifier);
+        readWriteEntity.setValue(value);
+        return readWriteEntity;
+    }
+
+    private RawGlassStorageDetails getRawGlassStorageDetailsBySize(UpPattenUsageVO usageVO, int remainQuantity) {
+        return rawGlassStorageDetailsService.getOne(new LambdaQueryWrapper<RawGlassStorageDetails>()
+                .eq(RawGlassStorageDetails::getFilmsId, usageVO.getFilmsId())
+                .eq(RawGlassStorageDetails::getPatternWidth, usageVO.getWidth())
+                .eq(RawGlassStorageDetails::getPatternHeight, usageVO.getHeight())
+                .eq(RawGlassStorageDetails::getPatternThickness, usageVO.getThickness())
+                .notIn(RawGlassStorageDetails::getSlot, LOAD_STATION_ALL)
+                .eq(RawGlassStorageDetails::getState, Const.GLASS_STATE_IN)
+                .orderByAsc(RawGlassStorageDetails::getRemainQuantity)
+                .last("order by abs(t.remain_quantity - " + remainQuantity + ")  asc")
+                .last("limit 1"));
+    }
+
+    /**
+     * 灏哄涓�鏍峰苟涓斿師鐗囨暟閲忓ぇ浜�0
+     *
+     * @param upPattenUsage
+     * @param details
+     * @return
+     */
+    private boolean compareRawSize(UpPattenUsage upPattenUsage, RawGlassStorageDetails details) {
+        boolean flag = upPattenUsage.getWidth() == details.getPatternWidth() && upPattenUsage.getHeight() == details.getPatternHeight() &&
+                upPattenUsage.getThickness() == details.getPatternThickness() && upPattenUsage.getFilmsId().equals(details.getFilmsId());
+        return flag;
+    }
+
+}
+
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/controller/RawGlassStorageDetailsController.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/controller/RawGlassStorageDetailsController.java
new file mode 100644
index 0000000..3723ff4
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/controller/RawGlassStorageDetailsController.java
@@ -0,0 +1,83 @@
+package com.mes.rawglassdetails.controller;
+
+import com.mes.rawglassdetails.entity.dto.RawGlassStorageDetailsDTO;
+import com.mes.rawglassdetails.entity.request.RawGlassRequest;
+import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 鍓嶇鎺у埗鍣�
+ *
+ * @author wf
+ * @since 2024-09-10
+ */
+@RestController
+@RequestMapping("/rawGlassStorageDetails")
+public class RawGlassStorageDetailsController {
+
+    @Autowired
+    private RawGlassStorageDetailsService rawGlassStorageDetailsService;
+
+    @ApiOperation("鍏ュ簱璇锋眰")
+    @PostMapping("/warehousingRequest")
+    public Result<String> warehousingRequest(int leftingStation) {
+        return Result.build(
+                200, "鍏ュ簱宸插畬鎴愶紝绛夊緟浠诲姟鎵ц", rawGlassStorageDetailsService.warehousingRequest(leftingStation));
+    }
+
+    @ApiOperation("鍘熺墖鍏ュ簱")
+    @PostMapping("/patternWarehousing")
+    public Result<String> patternWarehousing(@Validated @RequestBody RawGlassRequest request) {
+        return Result.build(
+                200, "鍏ュ簱宸插畬鎴愶紝绛夊緟浠诲姟鎵ц", rawGlassStorageDetailsService.patternWarehousing(request));
+    }
+
+    @ApiOperation("鏇存柊鍓╀綑鏁伴噺")
+    @PostMapping("/updateQuantity")
+    public Result<Object> updateQuantity(@Validated @RequestBody RawGlassRequest request) {
+        return Result.success(rawGlassStorageDetailsService.updateQuantity(request));
+    }
+
+    @ApiOperation("鍒犻櫎鍘熺墖")
+    @PostMapping("/deleteWarehousing")
+    public Result<Object> deleteWarehousing(Long slot) {
+        return Result.success(rawGlassStorageDetailsService.deleteWarehousing(slot));
+    }
+
+    @ApiOperation("鍘熺墖鍑哄簱")
+    @PostMapping("/outWarehousing")
+    public Result<Object> outWarehousing(Long slotId) {
+        return Result.success(rawGlassStorageDetailsService.outWarehousing(slotId));
+    }
+
+
+    @ApiOperation("鍑哄簱璇锋眰")
+    @PostMapping("/outWarehousingRequest")
+    public Result<String> outWarehousingRequest(int leftingStation) {
+        return Result.build(
+                200, "鍏ュ簱宸插畬鎴愶紝绛夊緟浠诲姟鎵ц", rawGlassStorageDetailsService.outWarehousingRequest(leftingStation));
+    }
+
+    @ApiOperation("鏋跺瓙澶嶄綅")
+    @PostMapping("/shelfReset")
+    public Result<String> shelfReset(Long slot) {
+        return Result.success(rawGlassStorageDetailsService.shelfReset(slot));
+    }
+
+    @ApiOperation("鍘熺墖浣跨敤鎯呭喌")
+    @PostMapping("/patternUsage")
+    public Result<List<RawGlassStorageDetailsDTO>> patternUsage(String width, String height, String thickness, String films) {
+        return Result.build(200, "鏌ヨ鎴愬姛", rawGlassStorageDetailsService.patternUsage(width, height, thickness, films));
+    }
+
+
+}
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/controller/RawGlassStorageStationController.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/controller/RawGlassStorageStationController.java
new file mode 100644
index 0000000..b94c59a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/controller/RawGlassStorageStationController.java
@@ -0,0 +1,34 @@
+package com.mes.rawglassstation.controller;
+
+import com.mes.rawglassstation.service.RawGlassStorageStationService;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 鍓嶇鎺у埗鍣�
+ *
+ * @author wf
+ * @since 2024-09-10
+ */
+@RestController
+@RequestMapping("/rawGlassStorageStation")
+public class RawGlassStorageStationController {
+
+  @Resource RawGlassStorageStationService rawGlassStorageStationService;
+
+  @ApiOperation("宸ヤ綅鐘舵��")
+  @PostMapping("/updateSlotState")
+  @ResponseBody
+  public Result<Boolean> updateSlotState(@RequestParam(value = "state")int enableState, @RequestParam(value = "slot")int slot) {
+    boolean result = rawGlassStorageStationService.updateSlotState(slot, enableState);
+    if (enableState == 1) {
+      return Result.build(200, "鍚敤", result);
+    } else {
+      return Result.build(200, "绂佺敤", result);
+    }
+  }
+}
+
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/controller/RawGlassStorageTaskController.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/controller/RawGlassStorageTaskController.java
new file mode 100644
index 0000000..67097d1
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/controller/RawGlassStorageTaskController.java
@@ -0,0 +1,60 @@
+package com.mes.rawglasstask.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
+import com.mes.rawglasstask.entity.request.RawGlassTaskRequest;
+import com.mes.rawglasstask.service.RawGlassStorageTaskService;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鍘熺墖浠诲姟鎺у埗鍣�
+ * </p>
+ *
+ * @author wf
+ * @since 2024-09-10
+ */
+@RestController
+@RequestMapping("/rawGlassStorageTask")
+public class RawGlassStorageTaskController {
+
+    @Autowired
+    private RawGlassStorageTaskService rawGlassStorageTaskService;
+
+    @ApiOperation("璁剧疆鍘熺墖浠撳偍鏌ヨ鏉′欢")
+    @PostMapping("/setRawGlassTaskRequest")
+    public Result setRawGlassTaskRequest(@RequestBody RawGlassTaskRequest request) {
+        return Result.build(200, "鏌ヨ鎴愬姛", rawGlassStorageTaskService.setRawGlassTaskRequest(request));
+    }
+
+    @ApiOperation("鎸夌収鏉′欢鏌ョ湅浠撳偍鍘嗗彶浠诲姟")
+    @PostMapping("/queryRawGlassHistoryTask")
+    public Result<Page<RawGlassStorageTask>> queryRawGlassHistoryTask(@RequestBody @Validated RawGlassTaskRequest request) {
+        return Result.build(200, "鏌ヨ鎴愬姛", rawGlassStorageTaskService.queryRawGlassHistoryTask(request));
+    }
+
+    @ApiOperation("浠诲姟鎴愬姛澶勭悊")
+    @PostMapping("/taskSuccess")
+    public Result<Boolean> taskSuccess(Long taskId) {
+        return Result.build(200, "鏌ヨ鎴愬姛", rawGlassStorageTaskService.taskSuccess(taskId));
+    }
+
+    @ApiOperation("浠诲姟澶辫触澶勭悊")
+    @PostMapping("/taskError")
+    public Result<Boolean> taskError(Long taskId) {
+        return Result.build(200, "鏌ヨ鎴愬姛", rawGlassStorageTaskService.taskError(taskId));
+    }
+
+
+}
+
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/s7/entity/S7Data.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/s7/entity/S7Data.java
new file mode 100644
index 0000000..2050c51
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/s7/entity/S7Data.java
@@ -0,0 +1,89 @@
+package com.mes.s7.entity;
+
+import com.github.xingshuangs.iot.protocol.common.enums.EDataType;
+import com.github.xingshuangs.iot.protocol.s7.serializer.S7Variable;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/4/30 14:19
+ * @Description:
+ */
+@Data
+public class S7Data {
+
+
+//    @S7Variable(address = "DB1.0", type = EDataType.INT16)
+//    private Short request;
+//
+//    @S7Variable(address = "DB1.2", type = EDataType.INT16)
+//    private Short requestId;
+//
+//    @S7Variable(address = "DB1.4", type = EDataType.INT16)
+//    private Short reportWord;
+//
+//    @S7Variable(address = "DB1.6", type = EDataType.INT16)
+//    private Short reportId;
+//
+//    @S7Variable(address = "DB1.8", type = EDataType.INT16)
+//    private Short inCar;
+//
+//    @S7Variable(address = "DB1.10", type = EDataType.INT16)
+//    private Short taskWord;
+//
+//    @S7Variable(address = "DB1.12", type = EDataType.INT16)
+//    private Short taskId;
+//
+//    @S7Variable(address = "DB1.14", type = EDataType.INT16)
+//    private Short startSlot;
+//
+//    @S7Variable(address = "DB1.16", type = EDataType.INT16)
+//    private Short endSlot;
+//
+//    @S7Variable(address = "DB1.18", type = EDataType.INT16)
+//    private Short taskSending;
+//
+//    @S7Variable(address = "DB1.20", type = EDataType.INT16)
+//    private Short confirmation;
+//
+//    @S7Variable(address = "DB1.22", type = EDataType.INT16)
+//    private Short confirmationId;
+
+    @S7Variable(address = "DB38.0", type = EDataType.INT16)
+    private Short request;
+
+    @S7Variable(address = "DB38.2", type = EDataType.INT16)
+    private Short requestId;
+
+    @S7Variable(address = "DB38.10", type = EDataType.INT16)
+    private Short reportWord;
+
+    @S7Variable(address = "DB38.12", type = EDataType.INT16)
+    private Short reportId;
+
+    @S7Variable(address = "DB38.18", type = EDataType.INT16)
+    private Short inCar;
+
+    @S7Variable(address = "DB38.20", type = EDataType.INT16)
+    private Short taskWord;
+
+    @S7Variable(address = "DB38.22", type = EDataType.INT16)
+    private Short taskId;
+
+    @S7Variable(address = "DB38.24", type = EDataType.INT16)
+    private Short startSlot;
+
+    @S7Variable(address = "DB38.26", type = EDataType.INT16)
+    private Short endSlot;
+
+    @S7Variable(address = "DB38.28", type = EDataType.INT16)
+    private Short taskSending;
+
+    @S7Variable(address = "DB38.40", type = EDataType.INT16)
+    private Short confirmation;
+
+    @S7Variable(address = "DB38.42", type = EDataType.INT16)
+    private Short confirmationId;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-alg.yml b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-alg.yml
new file mode 100644
index 0000000..b889ba4
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-alg.yml
@@ -0,0 +1,38 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.10.86:3306/north_glass_mes?serverTimezone=GMT%2b8&allowMultiQueries=true
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://192.168.10.86:1433;databasename=north_glass_mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+      druid:
+        wall:
+          multi-statement-allow: true
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 192.168.10.86:8848
+  redis:
+    database: 0
+    host: 192.168.10.86
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: false
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://192.168.10.86:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-dev.yml b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..9b2a5c2
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-dev.yml
@@ -0,0 +1,38 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://127.0.0.1:3306/hangzhoumes?serverTimezone=GMT%2b8&allowMultiQueries=true
+          username: root
+          password: 123456
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://127.0.0.1:1433;databasename=hangzhoumes
+          username: sa
+          password: 123456
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+      druid:
+        wall:
+          multi-statement-allow: true
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password:
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://10.153.19.150:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..f3cbec1
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-prod.yml
@@ -0,0 +1,40 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://10.153.19.150:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://10.153.19.150:1433;databasename=north_glass_mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+        pp:
+          url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 10.153.19.150:8848
+  redis:
+    database: 0
+    host: 10.153.19.150
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://10.153.19.150:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-yw.yml b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-yw.yml
new file mode 100644
index 0000000..aa31552
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-yw.yml
@@ -0,0 +1,33 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.2.100:3306/north_glass_mes?serverTimezone=GMT%2b8&allowMultiQueries=true
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+      druid:
+        wall:
+          multi-statement-allow: true
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 192.168.2.100:8848
+  redis:
+    database: 0
+    host: 192.168.2.100
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://192.168.2.100:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application.yml
new file mode 100644
index 0000000..3870eb2
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application.yml
@@ -0,0 +1,16 @@
+server:
+  port: 10013
+
+spring:
+  profiles:
+    active: dev
+  application:
+    name: glassStorage
+  liquibase:
+    enabled: false
+
+mybatis-plus:
+  mapper-locations: classpath*:mapper/*.xml
+#  configuration:
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/test/java/mes/GlassStorageModuleApplicationTest.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/test/java/mes/GlassStorageModuleApplicationTest.java
new file mode 100644
index 0000000..9e5db51
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/test/java/mes/GlassStorageModuleApplicationTest.java
@@ -0,0 +1,52 @@
+package mes;
+
+import com.mes.GlassStorageApplication;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
+import com.mes.rawglasstask.service.RawGlassStorageTaskService;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/3/27 16:37
+ * @Description:
+ */
+@Slf4j
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = GlassStorageApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+public class GlassStorageModuleApplicationTest {
+
+
+    @Autowired
+    private RawGlassStorageDetailsService rawGlassStorageDetailsService;
+    @Autowired
+    private RawGlassStorageTaskService rawGlassStorageTaskService;
+
+    @Test
+    public void testFindPath() {
+        log.info("瀹屾暣璺緞锛歿}", Arrays.asList("123"));
+    }
+
+    @Test
+    public void txt() {
+        RawGlassStorageDetails rs=new RawGlassStorageDetails();
+        rs.setId(105L);
+        List<RawGlassStorageDetails> aa=rawGlassStorageDetailsService.selectDetails();
+        log.info(String.valueOf(aa));
+    }
+
+
+
+
+
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/target/classes/application-alg.yml b/hangzhoumesParent/moduleService/GlassStorageModule/target/classes/application-alg.yml
new file mode 100644
index 0000000..b889ba4
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/target/classes/application-alg.yml
@@ -0,0 +1,38 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.10.86:3306/north_glass_mes?serverTimezone=GMT%2b8&allowMultiQueries=true
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://192.168.10.86:1433;databasename=north_glass_mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+      druid:
+        wall:
+          multi-statement-allow: true
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 192.168.10.86:8848
+  redis:
+    database: 0
+    host: 192.168.10.86
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: false
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://192.168.10.86:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/target/classes/application-dev.yml b/hangzhoumesParent/moduleService/GlassStorageModule/target/classes/application-dev.yml
new file mode 100644
index 0000000..9b2a5c2
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/target/classes/application-dev.yml
@@ -0,0 +1,38 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://127.0.0.1:3306/hangzhoumes?serverTimezone=GMT%2b8&allowMultiQueries=true
+          username: root
+          password: 123456
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://127.0.0.1:1433;databasename=hangzhoumes
+          username: sa
+          password: 123456
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+      druid:
+        wall:
+          multi-statement-allow: true
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password:
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://10.153.19.150:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/target/classes/application-prod.yml b/hangzhoumesParent/moduleService/GlassStorageModule/target/classes/application-prod.yml
new file mode 100644
index 0000000..f3cbec1
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/target/classes/application-prod.yml
@@ -0,0 +1,40 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://10.153.19.150:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://10.153.19.150:1433;databasename=north_glass_mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+        pp:
+          url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 10.153.19.150:8848
+  redis:
+    database: 0
+    host: 10.153.19.150
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://10.153.19.150:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/target/classes/application-yw.yml b/hangzhoumesParent/moduleService/GlassStorageModule/target/classes/application-yw.yml
new file mode 100644
index 0000000..aa31552
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/target/classes/application-yw.yml
@@ -0,0 +1,33 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.2.100:3306/north_glass_mes?serverTimezone=GMT%2b8&allowMultiQueries=true
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+      druid:
+        wall:
+          multi-statement-allow: true
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 192.168.2.100:8848
+  redis:
+    database: 0
+    host: 192.168.2.100
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://192.168.2.100:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/target/classes/application.yml b/hangzhoumesParent/moduleService/GlassStorageModule/target/classes/application.yml
new file mode 100644
index 0000000..3870eb2
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/target/classes/application.yml
@@ -0,0 +1,16 @@
+server:
+  port: 10013
+
+spring:
+  profiles:
+    active: dev
+  application:
+    name: glassStorage
+  liquibase:
+    enabled: false
+
+mybatis-plus:
+  mapper-locations: classpath*:mapper/*.xml
+#  configuration:
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/pom.xml b/hangzhoumesParent/moduleService/LoadGlassModule/pom.xml
new file mode 100644
index 0000000..1450378
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/pom.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>moduleService</artifactId>
+        <groupId>com.mes</groupId>
+        <version>1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>loadGlass</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.mes</groupId>
+            <artifactId>servicebase</artifactId>
+            <version>1.0-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java
new file mode 100644
index 0000000..c706ba2
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java
@@ -0,0 +1,27 @@
+package com.mes;
+
+import com.mes.job.PlcLoadGlassTask;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+@Order(1)
+
+public class AppRunnerConfig implements ApplicationRunner {
+
+    private final PlcLoadGlassTask plcLoadGlassTask;
+
+    public AppRunnerConfig(PlcLoadGlassTask plcLoadGlassTask) {
+        this.plcLoadGlassTask = plcLoadGlassTask;
+    }
+
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+        log.info("鍚姩瀹屾垚");
+//        S7object.getinstance().start();
+    }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/LoadGlassModuleApplication.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/LoadGlassModuleApplication.java
new file mode 100644
index 0000000..5d05d8e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/LoadGlassModuleApplication.java
@@ -0,0 +1,26 @@
+package com.mes;
+
+import lombok.extern.slf4j.Slf4j;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/8 13:26
+ * @Description:
+ */
+@Slf4j
+@SpringBootApplication
+@EnableSwagger2WebMvc
+@EnableDiscoveryClient
+@EnableScheduling
+@MapperScan(basePackages = "com.mes.*.mapper")
+public class LoadGlassModuleApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(LoadGlassModuleApplication.class, args);
+    }
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java
new file mode 100644
index 0000000..f56d0e5
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java
@@ -0,0 +1,60 @@
+package com.mes.common;
+
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.mes.device.PlcParameterObject;
+import com.mes.tools.InitUtil;
+import com.mes.tools.S7control;
+
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 15:13
+ * @Description:
+ */
+public class S7object extends Thread {
+    public S7control plccontrol; // PLC閫氳绫诲疄渚�
+    private EPlcType plcType = EPlcType.S200_SMART; // 瑗块棬瀛怭LC绫诲瀷
+    private String ip = "192.168.10.100"; // plc ip鍦板潃
+    private int port = 102; // plc 绔彛鍙�
+
+
+    public PlcParameterObject PlcMesObject;
+    private static volatile S7object instance = null;
+
+    private S7object() {
+        if (plccontrol == null) {
+            plccontrol = new S7control(plcType, ip, port, 0, 0);
+            String PlcLoadGlass = System.getProperty("user.dir") + "/JsonFile/PlcLoadGlass.json";
+            PlcMesObject = InitUtil.initword(PlcLoadGlass);
+        }
+    }
+
+    // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
+    public static S7object getinstance() {
+        if (instance == null) {
+            synchronized (S7object.class) {
+                if (instance == null) {
+                    instance = new S7object();
+                }
+            }
+        }
+        return instance;
+    }
+
+    @Override
+    public void run() {
+        while (this != null) {
+            try {
+                Thread.sleep(100);
+
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+
+            byte[] getplcvlues = plccontrol.readByte(PlcMesObject.getPlcAddressBegin(), PlcMesObject.getPlcAddressLength());
+            if(getplcvlues!=null) {
+                PlcMesObject.setPlcParameterList(getplcvlues);
+            }
+        }
+    }
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/config/S7Config.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/config/S7Config.java
new file mode 100644
index 0000000..04a7141
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/config/S7Config.java
@@ -0,0 +1,21 @@
+package com.mes.config;
+
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer;
+import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/4/30 13:50
+ * @Description:
+ */
+@Configuration
+public class S7Config {
+    @Bean
+    public S7Serializer s7SerializerSP1() {
+        S7PLC s7PLC = new S7PLC(EPlcType.S1200, "192.168.10.86");
+        return S7Serializer.newInstance(s7PLC);
+    }
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java
new file mode 100644
index 0000000..bf20572
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java
@@ -0,0 +1,157 @@
+package com.mes.engineering.controller;
+
+
+
+import com.mes.damage.entity.Damage;
+import com.mes.damage.entity.request.DamageRequest;
+import com.mes.damage.service.DamageService;
+import com.mes.engineering.entity.Engineering;
+import com.mes.engineering.service.EngineeringService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.pp.service.OptimizeProjectService;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import com.mes.uppattenusage.service.UpPattenUsageService;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-22
+ */
+@RestController
+@Slf4j
+@RequestMapping("/engineering/engineering")
+public class EngineeringController {
+    @Autowired
+    private EngineeringService engineeringService;
+    @Autowired
+    private UpPattenUsageService upPattenUsageService;
+    @Autowired
+    private GlassInfoService glassInfoService;
+    @Autowired
+    private OptimizeProjectService optimizeProjectService;
+    @Autowired
+    DamageService damageService;
+
+
+    @ApiOperation("寮�濮�/鏆傚仠浠诲姟/浼犻�掑伐绋嬪彿鍜岀姸鎬�,寮�濮嬫槸1 鏆傚仠鏄�0")
+    @PostMapping("/pauseTask") //鏆傚仠涓婄墖浠诲姟
+    @ResponseBody
+    public  Result <List<UpPattenUsage>> pauseTask(@RequestBody Engineering engineering) {
+        boolean work=engineeringService.changeTask(engineering.getEngineerId(),engineering.getState());
+        List<UpPattenUsage> glass = upPattenUsageService.prioritylist();
+        if(work){
+            return Result.build(200,"鎴愬姛",glass);
+        }else {
+            return Result.build(100,"澶辫触",glass);
+        }
+    }
+
+    @ApiOperation("鏆傚仠")
+    @PostMapping("/pause") //鏆傚仠涓婄墖浠诲姟
+    @ResponseBody
+    public  Result <List<UpPattenUsage>> pause(@RequestBody Engineering engineering) {
+        boolean work=engineeringService.pauseTask(engineering.getEngineerId(),engineering.getState());
+//        List<UpPattenUsage> glass = upPattenUsageService.prioritylist();String message;
+        if(work){
+            return Result.build(200, "鎴愬姛", null);
+        }else {
+            return Result.build(100, "澶辨晽", null);
+        }
+    }
+
+    @ApiOperation("寮�濮嬩笂鐗�")
+    @PostMapping("/changeTask") //璋冪敤涓婄墖浠诲姟
+    @ResponseBody
+    public  Result <Boolean> changeTask(@RequestBody Engineering engineering) {
+        log.info("engineeringId:{}", engineering);
+        UpPattenUsage upPattenUsage = upPattenUsageService.selectedEngineering(engineering.getEngineerId());
+        Engineering engineerings = engineeringService.selectUpInitiate(engineering.getEngineerId());
+        GlassInfo glassInfos = engineeringService.selectGlassinfoIsnull(engineering.getEngineerId());
+        if (upPattenUsage != null && engineerings != null && glassInfos != null) {
+            boolean work = engineeringService.changeTasks(engineering);
+            List<UpPattenUsage> glass = upPattenUsageService.prioritylist();
+            optimizeProjectService.changeTask(engineering.getEngineerId(), 200);
+            return Result.build(200, "寮�濮嬩笂鐗�", work);
+        } else if (upPattenUsage == null && engineerings == null && glassInfos == null) {
+            List<UpPattenUsage> upPattenUsages = upPattenUsageService.selectSaveUpPattenUsage(engineering.getEngineerId());
+            log.info("灏嗘煡璇㈠嚭鐨刄pPattenUsage鏁版嵁淇濆瓨鍒版暟鎹簱琛ㄩ噷");
+            upPattenUsageService.saveUpPattenUsage(upPattenUsages);
+            log.info("浠嶱P琛ㄦ煡璇lassinfo鐨勬暟鎹苟淇濆瓨鍒拌〃閲�");
+            List<GlassInfo> glassinfo = glassInfoService.selectGlassInfo(engineering);
+            glassInfoService.saveGlassInfo(glassinfo);
+            log.info("浠嶱P琛ㄦ煡璇ngineering鐨勬暟鎹苟淇濆瓨鍒拌〃閲�");
+            List<Engineering> listEngineering = engineeringService.selectEngineering(engineering.getEngineerId());
+            engineeringService.saveEngineering(listEngineering);
+            log.info("鏇存敼pp琛ㄧ姸鎬佷负宸查鍙�");
+            //灏唀ngineering琛ㄧ姸鎬佷负姝e湪涓婄墖
+            boolean work = engineeringService.changeTasks(engineering);
+            List<UpPattenUsage> glass = upPattenUsageService.prioritylist();
+            optimizeProjectService.changeTask(engineering.getEngineerId(), 200);
+            if (work) {
+                return Result.build(200, "淇濆瓨鎴愬姛"+engineering.getEngineerId(), true);
+            }else {
+                return Result.build(200, "淇濆瓨澶辫触"+engineering.getEngineerId(), false);
+            }
+        } else {
+            upPattenUsageService.deleteTask(engineering.getEngineerId());
+            engineeringService.deleteTask(engineering.getEngineerId());
+            glassInfoService.deleteTask(engineering.getEngineerId());
+            return Result.build(200, "璇烽噸鏂扮偣鍑讳笂鐗�" + engineering.getEngineerId(), true);
+        }
+
+    }
+
+    @ApiOperation("鍒犻櫎宸ョ▼涓婄墖")
+    @PostMapping("/deleteTask") //璋冪敤涓婄墖浠诲姟
+    @ResponseBody
+    public  Result <List<GlassInfo>> deleteTask(@RequestBody Engineering engineering) {
+        //鍒犻櫎宸ョ▼琛ㄣ�佸皬鐗囪〃銆佷笂鐗囪〃锛屾洿鏀逛紭鍖栬〃鐘舵��
+//        boolean work=engineeringService.deleteTask(engineering.getEngineerId());
+//        glassInfoService.deleteTask(engineering.getEngineerId());
+//        upPattenUsageService.deleteTask(engineering.getEngineerId());
+//        optimizeProjectService.changeTask(engineering.getEngineerId(), 100);
+        //鏆傚仠宸ョ▼
+        engineeringService.pauseTask(engineering.getEngineerId(),0);
+          //鏌ヨ鏈笂鐗囩殑灏忕墖淇℃伅
+        List<GlassInfo>glasslist=glassInfoService.selectEdgGlassInfo(engineering.getEngineerId());
+        return Result.build(200, "鍒犻櫎鎴愬姛"+engineering.getEngineerId(), glasslist);
+
+
+    }
+
+    @ApiOperation("鏌ヨ鍙互涓婄墖鐨勫伐绋嬪彿")
+    @GetMapping("/selectTask") //璋冪敤涓婄墖浠诲姟
+    @ResponseBody
+    public Result <List<Engineering>> selectTask() {
+        List<Engineering> engineering=engineeringService.selectTask();
+        log.info("鍙鍙栦换鍔¤繑鍥�:{}", engineering);
+        return Result.build(200, "",engineering);
+    }
+
+    @ApiOperation("//涓婄墖鐮存崯鎷胯蛋")
+    @PostMapping("/insetDamage") //涓婄墖鐮存崯鎷胯蛋
+    public Result <Integer> updateTemperingState(@RequestBody Damage damage) {
+        damageService.insertDamage(damage);
+        return Result.build(200, "鎿嶄綔鎴愬姛", null);
+    }
+
+    @ApiOperation("璇嗗埆鎿嶄綔锛�   鐮存崯/鎷胯蛋     鍙傛暟锛圛D,鍔熻兘[9锛氭嬁璧帮紝8:鐮存崯]锛�")
+    @PostMapping("/identControls")
+    public Result<String> identControls(@RequestBody @Validated DamageRequest request) {
+        return Result.build(200, "鎴愬姛", upPattenUsageService.identControls(request));
+    }
+
+}
+
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/mapper/EngineeringMapper.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/mapper/EngineeringMapper.java
new file mode 100644
index 0000000..2491905
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/mapper/EngineeringMapper.java
@@ -0,0 +1,16 @@
+package com.mes.engineering.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.engineering.entity.Engineering;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-04-22
+ */
+public interface EngineeringMapper extends BaseMapper<Engineering> {
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/mapper/xml/EngineeringMapper.xml b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/mapper/xml/EngineeringMapper.xml
new file mode 100644
index 0000000..bff1839
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/mapper/xml/EngineeringMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.engineering.mapper.EngineeringMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java
new file mode 100644
index 0000000..da8eb31
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java
@@ -0,0 +1,264 @@
+package com.mes.job;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer;
+import com.mes.common.config.Const;
+import com.mes.engineering.entity.Engineering;
+import com.mes.engineering.mapper.EngineeringMapper;
+import com.mes.opctask.entity.LoadGlassDeviceTask;
+import com.mes.opctask.entity.LoadGlassDeviceTaskHistory;
+import com.mes.opctask.service.LoadGlassDeviceTaskHistoryService;
+import com.mes.opctask.service.LoadGlassDeviceTaskService;
+import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.service.OptimizeProjectService;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
+import com.mes.s7.entity.S7Data;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import com.mes.uppattenusage.entity.vo.UpPattenUsageVO;
+import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+
+import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/10/23 14:30
+ * @Description:
+ */
+@Component
+@Slf4j
+public class OpcLoadGlassTask {
+
+    @Resource
+    private EngineeringMapper engineeringMapper;
+
+    @Resource
+    private LoadGlassDeviceTaskService loadGlassDeviceTaskService;
+    @Resource
+    private RawGlassStorageDetailsService rawGlassStorageDetailsService;
+    @Resource
+    private LoadGlassDeviceTaskHistoryService loadGlassDeviceTaskHistoryService;
+    @Resource
+    private UpPattenUsageMapper upPattenUsageMapper;
+    @Resource
+    private OptimizeProjectService optimizeProjectService;
+
+    @Autowired(required = false)
+    S7Serializer s7Serializer;
+
+    private static final List<Integer> LOAD_STATION_01 = Arrays.asList(101, 102);
+    private static final List<Integer> LOAD_STATION_02 = Arrays.asList(103, 104);
+
+
+    private static final Integer LOAD_GLASS_ONE_DEVICE = 5;
+    private static final Integer LOAD_GLASS_TWO_DEVICE = 6;
+    private static final String LOAD_GLASS_DEVICE_ONE_TASK = "load_glass_device_one_task";
+
+    private static final String LOAD_GLASS_DEVICE_TWO_TASK = "load_glass_device_two_task";
+
+    //璁惧id   涓婄墖浣嶄俊鎭�   浠诲姟琛ㄤ笉涓�鑷�   鍘嗗彶浠诲姟琛ㄥ叕鐢ㄤ竴寮� 鏂板浠诲姟/浠诲姟缁撴潫锛屽悗浼氬湪鍘嗗彶琛ㄤ腑鏂板涓�鏉¤褰曞苟鍦ㄧ粨鏉熷悗鏇存柊浠诲姟  涓�涓换鍔″嵆鍙�
+    //瀹氭椂浠诲姟鎵弿涓婄墖浣嶆湁娌℃湁鍘熺墖
+    //1銆佹槸鍚︽湁鍦ㄦ墽琛岀殑浠诲姟
+    //2銆�1鍙蜂笂鐗囦綅鏄惁鏈夊師鐗囷紝鍘熺墖灏哄鏄惁鍜屼笂鐗囧緟涓婄墖鐨勫昂瀵镐竴鑷�
+    //3銆�1鍙锋棤鍘熺墖锛屼笖娌℃湁鏋跺瓙锛�2鍙蜂笂鐗囦綅灏哄鏄惁鍜屽甫涓婄墖灏哄涓�鑷�
+    //4銆佷笉涓�鑷村彲鑳藉嚭鐜扮幓鐠冪牬鎹熷鑷寸殑涓婁竴鏋跺師鐗囨暟閲忎笉澶�
+    @Scheduled(fixedDelay = 5000)
+    public void opcLoadGlassOne() {
+        opcLoadGlassChild(LOAD_GLASS_DEVICE_ONE_TASK, LOAD_GLASS_ONE_DEVICE);
+    }
+
+    //    @Scheduled(fixedDelay = 5000)
+    public void opcLoadGlassTwo() {
+        opcLoadGlassChild(LOAD_GLASS_DEVICE_TWO_TASK, LOAD_GLASS_TWO_DEVICE);
+    }
+
+    @Scheduled(fixedDelay = 5000)
+    public void opcLoadGlassOneFinish() {
+        opcLoadGlassFinishChid(LOAD_GLASS_DEVICE_ONE_TASK, LOAD_GLASS_ONE_DEVICE);
+    }
+
+    //    @Scheduled(fixedDelay = 5000)
+    public void opcLoadGlassTwoFinish() {
+        opcLoadGlassFinishChid(LOAD_GLASS_DEVICE_TWO_TASK, LOAD_GLASS_TWO_DEVICE);
+    }
+
+    /**
+     * 瀹氭椂浠诲姟鎵爜宸插畬鎴愪笂鐗囩殑宸ョ▼锛屽皢宸ョ▼鐘舵�佹敼涓哄凡瀹屾垚锛屽悓姝p琛ㄧ殑宸ョ▼琛紝鐘舵�佹敼涓�300
+     */
+    @Scheduled(fixedDelay = 5000)
+    public void updateEngineerState() {
+        log.info("淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�");
+        List<Engineering> engineerings = engineeringMapper.selectList(new LambdaQueryWrapper<Engineering>().eq(Engineering::getState, Const.ENGINEERING_RUNNING));
+        for (Engineering engineering : engineerings) {
+            Integer count = upPattenUsageMapper.selectCount(new LambdaQueryWrapper<UpPattenUsage>()
+                    .eq(UpPattenUsage::getEngineeringId, engineering.getEngineerId()).ne(UpPattenUsage::getState, Const.LOAD_RAW_GLASS_SUCCESS));
+            if (count == 0) {
+                engineeringMapper.update(null, new LambdaUpdateWrapper<Engineering>().set(Engineering::getState, Const.ENGINEERING_SUCCESS)
+                        .eq(Engineering::getEngineerId, engineering.getEngineerId()));
+                optimizeProjectService.update(null, new LambdaUpdateWrapper<OptimizeProject>().set(OptimizeProject::getState, 300)
+                        .eq(OptimizeProject::getProjectNo, engineering.getEngineerId()));
+            }
+        }
+    }
+
+    private void opcLoadGlassChild(String tableName, Integer deviceId) {
+        S7Data S7DataSP1 = s7Serializer.read(S7Data.class);
+        Engineering engineering = engineeringMapper.selectOne(new LambdaQueryWrapper<Engineering>()
+                .eq(Engineering::getState, Const.ENGINEERING_RUNNING).eq(Engineering::getStationCell, deviceId));
+        if (null == engineering) {
+            log.info("{}涓婄墖绾匡紝娌℃湁宸ョ▼浠诲姟", deviceId);
+            return;
+        }
+        //浠诲姟鏆傚仠
+        LoadGlassDeviceTask task = loadGlassDeviceTaskService.queryTaskMessage(tableName);
+        ;
+        if ("0".equals(S7DataSP1.getInkageState().toString())) {
+//        if (0 == task.getInkageState()) {
+            log.info("{}涓婄墖绾匡紝澶勪簬绂荤嚎鐘舵�侊細{}锛岀粨鏉熸湰鍦颁笂鐗囪姹�", deviceId, task.getInkageState());
+            return;
+        }
+        if (S7DataSP1.getTaskRunning().toString().equals(Const.ENGINEERING_RUNNING)) {
+//        if (task.getTaskRunning().equals(Const.ENGINEERING_RUNNING)) {
+            log.info("{}涓婄墖绾匡紝鏈夋鍦ㄦ墽琛岀殑浠诲姟锛岀粨鏉熸湰鍦颁笂鐗囪姹�", deviceId);
+            return;
+        }
+        List<UpPattenUsageVO> pattenUsageList = upPattenUsageMapper.queryRawGlassByEngineeringId(engineering.getEngineerId());
+        log.info("鎸夌収褰撳墠鑾峰彇鍒版鍦ㄩ渶瑕佷笂鐗囩殑鍘熺墖淇℃伅鏈夛細{}", pattenUsageList);
+        if (CollectionUtils.isEmpty(pattenUsageList)) {
+            log.info("褰撳墠宸ョ▼闇�瑕佷笂鐗囩殑鍘熺墖淇℃伅涓虹┖锛屼换鍔″凡缁撴潫");
+            //todo锛氭槸鍚﹀皢宸ョ▼鐘舵�佹敼涓哄凡瀹屾垚
+            return;
+        }
+        Map<String, List<UpPattenUsageVO>> upListMap = pattenUsageList.stream()
+                .collect(Collectors.groupingBy(UpPattenUsageVO::getGroupNumber));
+        log.info("鑾峰彇褰撳墠闇�瑕佷笂鐗囩殑鍘熺墖鏁版嵁");
+        List<UpPattenUsageVO> usageVOS = upListMap.get("1");
+//        鑾峰彇1鍙蜂笂鐗囦綅鏄湁鏋跺瓙涓旀湁鐜荤拑
+        List<Integer> loadStation = LOAD_GLASS_DEVICE_ONE_TASK.equals(tableName) ? LOAD_STATION_01 : LOAD_STATION_02;
+        List<RawGlassStorageDetails> loadStationList = rawGlassStorageDetailsService.list(new LambdaQueryWrapper<RawGlassStorageDetails>()
+                .inSql(RawGlassStorageDetails::getSlot, "select slot from raw_glass_storage_station where enable_state = 1")
+                .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN_ALL)
+                .eq(RawGlassStorageDetails::getDeviceId, deviceId));
+        if (CollectionUtils.isEmpty(loadStationList)) {
+            log.info("褰撳墠涓婄墖绾胯矾涓や釜涓婄墖浣嶉兘娌℃湁鍘熺墖淇℃伅锛岀粨鏉熸湰娆′笂鐗囦换鍔★紝绛夊緟浠撳偍璋冨害浠诲姟");
+            return;
+        }
+        RawGlassStorageDetails oneLoadStation = loadStationList.stream().filter(e -> e.getSlot().equals(loadStation.get(0))).findFirst().orElse(null);
+        if (null == oneLoadStation) {
+            RawGlassStorageDetails twoLoadStation = loadStationList.stream().filter(e -> e.getSlot().equals(loadStation.get(1))).findFirst().orElse(null);
+            if (!compareRawSize(usageVOS.get(0), twoLoadStation)) {
+                log.info("浜屽彿涓婄墖浣嶆湁鏋跺瓙锛屽師鐗囨暟閲忎负0鎴栬�呭師鐗囦俊鎭笌寰呬笂鐗囧昂瀵镐笉涓�鑷达紝缁撴潫鏈涓婄墖浠诲姟锛岀瓑寰呬粨鍌ㄨ皟搴︿换鍔�");
+                return;
+            }
+            int number = Math.min(twoLoadStation.getRemainQuantity(), usageVOS.size());
+            //鐢熸垚涓婄墖浠诲姟
+            task.setTotalCount(number);
+            task.setTaskRunning(Const.ENGINEERING_RUNNING);
+            task.setRawGlassWidth((int) usageVOS.get(0).getWidth());
+            task.setRawGlassHeight((int) usageVOS.get(0).getHeight());
+            task.setSlot(loadStation.get(1));
+            loadGlassDeviceTaskService.updateTaskMessage(tableName, task);
+            saveHistoryTask(task, deviceId);
+            return;
+        }
+        //灏哄涓嶄竴鏍锋垨鑰呭師鐗囨暟閲忓ぇ浜�0
+        if (!compareRawSize(usageVOS.get(0), oneLoadStation)) {
+            log.info("涓�鍙蜂笂鐗囦綅鏈夋灦瀛愶紝鍘熺墖鏁伴噺涓�0鎴栬�呭師鐗囦俊鎭笌寰呬笂鐗囧昂瀵镐笉涓�鑷达紝缁撴潫鏈涓婄墖浠诲姟锛岀瓑寰呬粨鍌ㄨ皟搴︿换鍔�");
+            return;
+        }
+        //鐢熸垚涓婄墖浠诲姟
+        int number = Math.min(oneLoadStation.getRemainQuantity(), usageVOS.size());
+        task.setTotalCount(number);
+        task.setTaskRunning(Const.ENGINEERING_RUNNING);
+        task.setRawGlassWidth((int) usageVOS.get(0).getWidth());
+        task.setRawGlassHeight((int) usageVOS.get(0).getHeight());
+        task.setSlot(loadStation.get(0));
+        loadGlassDeviceTaskService.updateTaskMessage(tableName, task);
+        saveHistoryTask(task, deviceId);
+    }
+
+    private void opcLoadGlassFinishChid(String tableName, Integer deviceId) {
+        S7Data S7DataSP1 = s7Serializer.read(S7Data.class);
+        LoadGlassDeviceTask task = loadGlassDeviceTaskService.queryTaskMessage(tableName);
+        if (S7DataSP1.getTaskRunning().toString().equals(Const.ENGINEERING_NEW)) {
+//        if (task.getTaskRunning().equals(Const.ENGINEERING_NEW)) {
+            log.info("鏃犱换鍔�,缁撴潫");
+            return;
+        }
+        if (Integer.parseInt(S7DataSP1.getTaskState().toString()) <= 1) {
+//        if (task.getTaskState() <= 1) {
+            log.info("浠诲姟姝e湪鎵ц,缁撴潫");
+            return;
+        }
+        //鑾峰彇浠诲姟瀹屾垚鎯呭喌
+//         宸插畬鎴愭暟閲�  鐮存崯鏁伴噺
+        Integer finishCount = Integer.parseInt(S7DataSP1.getFinishCount().toString());
+        Integer damageCount = Integer.parseInt(S7DataSP1.getDamageCount().toString());
+//        Integer finishCount = task.getFinishCount();
+//        Integer damageCount = task.getDamageCount();
+
+        //鏇存柊褰撳墠鏋跺瓙涓婄殑鍘熺墖鍓╀綑鎯呭喌
+        rawGlassStorageDetailsService.update(new UpdateWrapper<RawGlassStorageDetails>()
+                .inSql("slot", "select slot from raw_glass_storage_station where enable_state = 1")
+                .eq("slot", task.getSlot())
+                .eq("state", Const.RAW_GLASS_STATE_IN)
+                .setSql("remain_quantity = remain_quantity - " + (finishCount + damageCount)));
+        //鏇存柊宸ョ▼涓嬬殑鍘熺墖鏁伴噺 todo:sql寰呬紭鍖�
+
+        if (finishCount > 0) {
+            List<Integer> ids = upPattenUsageMapper.queryFinishByEngineering(deviceId, finishCount);
+            upPattenUsageMapper.update(null, new LambdaUpdateWrapper<UpPattenUsage>()
+                    .in(UpPattenUsage::getId, ids)
+                    .set(UpPattenUsage::getState, Const.LOAD_RAW_GLASS_SUCCESS));
+        }
+        //浠诲姟琛ㄦ暟鎹儏鍐�
+        task.setTaskRunning(0);
+        task.setTotalCount(0);
+        task.setRawGlassWidth(0);
+        task.setRawGlassHeight(0);
+        task.setSlot(0);
+        loadGlassDeviceTaskService.updateTaskMessage(tableName, task);
+        loadGlassDeviceTaskHistoryService.update(new LambdaUpdateWrapper<LoadGlassDeviceTaskHistory>()
+                .set(LoadGlassDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_SUCCESS)
+                .eq(LoadGlassDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                .eq(LoadGlassDeviceTaskHistory::getStation, deviceId)
+        );
+    }
+
+    private boolean saveHistoryTask(LoadGlassDeviceTask task, Integer deviceId) {
+        LoadGlassDeviceTaskHistory taskHistory = new LoadGlassDeviceTaskHistory();
+        BeanUtils.copyProperties(task, taskHistory);
+        taskHistory.setStation(deviceId);
+        taskHistory.setCreateTime(new Date());
+        taskHistory.setTaskState(Const.RAW_GLASS_TASK_NEW);
+        loadGlassDeviceTaskHistoryService.save(taskHistory);
+        return Boolean.TRUE;
+    }
+
+    /**
+     * 灏哄涓�鏍峰苟涓斿師鐗囨暟閲忓ぇ浜�0
+     *
+     * @param upPattenUsage
+     * @param details
+     * @return
+     */
+    private boolean compareRawSize(UpPattenUsage upPattenUsage, RawGlassStorageDetails details) {
+        boolean flag = upPattenUsage.getWidth() == details.getPatternWidth() && upPattenUsage.getHeight() == details.getPatternHeight() &&
+                upPattenUsage.getThickness() == details.getPatternThickness() && upPattenUsage.getFilmsId().equals(details.getFilmsId());
+        return flag && details.getRemainQuantity() > 0;
+    }
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
new file mode 100644
index 0000000..588bda2
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
@@ -0,0 +1,226 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.mes.common.S7object;
+import com.mes.device.PlcParameterObject;
+import com.mes.engineering.entity.Engineering;
+import com.mes.engineering.service.EngineeringService;
+import com.mes.opctask.entity.LoadGlassDeviceTask;
+import com.mes.opctask.service.LoadGlassDeviceTaskService;
+import com.mes.pp.service.OptimizeProjectService;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.mes.rawglassstation.service.RawGlassStorageStationService;
+import com.mes.tools.WebSocketServer;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import com.mes.uppattenusage.service.UpPattenUsageService;
+import com.mes.utils.RedisUtil;
+import com.mes.workstation.entity.UpWorkstation;
+import com.mes.workstation.service.UpWorkstationService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author SNG-010
+ */
+@Component
+@Slf4j
+public class PlcLoadGlassTask {
+
+    @Autowired
+    private UpWorkstationService upWorkstationService;
+    @Autowired
+    private EngineeringService engineeringService;
+    @Autowired
+    private UpPattenUsageService upPattenUsageService;
+    @Autowired
+    private OptimizeProjectService optimizeProjectService;
+    @Autowired
+    RedisUtil redisUtil;
+    @Resource
+    private LoadGlassDeviceTaskService loadGlassDeviceTaskService;
+    @Resource
+    private RawGlassStorageStationService rawGlassStorageStationService;
+
+    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+
+    private static final String LOAD_GLASS_DEVICE_ONE_TASK = "load_glass_device_one_task";
+
+    private static final String LOAD_GLASS_DEVICE_TWO_TASK = "load_glass_device_two_task";
+
+    /**
+     * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
+     * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
+     */
+
+//    @Scheduled(fixedDelay = 300)
+    public void plcLoadGlassTask() throws InterruptedException {
+        try {
+            //鑾峰彇鑱旀満鐘舵��
+            String inkageStatus = plcParameterObject.getPlcParameter("InkageStatus").getValue();
+            //鑾峰彇鏄惁鏈変笂鐗囪姹�
+            String loadRequest = plcParameterObject.getPlcParameter("loadRequest").getValue();
+            //mes鐘舵��
+            String mesToPlc = plcParameterObject.getPlcParameter("MesToPlc").getValue();
+            if ("1".equals(inkageStatus) && "1".equals(loadRequest)) {
+                //鍒ゆ柇寮�濮嬩笂鐗囩殑宸ョ▼鍙�
+                Engineering engineering = engineeringService.selectInitiate(1);
+                if (engineering != null) {
+                    log.info("寮�濮嬩笂鐗囦换鍔�");
+                    UpPattenUsage upPattenUsage = upWorkstationService.selectPriority(engineering);
+                    log.info("褰撴湁璇锋眰鏃舵煡璇㈠綋鍓嶄笂鐗囬『搴忕殑鐜荤拑淇℃伅{}", upPattenUsage);
+                    UpWorkstation upwork = upWorkstationService.selectWorkstation(upPattenUsage);
+                    log.info("绗﹀悎鐨勫昂瀵哥殑宸ヤ綅鐜荤拑锛歿}", upwork);
+                    if (upwork != null) {
+                        int workId = upwork.getWorkstationId();//宸ヤ綅id
+                        double width = upwork.getPatternWidth();//瀹藉害
+                        double height = upwork.getPatternHeight();//楂樺害
+                        S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("WorkId").getAddress(), workId);
+                        S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("GlassWidth").getAddress(), (int) width);
+                        S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("GlassHeight").getAddress(), (int) height);
+                        S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("MesToPlc").getAddress(), 1);
+                        //鏇存敼涓婄墖琛ㄧ姸鎬�
+                        upPattenUsageService.updateUpPattenUsageState(upPattenUsage, workId);
+
+                    }
+                }
+
+            }
+            if ("1".equals(mesToPlc) && "0".equals(loadRequest)) {
+                //璇锋眰瀛椾负闆舵椂锛屼换鍔″瓧娓呴浂
+                S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("MesToPlc").getAddress(), 0);
+            }
+            //鎵ц鍚庝紤鐪�300姣
+            //Thread.sleep(300);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    //    @Scheduled(fixedDelay = 300)
+    public void plcLoadGlassReport() {
+        //鑾峰彇鏄惁鏈夋眹鎶�
+        String loadStatus = plcParameterObject.getPlcParameter("PlcStatus").getValue();
+        if (loadStatus != null) {
+            log.info(loadStatus);
+            switch (loadStatus) {
+                case "1":
+                    log.info("鏀跺埌姹囨姤浠诲姟瀹屾垚");
+                    //鍑忓皯宸ヤ綅鏁伴噺,瀹屾垚浠诲姟鐘舵��
+                    overTask(loadStatus, 100);
+                    break;
+                case "2":
+                    log.info("鏀跺埌姹囨姤鏈畬鎴愪换鍔�");
+                    //鍑忓皯宸ヤ綅鏁伴噺,鎭㈠浠诲姟鐘舵��
+                    overTask(loadStatus, 0);
+                    break;
+                case "3":
+                    log.info("鏀跺埌姹囨姤鐜荤拑鐮存崯");
+                    overTask(loadStatus, 0);
+                    break;
+                case "0":
+                    S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 0);
+                    break;
+            }
+        }
+    }
+
+    @Scheduled(fixedDelay = 10000)
+    public void loadOneGlass() {
+        loadGlassChild("loadGlassRequestOne", 5, LOAD_GLASS_DEVICE_ONE_TASK, "loadGlassOne");
+    }
+
+    @Scheduled(fixedDelay = 10000)
+    public void loadTwoGlass() {
+        loadGlassChild("loadGlassRequestTwo", 6, LOAD_GLASS_DEVICE_TWO_TASK, "loadGlassTwo");
+    }
+
+
+    private void loadGlassChild(String redisRequest, int stationCell, String tableName, String webSocketName) {
+        try {
+            JSONObject jsonObject = new JSONObject();
+            //褰撳墠绾胯矾姝e湪鎵ц鐨勫伐绋�
+            Engineering engineering = engineeringService.getOne(new LambdaQueryWrapper<Engineering>().eq(Engineering::getStationCell, stationCell)
+                    .eq(Engineering::getState, 1).last("limit 1"));
+            if (null != engineering) {
+                jsonObject.append("engineering", engineering);
+            }
+            //鑾峰彇褰撳墠绾胯矾姝e湪鎵ц鐨勫伐绋嬪師鐗囦俊鎭�
+            Engineering request = redisUtil.getCacheObject(redisRequest);
+            if (request == null) {
+                request = new Engineering();
+                request.setStationCell(stationCell);
+            }
+            List<UpPattenUsage> upPattenUsages = upPattenUsageService.selectLoadTask(request);
+            jsonObject.append("upPattenUsages", upPattenUsages);
+
+            //鑱旀満鐘舵��
+            LoadGlassDeviceTask LoadTask = loadGlassDeviceTaskService.queryTaskMessage(tableName);
+            jsonObject.append("inkageState", LoadTask.getInkageState());
+            //宸ヤ綅淇℃伅
+            List<RawGlassStorageDetails> rawGlassStorageDetailList = rawGlassStorageStationService.listRawGlassDetails();
+            List<RawGlassStorageDetails> stationList = rawGlassStorageDetailList.stream().filter(item -> item.getDeviceId() == stationCell).collect(Collectors.toList());
+            jsonObject.append("stationList", stationList);
+
+            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get(webSocketName);
+            if (sendwServer != null) {
+                for (WebSocketServer webserver : sendwServer) {
+                    if (webserver != null) {
+                        webserver.sendMessage(jsonObject.toString());
+                    } else {
+                        log.info("loadGlass is closed");
+                    }
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+ 
+    //    @Scheduled(fixedDelay = 5000)
+    public void loadGlassStatus() {
+        JSONObject jsonObject = new JSONObject();
+        //姝e湪杩涜鐨勪换鍔�
+        String inkageStatus = plcParameterObject.getPlcParameter("InkageStatus").getValue();
+//        String inkageStatus ="1";
+        jsonObject.append("InkageStatus", inkageStatus);
+
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("loadGlass");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                } else {
+                    log.info("loadGlass is closed");
+                }
+            }
+        }
+    }
+
+
+    public void overTask(String loadStatus, int state) {
+
+        UpPattenUsage upPattenUsage = upPattenUsageService.selectOverTask();
+        if (upPattenUsage != null) {
+            log.info("鏀跺埌姹囨姤娓厈}鐘舵��", loadStatus);
+            //鍑忓皯宸ヤ綅鏁伴噺
+            upWorkstationService.reduceWorkstationNumber(upPattenUsage.getState());
+            //瀹屾垚涓婄墖琛ㄧ姸鎬�
+            upPattenUsageService.updateUpPattenUsageState(upPattenUsage, state);
+            //鍒ゆ柇鏄惁鏄渶鍚庝竴鍧楃幓鐠�
+            UpPattenUsage sequence = upPattenUsageService.selectSequence(upPattenUsage);
+            //濡傛灉鏄渶鍚庝竴鍧楁椂瀹屾垚宸ョ▼浠诲姟
+            optimizeProjectService.overTask(sequence, 300);
+        }
+        S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 1);
+    }
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/loadglassdevicetaskhistory/controller/LoadGlassDeviceTaskHistoryController.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/loadglassdevicetaskhistory/controller/LoadGlassDeviceTaskHistoryController.java
new file mode 100644
index 0000000..36aa0c8
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/loadglassdevicetaskhistory/controller/LoadGlassDeviceTaskHistoryController.java
@@ -0,0 +1,40 @@
+package com.mes.loadglassdevicetaskhistory.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.mes.opctask.entity.LoadGlassDeviceTaskHistory;
+import com.mes.opctask.entity.request.LoadGlassDeviceTaskHistoryRequest;
+import com.mes.opctask.service.LoadGlassDeviceTaskHistoryService;
+import com.mes.pp.service.OptimizeProjectService;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wf
+ * @since 2025-03-12
+ */
+@RestController
+@RequestMapping("/loadglassdevicetaskhistory")
+public class LoadGlassDeviceTaskHistoryController {
+
+    @Autowired
+    private LoadGlassDeviceTaskHistoryService loadGlassDeviceTaskHistoryService;
+
+    @ApiOperation("鎸夌収鏌ヨ鏉′欢鏌ヨ涓婄墖鍘嗗彶浠诲姟")
+    @PostMapping("/queryLoadGlassHistoryTask") //鏌ヨ鐜板湪涓婄墖鏈虹殑鐜荤拑淇℃伅
+    public Result<Page<LoadGlassDeviceTaskHistory>> queryBigStorageCageHistoryTask(@RequestBody @Validated LoadGlassDeviceTaskHistoryRequest request) {
+        return Result.build(200, "鏌ヨ鎴愬姛", loadGlassDeviceTaskHistoryService.queryLoadGlassHistoryTask(request));
+    }
+
+}
+
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/s7/entity/S7Data.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/s7/entity/S7Data.java
new file mode 100644
index 0000000..744f3bd
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/s7/entity/S7Data.java
@@ -0,0 +1,44 @@
+package com.mes.s7.entity;
+
+import com.github.xingshuangs.iot.protocol.common.enums.EDataType;
+import com.github.xingshuangs.iot.protocol.s7.serializer.S7Variable;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/4/30 14:19
+ * @Description:
+ */
+@Data
+public class S7Data {
+
+
+    @S7Variable(address = "DB19.14", type = EDataType.INT16)
+    private Integer taskState;
+
+    @S7Variable(address = "DB19.18", type = EDataType.INT16)
+    private Integer damageCount;
+
+    @S7Variable(address = "DB19.20", type = EDataType.INT16)
+    private Integer rawGlassWidth;
+
+    @S7Variable(address = "DB19.22", type = EDataType.INT16)
+    private Integer rawGlassHeight;
+
+    @S7Variable(address = "DB19.24", type = EDataType.INT16)
+    private Integer slot;
+
+    @S7Variable(address = "DB19.26", type = EDataType.INT16)
+    private Integer totalCount;
+
+    @S7Variable(address = "DB19.28", type = EDataType.INT16)
+    private Integer finishCount;
+
+    @S7Variable(address = "DB19.x16.0", type = EDataType.BOOL)
+    private Integer taskRunning;
+
+    @S7Variable(address = "DB19.30", type = EDataType.INT16)
+    private Integer inkageState;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java
new file mode 100644
index 0000000..1462b10
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java
@@ -0,0 +1,98 @@
+package com.mes.uppattenusage.controller;
+
+import com.mes.engineering.entity.Engineering;
+import com.mes.engineering.service.EngineeringService;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.pp.service.OptimizeProjectService;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import com.mes.uppattenusage.service.UpPattenUsageService;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-18
+ */
+@RestController
+@RequestMapping("/up-patten-usage")
+@Slf4j
+public class UpPattenUsageController {
+
+    @Autowired
+    private UpPattenUsageService upPattenUsageService;
+    @Autowired
+    private  GlassInfoService glassInfoService;
+    @Autowired
+    private  EngineeringService engineeringService;
+    @Autowired
+    private OptimizeProjectService optimizeProjectService;
+
+
+    @ApiOperation("鏄剧ず閫夋嫨鐨勫伐绋嬩俊鎭�")
+    @GetMapping("/prioritylist") //鏌ヨ鐜板湪涓婄墖鏈虹殑鐜荤拑淇℃伅
+    @ResponseBody
+    public Result<List<UpPattenUsage>> prioritylist() {
+        List<UpPattenUsage> glass = upPattenUsageService.prioritylist();
+        log.info("鏄剧ず姝e湪鍑虹墖鐨勫伐绋嬩俊鎭�:{}", glass);
+        return Result.build(200, "", glass);
+    }
+
+    @ApiOperation("閫夋嫨宸ョ▼鍙峰悗鏄剧ず涓婄墖椤哄簭棰勮")
+    @PostMapping("/selectUpPattenUsage") //鏌ヨ鐜板湪涓婄墖鏈虹殑鐜荤拑淇℃伅
+    @ResponseBody
+    public Result<List<UpPattenUsage>> selectUpPattenUsage(@RequestBody Engineering engineering) {
+        List<UpPattenUsage> upPattenUsages = null;
+        UpPattenUsage upPattenUsage = upPattenUsageService.selectedEngineering(engineering.getEngineerId());
+        if (upPattenUsage == null) {
+//            return Result.build(200, "澶辫触鏃犳暟鎹�", null);
+//            upPattenUsages = upPattenUsageService.selectSaveUpPattenUsage(engineering.getEngineerId(), engineering.getFilmRemove(), engineering.getStationCell());
+            upPattenUsages = upPattenUsageService.selectSaveUpPattenUsage(engineering.getEngineerId());
+        } else {
+            upPattenUsages = upPattenUsageService.selectUpPattenUsage(upPattenUsage);
+        }
+
+        if (!upPattenUsages.isEmpty()) {
+            return Result.build(200, "鎴愬姛", upPattenUsages);
+        } else {
+            return Result.build(100, "澶辫触", upPattenUsages);
+        }
+
+        }
+
+    @ApiOperation("鍒囨崲鍘熺墖涓婄墖鐘舵��")
+    @PostMapping("/updateGlassState") //鏌ヨ鐜板湪涓婄墖鏈虹殑鐜荤拑淇℃伅
+    @ResponseBody
+    public Result<Boolean> updateGlassState(@RequestBody UpPattenUsage upPattenUsage) {
+        Boolean whether = upPattenUsageService.updateGlassState(upPattenUsage);
+        if (whether) {
+            return Result.build(200, "鎴愬姛", whether);
+        } else {
+            return Result.build(100, "澶辫触", whether);
+        }
+
+    }
+
+    @ApiOperation("璁剧疆涓婄墖鏌ヨ鏉′欢")
+    @PostMapping("/setUpPattenRequest")
+    public Result setRawGlassTaskRequest(@RequestBody Engineering request) {
+        log.info("鏌ヨ涓婄墖淇℃伅:{}", request);
+        if (request.getStationCell() == 5) {
+            return Result.build(200, "鏌ヨ1鍙风嚎", upPattenUsageService.setRawGlassTaskRequest(request));
+        } else if (request.getStationCell() == 6) {
+            return Result.build(200, "鏌ヨ2鍙风嚎", upPattenUsageService.setRawGlassTaskRequest2(request));
+        } else {
+            return Result.build(100, "鏌ヨ澶辫触", null);
+        }
+
+    }
+}
+
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/entity/OptimizeUpPattenUsage.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/entity/OptimizeUpPattenUsage.java
new file mode 100644
index 0000000..3b9b0e0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/entity/OptimizeUpPattenUsage.java
@@ -0,0 +1,50 @@
+package com.mes.uppattenusage.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author SNG-010
+ */
+@Setter
+@Getter
+public class OptimizeUpPattenUsage {
+
+    // Getter methods
+    // Setter methods
+    /**
+     * 宸ョ▼鍙�
+     */
+    private String projectNo;
+
+    /**
+     * 鑶滅郴id
+     */
+    private String glassType;
+
+    /**
+     * 瀹�
+     */
+    private double width;
+
+    /**
+     * 楂�
+     */
+    private double height;
+
+    /**
+     * 鍘氬害
+     */
+    private double glassThickness;
+
+    /**
+     * 鍘熺墖鐗堝浘鐗囧簭
+     */
+    private Integer stockId;
+
+    /**
+     * 鐘舵��
+     */
+    private Integer state;
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java
new file mode 100644
index 0000000..9a793da
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java
@@ -0,0 +1,93 @@
+package com.mes.uppattenusage.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.mes.damage.entity.request.DamageRequest;
+import com.mes.engineering.entity.Engineering;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-18
+ */
+public interface UpPattenUsageService extends MPJBaseService<UpPattenUsage> {
+     /**
+      * 鏌ヨ宸ヤ綅涓婄殑鐜荤拑淇℃伅
+      * @return List<UpPattenUsage>
+      */
+     List<UpPattenUsage> prioritylist();
+     /**
+      * 鏌ヨ涓婄墖琛ㄧ殑宸ョ▼淇℃伅
+      * @return List<UpPattenUsage>
+      */
+     List<UpPattenUsage> selectUpPattenUsage(UpPattenUsage upPattenUsage);
+     /**
+      * 鏌ヨ涓婄墖椤哄簭淇℃伅
+      * @return List<UpPattenUsage>
+      */
+     List<UpPattenUsage> selectSaveUpPattenUsage(String engineeringId);
+     /**
+      * 淇濆瓨涓婄墖椤哄簭淇℃伅
+      */
+     void saveUpPattenUsage(List<UpPattenUsage> upPattenUsages);
+     /**
+      * 鏇存柊涓婄墖琛ㄧ姸鎬�
+      */
+     void updateUpPattenUsageState(UpPattenUsage upPattenUsage, Integer state);
+
+     /**
+      * 鍒ゆ柇姝ゅ伐绋嬫槸鍚﹀凡淇濆瓨杩�
+      *
+      * @return UpPattenUsage
+      */
+     UpPattenUsage selectedTaskEngineering(String engineeringId);
+
+     /**
+      * 鏌ヨ姝e湪鎵ц鐨勪笂鐗囦换鍔�
+      *
+      * @return UpPattenUsage
+      */
+     UpPattenUsage selectOverTask();
+     /**
+      * 鏌ヨ涓婄墖鏈�鍚庝竴鍧楃殑鐜荤拑
+      * @return UpPattenUsage
+      */
+     UpPattenUsage selectSequence(UpPattenUsage upPattenUsage);
+
+     /**
+      * 鏇存敼涓婄墖鐜荤拑鐘舵��
+      *
+      * @return UpPattenUsage
+      */
+     Boolean updateGlassState(UpPattenUsage upPattenUsage);
+
+     String setRawGlassTaskRequest(Engineering request);
+
+     String setRawGlassTaskRequest2(Engineering request);
+
+//     List<UpPattenUsage> selectSaveUpPattenUsage(String engineerId, Integer filmRemove, Integer stationCell);
+
+//     UpPattenUsage selectedEngineering(String engineerId, Integer filmRemove, Integer stationCell);
+
+     UpPattenUsage selectedEngineering(String engineerId);
+
+    void deleteTask(String engineerId);
+
+
+     List<UpPattenUsage> selectLoadTask(Engineering engineering);
+
+     /**
+      * 鎷胯蛋:9/鐮存崯:8
+      *
+      * @param request
+      * @return
+      */
+     String identControls(DamageRequest request);
+
+}
+
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java
new file mode 100644
index 0000000..2c9f493
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java
@@ -0,0 +1,232 @@
+package com.mes.uppattenusage.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.query.MPJQueryWrapper;
+import com.mes.damage.entity.request.DamageRequest;
+import com.mes.damage.service.DamageService;
+import com.mes.engineering.entity.Engineering;
+import com.mes.engineering.service.EngineeringService;
+import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.mapper.OptimizeProjectMapper;
+import com.mes.uppattenusage.entity.OptimizeUpPattenUsage;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
+import com.mes.uppattenusage.service.UpPattenUsageService;
+import com.mes.utils.RedisUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-18
+ */
+@Service
+@Slf4j
+public class UpPattenUsageServiceImpl extends MPJBaseServiceImpl<UpPattenUsageMapper, UpPattenUsage> implements UpPattenUsageService {
+
+    @Autowired
+    OptimizeProjectMapper optimizeProjectMapper;
+    @Autowired
+    EngineeringService engineeringService;
+    @Autowired
+    DamageService damageService;
+    @Autowired
+    RedisUtil redisUtil;
+    @Override
+    public List<UpPattenUsage> prioritylist() {
+        //鑾峰彇姝e湪涓婄墖鐨勪换鍔d
+        Engineering engineering= engineeringService.selectInitiate(1);
+        //log.info("灏嗗弬鏁颁紶鍏ュ埌鏌ヨ绫婚噷{}",engineering);
+        if(engineering!=null){
+            LambdaQueryWrapper<UpPattenUsage> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(UpPattenUsage::getEngineeringId, engineering.getEngineerId());
+            return this.list(wrapper);
+        } else {
+            return null;
+        }
+
+    }
+
+    @Override
+    public List<UpPattenUsage> selectLoadTask(Engineering cell) {
+        //鑾峰彇姝e湪涓婄墖鐨勪换鍔d
+        Engineering engineering = engineeringService.selectInitiates(1, cell.getStationCell());
+        //log.info("灏嗗弬鏁颁紶鍏ュ埌鏌ヨ绫婚噷{}",engineering);
+        if(engineering!=null){
+            LambdaQueryWrapper<UpPattenUsage> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(UpPattenUsage::getEngineeringId, engineering.getEngineerId());
+            if (cell.getState() != null) {
+                wrapper.eq(UpPattenUsage::getState, cell.getState());
+            }
+            return this.list(wrapper);
+        } else {
+            return null;
+        }
+    }
+
+    @Override
+    public List<UpPattenUsage> selectUpPattenUsage(UpPattenUsage upPattenUsage) {
+        LambdaQueryWrapper<UpPattenUsage> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(UpPattenUsage::getEngineeringId, upPattenUsage.getEngineeringId());
+//                .eq(UpPattenUsage::getStationCell, upPattenUsage.getStationCell())
+//                .eq(UpPattenUsage::getFilmRemove, upPattenUsage.getFilmRemove());
+
+        return this.list(wrapper);
+    }
+
+    @Override
+    @DS("pp")
+    public List<UpPattenUsage> selectSaveUpPattenUsage(String engineeringId) {
+
+        List<OptimizeUpPattenUsage> upPattenUsageList = null;
+        if (engineeringId != null) {
+            upPattenUsageList = optimizeProjectMapper.selectJoinList(OptimizeUpPattenUsage.class, new MPJQueryWrapper<OptimizeProject>()
+                    .select("t.project_no,t.glass_type,b.realwidth as width,b.realheight as height ,REGEXP_REPLACE(t.glass_thickness,'\\D','')as glass_thickness,b.stock_id")
+                    .leftJoin("optimize_layout b on t.project_no=b.project_no")
+                    .eq("b.project_no", engineeringId));
+        }
+        // 鍒涘缓涓�涓� List 鐢ㄤ簬淇濆瓨鏄犲皠鍚庣殑瀹炰綋瀵硅薄
+        List<UpPattenUsage> resultList = new ArrayList<>();
+
+// 閬嶅巻鏌ヨ缁撴灉涓殑姣忎釜 Map 瀵硅薄
+        if (upPattenUsageList != null) {
+            for (OptimizeUpPattenUsage map : upPattenUsageList) {
+                // 鍒涘缓涓�涓柊鐨� OptimizeProject 瀵硅薄
+                UpPattenUsage optimizeProject = new UpPattenUsage();
+                // 灏� Map 涓殑姣忎釜閿�煎鏄犲皠鍒� OptimizeProject 瀵硅薄鐨勭浉搴斿瓧娈典笂
+                optimizeProject.setEngineeringId(map.getProjectNo());
+                optimizeProject.setFilmsId( map.getGlassType());
+                optimizeProject.setWidth(map.getWidth());
+                optimizeProject.setHeight( map.getHeight());
+                optimizeProject.setThickness(map.getGlassThickness());
+                optimizeProject.setLayoutSequence( map.getStockId());
+                optimizeProject.setState(0);
+                // 灏嗘槧灏勫悗鐨勫璞℃坊鍔犲埌缁撴灉鍒楄〃涓�
+                resultList.add(optimizeProject);
+            }
+        }
+        log.info("鏌ヨ鍑轰笂鐗囬『搴忛泦鍚堜繚瀛樺埌瀹炰綋绫粄}",resultList);
+        return resultList;
+    }
+
+    @Override
+    public void saveUpPattenUsage(List<UpPattenUsage> upPattenUsage) {
+        if (CollectionUtil.isEmpty(upPattenUsage)){
+            return;
+        }
+        String engineerId = upPattenUsage.get(0).getEngineeringId();
+        int count = this.count(new LambdaQueryWrapper<UpPattenUsage>().eq(UpPattenUsage::getEngineeringId, engineerId));
+        if (count <=0){
+            //淇濆瓨鍘熺墖浣跨敤璇︽儏琛�
+            this.saveBatch(upPattenUsage);
+        }
+    }
+
+    @Override
+    public void updateUpPattenUsageState(UpPattenUsage upPattenUsage, Integer state) {
+        upPattenUsage.setState(state);
+        boolean updateSuccess = this.updateById(upPattenUsage);
+        log.info("鏇存柊鐘舵�亄}", updateSuccess);
+        //鏇存柊鐘舵��
+    }
+
+    @Override
+    public UpPattenUsage selectedTaskEngineering(String engineeringId) {
+        return null;
+    }
+
+    @Override
+    public UpPattenUsage selectedEngineering(String engineerId) {
+        QueryWrapper<UpPattenUsage> wrapper = new QueryWrapper<>();
+        wrapper.eq("engineering_id", engineerId)
+//                .eq("station_cell", stationCell)
+//                .eq("film_remove", filmRemove)
+                .last("limit 1");
+        log.info("鏌ヨ棰勮鍙傛暟");
+        log.info("鏌ヨ棰勮鍙傛暟{}", this.getOne(wrapper));
+        return this.getOne(wrapper);
+    }
+
+    @Override
+    public void deleteTask(String engineerId) {
+        QueryWrapper<UpPattenUsage> wrapper = new QueryWrapper<>();
+        wrapper.eq("engineering_id",engineerId);
+        this.remove(wrapper);
+    }
+
+
+
+    @Override
+    public UpPattenUsage selectOverTask() {
+        QueryWrapper<UpPattenUsage>wrapper = new QueryWrapper<>();
+        wrapper.gt("state",0)
+                .lt("state",99)
+                .last("limit 1");
+        return this.getOne(wrapper);
+    }
+
+    @Override
+    //鑾峰彇鏈�鍚庝竴鍧楃幓鐠�
+    public UpPattenUsage selectSequence(UpPattenUsage upPattenUsage) {
+        QueryWrapper<UpPattenUsage>wrapper = new QueryWrapper<>();
+        wrapper.eq("engineering_id",upPattenUsage.getEngineeringId())
+                .orderByDesc("layout_sequence")
+                .last("limit 1");
+        return this.getOne(wrapper);
+    }
+
+    @Override
+    public Boolean updateGlassState(UpPattenUsage upPattenUsage) {
+        UpdateWrapper<UpPattenUsage> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("id", upPattenUsage.getId())
+                .set("state", upPattenUsage.getState());
+        return this.update(updateWrapper);
+    }
+
+    @Override
+    public String setRawGlassTaskRequest(Engineering request) {
+        // 璋冪敤 RedisUtil 淇濆瓨 loadGlass
+        if (request == null) {
+            redisUtil.deleteObject("loadGlassRequestOne");
+        } else {
+            redisUtil.setCacheObject("loadGlassRequestOne", request);
+        }
+        return "success";
+    }
+
+    @Override
+    public String setRawGlassTaskRequest2(Engineering request) {
+        // 璋冪敤 RedisUtil 淇濆瓨 loadGlass
+        if (request == null) {
+            redisUtil.deleteObject("loadGlassRequestTwo");
+        } else {
+            redisUtil.setCacheObject("loadGlassRequestTwo", request);
+        }
+        return "success";
+    }
+
+
+    public Object Engineering(Engineering request) {
+        return null;
+    }
+
+    @Override
+    public String identControls(DamageRequest request) {
+        //灏嗚瘑鍒牬鎹熺殑鐜荤拑鐩存帴鍔犲叆鐮存崯琛�
+        damageService.autoSubmitReport(request.getGlassId(), request.getLine(), request.getWorkingProcedure(), "涓婄墖鏈�", request.getState());
+        return "success";
+    }
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java
new file mode 100644
index 0000000..de9796e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java
@@ -0,0 +1,65 @@
+package com.mes.workstation.controller;
+
+
+import com.mes.utils.Result;
+import com.mes.workstation.entity.UpWorkstation;
+import com.mes.workstation.service.UpWorkstationService;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@RestController
+@RequestMapping("/LoadGlass")
+@Slf4j
+public class UpWorkstationController {
+    @Autowired
+    private UpWorkstationService upWorkstationService;
+    @ApiOperation("鏄剧ず宸ヤ綅涓婄殑鐜荤拑淇℃伅")
+    @GetMapping("/list") //鏌ヨ鐜板湪涓婄墖鏈虹殑鐜荤拑淇℃伅
+    @ResponseBody
+    public Result<List<UpWorkstation>> list() {
+        List<UpWorkstation> glass = upWorkstationService.list();
+        log.info("鏄剧ず宸ヤ綅涓婄殑鐜荤拑淇℃伅:{}", glass);
+        return Result.build(200, "", glass);
+    }
+
+    //鏂板宸ヤ綅淇℃伅淇敼涓�鏉″伐浣嶄俊鎭�,鎺ユ敹瀹炰緥绫诲瓧娈典负瀹介珮鍘氳啘绯绘暟閲忓伐浣峣d
+    //鍒犻櫎宸ヤ綅淇℃伅涔熺敤杩欎釜,闄や簡宸ヤ綅id鐜荤拑淇℃伅浼爊ull
+    @ApiOperation("淇敼宸ヤ綅琛ㄥ鍔犵幓鐠冧俊鎭垨鑰呭垹闄ょ幓鐠冧俊鎭�,浼犻�扷pworkstation绫�,鍙慨鏀瑰楂樺帤鏁伴噺鑶滅郴")
+    @PostMapping("/updateGlassMessage")
+    @ResponseBody
+    public Result<List<UpWorkstation>> updateGlassMessage(@RequestBody UpWorkstation upwork) {
+        Boolean info= upWorkstationService.updateGlassMessage(upwork);
+        List<UpWorkstation> glass = upWorkstationService.list();
+        if(info){
+            return Result.build(200, "鎴愬姛", glass);
+        }else{
+            return Result.build(100, "澶辫触", glass);
+        }
+
+    }
+
+
+
+    @ApiOperation("淇敼涓婄墖mes鑱斿姩璇锋眰瀛�")
+    @PostMapping("/updateMesInkageLoad")
+    @ResponseBody
+    public Result<String> updateMesInkageLoad(@RequestBody short inKageWord) {
+        String result = upWorkstationService.updateMesInkageLoad(inKageWord);
+        return Result.success(result);
+
+    }
+
+}
+
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkSequence.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkSequence.java
new file mode 100644
index 0000000..692263e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkSequence.java
@@ -0,0 +1,15 @@
+package com.mes.workstation.entity;
+
+import lombok.Data;
+
+/**
+ * @author wu
+ */
+@Data
+public class UpWorkSequence {
+
+    private int sequence;
+    private int workId;
+    private int number;
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkstation.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkstation.java
new file mode 100644
index 0000000..3fa49a8
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkstation.java
@@ -0,0 +1,76 @@
+package com.mes.workstation.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class UpWorkstation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 涓婄墖宸ヤ綅琛╥d
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 宸ヤ綅鍙�
+     */
+    private Integer workstationId;
+
+    /**
+     * 璁惧id
+     */
+    private Integer deviceId;
+
+    /**
+     * 鍚敤鐘舵��
+     */
+    private Integer enableState;
+
+    /**
+     * 宸ヤ綔鐘舵��
+     */
+    private Integer workState;
+
+    /**
+     * 鍘熺墖瀹�
+     */
+    private double patternWidth;
+
+    /**
+     * 鍘熺墖楂�
+     */
+    private double patternHeight;
+
+    /**
+     * 鍘熺墖鍘氬害
+     */
+    private double patternThickness;
+
+    /**
+     * 鑶滅郴
+     */
+    private String filmsId;
+
+    /**
+     * 鏁伴噺
+     */
+    private Integer number;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/UpWorkstationMapper.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/UpWorkstationMapper.java
new file mode 100644
index 0000000..d25be0d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/UpWorkstationMapper.java
@@ -0,0 +1,21 @@
+package com.mes.workstation.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.workstation.entity.UpWorkSequence;
+import com.mes.workstation.entity.UpWorkstation;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface UpWorkstationMapper extends BaseMapper<UpWorkstation> {
+    //鑾峰彇宸ヤ綅淇℃伅
+    UpWorkSequence selectPriority(@Param("id") int id);
+
+    //鑾峰彇涓嬩竴鐗囩幓鐠冧俊鎭�
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java
new file mode 100644
index 0000000..9a7be55
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java
@@ -0,0 +1,42 @@
+package com.mes.workstation.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.engineering.entity.Engineering;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import com.mes.workstation.entity.UpWorkstation;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface UpWorkstationService extends IService<UpWorkstation> {
+
+    //鍒ゆ柇浼樺厛鍚哥墖鐜荤拑
+    /**
+     * 鍒ゆ柇浼樺厛鍚哥墖浣嶇疆
+     * @return UpPattenUsage
+     */
+    UpPattenUsage selectPriority(Engineering engineering);
+    /**
+     * 鏌ヨ姝e湪杩涜鐨勫崟鐗囦俊鎭�
+     * @return UpWorkstation
+     */
+    UpWorkstation selectWorkstation(UpPattenUsage upPattenUsage);
+    /**
+     * 鍑忓皯宸ヤ綅鏁伴噺
+     */
+    void reduceWorkstationNumber(Integer upworkId);
+    /**
+     * 澧炲姞浜哄伐杈撳叆鐨勫伐浣嶇幓鐠冧俊鎭�
+     * @param upwork
+     */
+    Boolean updateGlassMessage(UpWorkstation upwork);
+
+
+    String updateMesInkageLoad(short inKageWord);
+}
+
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java
new file mode 100644
index 0000000..ec327ab
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java
@@ -0,0 +1,101 @@
+package com.mes.workstation.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.common.S7object;
+import com.mes.device.PlcParameterObject;
+import com.mes.engineering.entity.Engineering;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
+import com.mes.workstation.entity.UpWorkstation;
+import com.mes.workstation.mapper.UpWorkstationMapper;
+import com.mes.workstation.service.UpWorkstationService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Service
+@Slf4j
+
+public class UpWorkstationServiceImpl extends ServiceImpl<UpWorkstationMapper, UpWorkstation> implements UpWorkstationService {
+    @Resource
+    UpPattenUsageMapper upPattenUsageMapper;
+    @Resource
+    UpWorkstationMapper upWorkstationMapper;
+
+
+    //鍒ゆ柇浼樺厛鍚哥墖浣嶇疆鍚庡彂閫佸嚭鐗囦换鍔�
+
+    @Override
+    public UpPattenUsage selectPriority(Engineering engineering) {
+        QueryWrapper<UpPattenUsage> wrapper = new QueryWrapper<>();
+        wrapper.eq("state", 0)
+                .eq("engineering_id", engineering.getEngineerId())
+                .orderByAsc("layout_sequence")
+                .last("limit 1");
+        return upPattenUsageMapper.selectOne(wrapper);
+    }
+
+    //鍒ゆ柇宸ヤ綅鏄惁鏈夌鍚堟潯浠剁殑鐜荤拑
+    @Override
+    public UpWorkstation selectWorkstation(UpPattenUsage upPattenUsage) {
+        QueryWrapper<UpWorkstation> wrapper = new QueryWrapper<>();
+        wrapper.eq("pattern_width", upPattenUsage.getWidth())
+                .eq("pattern_height", upPattenUsage.getHeight())
+                .eq("pattern_thickness", upPattenUsage.getThickness())
+                .eq("films_id", upPattenUsage.getFilmsId())
+                .gt("number", 0)
+                .orderByAsc("number")
+                .last("limit 1");
+        return this.baseMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public void reduceWorkstationNumber(Integer upworkId) {
+        UpdateWrapper<UpWorkstation> wrapper = new UpdateWrapper<>();
+        wrapper.eq("id", upworkId)
+                .setSql("number = number - 1");
+        boolean updateResult = upWorkstationMapper.update(null, wrapper) > 0;
+        log.info("鍑忓皯宸ヤ綅鏁伴噺{}", updateResult);
+
+    }
+
+    /**
+     * 澧炲姞浜哄伐杈撳叆鐨勫伐浣嶇幓鐠冧俊鎭�/鍒犻櫎浜哄伐鎼蛋鐨勭幓鐠冧俊鎭�
+     */
+    @Override
+    public Boolean updateGlassMessage(UpWorkstation upwork) {
+        int update = 0;
+        UpdateWrapper<UpWorkstation> updateWrapper = new UpdateWrapper<>();
+        if (upwork.getWorkstationId() == 1 || upwork.getWorkstationId() == 3) {
+            updateWrapper.eq("workstation_id", upwork.getWorkstationId());
+             update = this.baseMapper.update(upwork, updateWrapper);
+        } else {
+            if (upwork.getPatternHeight() > 2700 || upwork.getPatternHeight() == 0) {
+                updateWrapper.eq("workstation_id", upwork.getWorkstationId());
+                 update = this.baseMapper.update(upwork, updateWrapper);
+            }
+        }
+        return update>0;
+    }
+
+    @Override
+    public String updateMesInkageLoad(short inKageWord) {
+        PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+        log.info("淇敼璁惧鑱斿姩璇锋眰涓簕}锛�0绂荤嚎锛�1鑱斿姩", inKageWord);
+        S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("InkageStatus").getAddress(), inKageWord);
+        //璇诲彇plc鐨勫��
+        return plcParameterObject.getPlcParameter("InkageStatus").getValue();
+    }
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/JsonFile/PlcLoadGlass.json b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/JsonFile/PlcLoadGlass.json
new file mode 100644
index 0000000..9b0432b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/JsonFile/PlcLoadGlass.json
@@ -0,0 +1,78 @@
+{
+  "plcAddressBegin":"DB1.2000",
+  "plcAddressLenght":"100",
+  "dataType":"word",
+  "parameteInfor":[
+    {
+      "codeId": "loadRequest",
+      "addressIndex":"0",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":"m/min"
+    },
+    {
+      "codeId": "PlcStatus",
+      "addressIndex":"10",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "MesToPlc",
+      "addressIndex":"20",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "InkageStatus",
+      "addressIndex":"22",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "WorkId",
+      "addressIndex":"24",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "GlassWidth",
+      "addressIndex":"26",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "GlassHeight",
+      "addressIndex":"28",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    }
+  ,
+    {
+      "codeId": "MesToPlcStatus",
+      "addressIndex":"40",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "MesToPlcStatusId",
+      "addressIndex":"42",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "MesTaskStatus",
+      "addressIndex":"56",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    }
+  ]
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-alg.yml b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-alg.yml
new file mode 100644
index 0000000..3b9e9b1
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-alg.yml
@@ -0,0 +1,43 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.10.86:3306/north_glass_mes?serverTimezone=GMT%2b8&allowMultiQueries=true
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://192.168.10.86:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        sd:
+          url: jdbc:mysql://192.168.10.86:3306/sd?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+      druid:
+        wall:
+          multi-statement-allow: true
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 192.168.10.86:8848
+  redis:
+    database: 0
+    host: 192.168.10.86
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: false
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://192.168.10.86:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-cz.yml b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-cz.yml
new file mode 100644
index 0000000..34ec8d0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-cz.yml
@@ -0,0 +1,30 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.1.199:3306/hangzhoumes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://192.168.1.199:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        sd:
+          url: jdbc:mysql://192.168.1.199:3306/sd?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-dev.yml b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..a2fcb8a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-dev.yml
@@ -0,0 +1,43 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://127.0.0.1:3306/hangzhoumes?serverTimezone=GMT%2b8
+          username: root
+          password: 123456
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://127.0.0.1:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: 123456
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        sd:
+          url: jdbc:mysql://127.0.0.1:3306/sd?serverTimezone=GMT%2b8
+          username: root
+          password: 123456
+          driver-class-name: com.mysql.cj.jdbc.Driver
+      druid:
+        wall:
+          multi-statement-allow: true
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password:
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://10.153.19.150:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..972403f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-prod.yml
@@ -0,0 +1,40 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://10.153.19.150:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        sd:
+          url: jdbc:mysql://10.153.19.150:3306/sd?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 10.153.19.150:8849
+  redis:
+    database: 0
+    host: 10.153.19.150
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://10.153.19.150:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-yw.yml b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-yw.yml
new file mode 100644
index 0000000..58c369e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-yw.yml
@@ -0,0 +1,43 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.2.100:3306/north_glass_mes?serverTimezone=GMT%2b8&allowMultiQueries=true
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://192.168.2.100:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        sd:
+          url: jdbc:mysql://192.168.2.100:3306/sd?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+      druid:
+        wall:
+          multi-statement-allow: true
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 192.168.2.100:8848
+  redis:
+    database: 0
+    host: 192.168.2.100
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://192.168.2.100:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
new file mode 100644
index 0000000..3352a84
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
@@ -0,0 +1,13 @@
+server:
+  port: 10015
+spring:
+  profiles:
+    active: dev
+  application:
+    name: loadGlass
+  liquibase:
+    enabled: false
+mybatis-plus:
+  mapper-locations: classpath*:mapper/*.xml
+#  configuration:
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/logback-spring.xml b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..274b5bb
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/logback-spring.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="10 seconds">
+    <!-- logger涓婁笅鏂囧悕绉帮紙鏍规嵁涓氬姟淇敼锛� -->
+    <contextName>loadGlass</contextName>
+
+    <!-- 瀹氫箟浜嗕竴涓悕涓簊erverName鐨勫睘鎬э紝瀹冪殑鍊兼潵鑷簬logging.file.name锛屽鏋滄病鏈夋壘鍒拌灞炴�ч粯璁や负MyServerName锛堟牴鎹笟鍔′慨鏀癸級 -->
+    <springProperty name="serverName" source="logging.file.name" defaultValue="loadGlass"/>
+    <springProperty name="logging.path" source="logging.file.path" defaultValue="././logs/"/>
+
+    <!-- 褰╄壊鏃ュ織渚濊禆鐨勬覆鏌撶被 -->
+    <!-- 瀹氫箟浜嗕竴涓悕涓篶lr鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.ColorConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗘棩蹇楄緭鍑轰腑鐨勬枃鏈潃鑹诧紝浠ヤ究鏇村鏄撳湴鍖哄垎涓嶅悓鐨勬棩蹇楃骇鍒垨鍏朵粬淇℃伅 -->
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
+    <!-- WhitespaceThrowableProxyConverter鍜孍xtendedWhitespaceThrowableProxyConverter閮芥槸鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず鐨勭被銆傚畠浠箣闂寸殑鍖哄埆鍦ㄤ簬锛孍xtendedWhitespaceThrowableProxyConverter鍦ㄨ緭鍑哄紓甯镐俊鎭椂浼氬寘鍚洿澶氱殑璇︾粏淇℃伅锛屼緥濡傚紓甯哥殑绫诲悕銆佹柟娉曞悕鍜岃鍙风瓑 -->
+    <!-- 瀹氫箟浜嗕竴涓悕涓簑ex鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <conversionRule conversionWord="wex"
+                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
+    <!-- 瀹氫箟浜嗕竴涓悕涓簑Ex鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <conversionRule conversionWord="wEx"
+                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
+
+    <!-- 褰╄壊鏃ュ織鏍煎紡 -->
+    <!-- value鍊兼槸鏃ュ織杈撳嚭妯℃澘锛� :-鏄睘鎬у悕鍜屽叾榛樿鍊间箣闂寸殑鍒嗛殧绗︼紝浣滅敤涓�:鐩稿悓 -->
+    <!-- 瀹氫箟鏃ュ織杈撳嚭鏍煎紡鐨勮浆鎹㈣鍒欙紝%d{yyyy-MM-dd HH:mm:ss.SSS}琛ㄧず鏃ユ湡鍜屾椂闂达紝%clr琛ㄧず灏嗚緭鍑烘枃鏈潃鑹诧紝{faint}琛ㄧず浣跨敤娣¤壊 -->
+    <!-- %5p琛ㄧず鏃ュ織绾у埆杈撳嚭鍙冲榻愶紝宸﹁竟浠ョ┖鏍煎~鍏� -->
+    <!-- ${PID:- }琛ㄧず杩涚▼ID锛�%clr琛ㄧず灏嗚緭鍑烘枃鏈潃鑹诧紝{magenta}琛ㄧず浣跨敤娲嬬孩鑹� -->
+    <!-- -琛ㄧず涓�涓垎闅旂 -->
+    <!-- %t锛氭樉绀轰骇鐢熻鏃ュ織鐨勭嚎绋嬪悕锛�%15锛氳嫢瀛楃闀垮害灏忎簬15锛屽垯宸﹁竟鐢ㄧ┖鏍煎~鍏咃紱%.15锛氳嫢瀛楃闀垮害瓒呰繃15锛屾埅鍘诲浣欏瓧绗� -->
+    <!-- %-40锛氳嫢瀛楃闀垮害灏忎簬40锛屽垯鍙宠竟鐢ㄧ┖鏍煎~鍏咃紱%.40锛氳嫢瀛楃闀垮害瓒呰繃40锛屾埅鍘诲浣欏瓧绗︼紱logger{39}瀵瑰簲鐨勬槸鈥渓ogging.WARNING鈥濈骇鍒�傚叿浣撴潵璇达紝Python鐨刲ogging妯″潡瀹氫箟浜嗕互涓嬪嚑涓骇鍒紙浠庝綆鍒伴珮锛夛細NOTSET銆丏EBUG銆両NFO銆乄ARNING銆丒RROR銆丆RITICAL銆傚洜姝わ紝logger{39}琛ㄧず鐨勬槸WARNING绾у埆锛屽嵆鏃ュ織璁板綍鍣ㄤ細璁板綍鎵�鏈塛ARNING绾у埆鍙婁互涓婄殑鏃ュ織淇℃伅 -->
+    <!-- %m琛ㄧず鏃ュ織娑堟伅锛�%n琛ㄧず鎹㈣绗︼紱${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}琛ㄧず寮傚父淇℃伅銆傚鏋滄棩蹇楄緭鍑轰腑鍖呭惈寮傚父淇℃伅锛岃繖涓鍒欏皢浼氬皢鍏惰浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <property name="CONSOLE_LOG_PATTERN"
+              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+
+    <!--1. 杈撳嚭鍒版帶鍒跺彴-->
+    <!-- 瀹氫箟鎺у埗鍙版棩蹇楄緭鍑虹殑appender锛宑lass="ch.qos.logback.core.ConsoleAppender"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凜onsoleAppender绫绘潵杈撳嚭鏃ュ織鍒版帶鍒跺彴 -->
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <!--姝ゆ棩蹇梐ppender鏄负寮�鍙戜娇鐢紝鍙厤缃渶搴曠骇鍒紝鎺у埗鍙拌緭鍑虹殑鏃ュ織绾у埆鏄ぇ浜庢垨绛変簬姝ょ骇鍒殑鏃ュ織淇℃伅-->
+        <!-- 瀹氫箟鏃ュ織杈撳嚭绾у埆鐨勮繃婊ゅ櫒锛宑lass="ch.qos.logback.classic.filter.ThresholdFilter"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凾hresholdFilter绫绘潵杩囨护鏃ュ織杈撳嚭锛�<level>debug</level>琛ㄧず鍙緭鍑篸ebug绾у埆鍙婁互涓婄殑鏃ュ織 -->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>debug</level>
+        </filter>
+        <encoder>
+            <!-- ${CONSOLE_LOG_PATTERN}琛ㄧず鎺у埗鍙版棩蹇楄緭鍑烘牸寮忥紝UTF-8琛ㄧず缂栫爜鏍煎紡 -->
+            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
+            <!-- 璁剧疆瀛楃闆� -->
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+    <!--2. 杈撳嚭鍒版枃妗�-->
+    <!-- 2.1 level涓� DEBUG 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <!-- 瀹氫箟鏂囦欢鏃ュ織杈撳嚭鐨刟ppender锛宑lass="ch.qos.logback.core.rolling.RollingFileAppender"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凴ollingFileAppender绫绘潵杈撳嚭鏃ュ織鍒版枃浠� -->
+    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_debug.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <!-- 瀹氫箟鏃ュ織鏂囦欢婊氬姩绛栫暐鐨勬爣绛撅紝class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凾imeBasedRollingPolicy绫绘潵瀹氫箟鏃ュ織鏂囦欢鐨勬粴鍔ㄧ瓥鐣� -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 鏃ュ織褰掓。 -->
+            <!-- 瀹氫箟鏃ュ織鏂囦欢鍚嶇殑妯″紡銆傚湪杩欎釜妯″紡涓紝${logging.path}琛ㄧず鏃ュ織鏂囦欢鐨勮矾寰勶紝%d{yyyy-MM-dd}琛ㄧず鏃ユ湡鏍煎紡锛�%i琛ㄧず鏂囦欢绱㈠紩 -->
+            <fileNamePattern>${logging.path}/${serverName}/web-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <!-- 瀹氫箟鏃ュ織鏂囦欢婊氬姩绛栫暐鐨勬爣绛撅紝class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凷izeAndTimeBasedFNATP绫绘潵瀹氫箟鏃ュ織鏂囦欢鐨勬粴鍔ㄧ瓥鐣ワ紝<maxFileSize>100MB</maxFileSize>琛ㄧず鏃ュ織鏂囦欢鐨勬渶澶уぇ灏忎负100MB銆傝繖涓粴鍔ㄧ瓥鐣ラ�氬父鐢ㄤ簬鎸夌収鏃堕棿鍜屾枃浠跺ぇ灏忔粴鍔ㄦ棩蹇楁枃浠讹紝浠ヤ究鏇村ソ鍦扮鐞嗘棩蹇楁枃浠剁殑澶у皬鍜屾暟閲� -->
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍debug绾у埆鐨� -->
+        <!-- 瀹氫箟鏃ュ織杈撳嚭绾у埆鐨勮繃婊ゅ櫒銆傚湪杩欎釜杩囨护鍣ㄤ腑锛宑lass="ch.qos.logback.classic.filter.LevelFilter"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凩evelFilter绫绘潵杩囨护鏃ュ織杈撳嚭锛�<level>debug</level>琛ㄧず鍙緭鍑篸ebug绾у埆鍙婁互涓婄殑鏃ュ織 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>debug</level>
+            <!-- <onMatch>ACCEPT</onMatch>琛ㄧず濡傛灉鏃ュ織浜嬩欢涓庤繃婊ゅ櫒鍖归厤锛屽垯鎺ュ彈璇ヤ簨浠讹紝<onMismatch>DENY</onMismatch>琛ㄧず濡傛灉鏃ュ織浜嬩欢涓庤繃婊ゅ櫒涓嶅尮閰嶏紝鍒欐嫆缁濊浜嬩欢 -->
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.2 level涓� INFO 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_info.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 澶╁ぉ鏃ュ織褰掓。璺緞浠ュ強鏍煎紡 -->
+            <fileNamePattern>${logging.path}/${serverName}/web-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍info绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>info</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.3 level涓� WARN 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_warn.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 姝ゅ璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logging.path}/${serverName}/web-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍warn绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>warn</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.4 level涓� ERROR 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_error.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 姝ゅ璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logging.path}/${serverName}/web-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍ERROR绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!--     4.1 寮�鍙戠幆澧�:鎵撳嵃鎺у埗鍙�-->
+    <!-- 鐢ㄤ簬鍦⊿pring Boot搴旂敤绋嬪簭涓厤缃棩蹇楄褰曠殑鏍囩銆傚湪杩欎釜鏍囩涓紝name="dev"琛ㄧず杩欎釜閰嶇疆鏂囦欢鍙湪dev鐜涓敓鏁堬紝<logger name="com.myClass.controller" level="debug"/>琛ㄧず涓篶om.myClass.controller锛堟牴鎹笟鍔′慨鏀癸級杩欎釜鍖呬笅鐨勭被閰嶇疆鏃ュ織杈撳嚭绾у埆涓篸ebug -->
+    <!--    <springProfile name="dev">-->
+    <!--        <logger name="com.myClass.controller" level="debug"/>-->
+    <!--    </springProfile>-->
+    <!-- 鐢ㄤ簬閰嶇疆鏃ュ織杈撳嚭鐨勬爣绛俱�傚湪杩欎釜鏍囩涓紝level="info"琛ㄧず鏃ュ織杈撳嚭绾у埆涓篿nfo锛�<appender-ref ref="CONSOLE"/>銆�<appender-ref ref="DEBUG_FILE"/>銆�<appender-ref ref="INFO_FILE"/>銆�<appender-ref ref="WARN_FILE"/>銆�<appender-ref ref="ERROR_FILE"/>琛ㄧず灏嗘棩蹇楄緭鍑哄埌涓嶅悓鐨刟ppender涓紝鍒嗗埆涓烘帶鍒跺彴銆乨ebug鏂囦欢銆乮nfo鏂囦欢銆亀arn鏂囦欢鍜宔rror鏂囦欢 -->
+    <root level="info">
+        <appender-ref ref="CONSOLE"/>
+        <appender-ref ref="INFO_FILE"/>
+        <appender-ref ref="WARN_FILE"/>
+        <appender-ref ref="ERROR_FILE"/>
+    </root>
+</configuration>
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/mapper/UpWorkstationMapper.xml b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/mapper/UpWorkstationMapper.xml
new file mode 100644
index 0000000..ceba9a6
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/mapper/UpWorkstationMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.workstation.mapper.UpWorkstationMapper">
+
+    <resultMap id="sequenceMap" type="com.mes.workstation.entity.UpWorkSequence">
+        <id property="workId" column="workstation_id"/>
+<!--        <result property="number" column="number"/>-->
+    </resultMap>
+
+    <select id="selectPriority" resultMap="sequenceMap">
+        SELECT
+            b.workstation_id
+        FROM
+            ( SELECT * FROM up_patten_usage a WHERE state = 1 ORDER BY a.layout_sequence  LIMIT 1 )as a
+                LEFT JOIN up_workstation b ON a.width =b.pattern_width
+                AND a.height = b.pattern_heigth
+                AND a.thickness = b.pattern_thickness
+                AND a.films_id = b.films_id
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/ApplicationTest.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/ApplicationTest.java
new file mode 100644
index 0000000..3d9b452
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/ApplicationTest.java
@@ -0,0 +1,34 @@
+package com.mes;
+
+import com.mes.pp.entity.OptimizeDetail;
+import com.mes.pp.service.OptimizeDetailService;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/16 9:46
+ * @Description:
+ */
+@Slf4j
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = LoadGlassModuleApplication.class)
+public class ApplicationTest {
+
+
+    @Resource
+    OptimizeDetailService optimizationDetailService;
+
+    @Test
+    public void test() {
+        List<OptimizeDetail> list = optimizationDetailService.list();
+        System.out.println("鑾峰彇璁板綍鏁帮細" + list.size());
+    }
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java
new file mode 100644
index 0000000..a99f2a9
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java
@@ -0,0 +1,171 @@
+package com.mes;
+import com.mes.engineering.entity.Engineering;
+import com.mes.engineering.service.EngineeringService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.order.entity.Orderdetail;
+import com.mes.order.entity.Orders;
+import com.mes.order.service.OrdersService;
+import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.entity.request.AwaitingRepair;
+import com.mes.pp.entity.request.OptimizeRequest;
+import com.mes.pp.entity.request.Reportingdamage;
+import com.mes.pp.service.OptimizeProjectService;
+import com.mes.pp.service.ReportingWorkService;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import com.mes.uppattenusage.service.impl.UpPattenUsageServiceImpl;
+import com.mes.workstation.entity.UpWorkstation;
+import com.mes.workstation.service.UpWorkstationService;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+
+ */
+@Slf4j
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = LoadGlassModuleApplication.class)
+public class LoadGlassModuleApplicationTest {
+
+//    @Resource
+//    private OptimizeProjectMapper optimizeProjectMapper;
+    @Autowired
+    private UpPattenUsageServiceImpl upPattenUsageService;
+    @Autowired
+    private GlassInfoService glassInfoService;
+    @Autowired
+    private EngineeringService engineeringService;
+    @Autowired
+    private UpWorkstationService workstationService;
+    @Autowired
+    private OptimizeProjectService optimizeProjectService;
+    @Autowired
+    private OrdersService ordersService;
+    @Autowired
+    private ReportingWorkService reportingWorkService;
+    @Test
+    public void test() {
+//        List<OptimizeProject> list = optimizeProjectMapper.saveProject("P24032204");
+//        log.info("list:{}", list);
+
+    }
+
+    @Test
+    public void testFindPath() {
+        log.info("瀹屾暣璺緞锛歿}", Arrays.asList("123"));
+    }
+
+    @Test
+    public void testFindPa() {
+        Engineering  engineering= engineeringService.selectInitiate(1);
+        log.info("寮�濮嬩笂鐗囩殑宸ョ▼锛歿}", Arrays.asList(engineering));
+        UpPattenUsage upPattenUsage = workstationService.selectPriority(engineering);
+        log.info("涓婄墖椤哄簭锛歿}", Arrays.asList(upPattenUsage));
+        UpWorkstation glass2=workstationService.selectWorkstation(upPattenUsage);
+        log.info("绗﹀悎鐨勫伐浣嶇幓鐠儃}",glass2);
+        workstationService.reduceWorkstationNumber(glass2.getWorkstationId());
+        //鍑忓皯鏁伴噺
+        upPattenUsageService.updateUpPattenUsageState(upPattenUsage,1);
+        //鏇存柊鐘舵��
+    }
+
+
+    @Test
+    public  void  textengineering(){
+        Engineering engineering=new Engineering();
+        List<Engineering> glass= engineeringService.selectEngineering("P24032204");
+        engineeringService.saveEngineering(glass);
+        log.info("glassinfo锛歿}", Arrays.asList(glass));
+    }
+
+    @Test
+    public  void  textengineering3(){
+        //涓婄墖琛ㄦ渶鍚庝竴鐗�
+        UpPattenUsage upPattenUsage=new UpPattenUsage();
+        upPattenUsage.setEngineeringId("P24051103");
+        UpPattenUsage upPattenUsage1=upPattenUsageService.selectSequence(upPattenUsage);
+        log.info("涓婄墖琛ㄤ换鍔′腑鐨勬暟鎹畕}",upPattenUsage1);
+        boolean isOver= optimizeProjectService.overTask(upPattenUsage1,300);
+        log.info("鏇存敼鏄惁鎴愬姛{}",isOver);
+    }
+    @Test
+    public  void  textengineering4(){
+        //鍒ゆ柇鏄惁宸蹭繚瀛樿繃宸ョ▼鍙峰埌涓婄墖琛�
+        List<Engineering> engineerings=engineeringService.selectTask();
+        log.info("涓婄墖琛ㄤ换鍔′腑鐨勬暟鎹畕}",engineerings);
+
+    }
+    @Test
+    public  void  textengineering5(){
+        //鏄剧ず閫夋嫨宸ョ▼
+        OptimizeRequest optimizeRequest=new OptimizeRequest();
+        optimizeRequest.setState(100);
+        List<OptimizeProject> engineerings=optimizeProjectService.listByState(optimizeRequest);
+        log.info("涓婄墖琛ㄤ换鍔′腑鐨勬暟鎹畕}",engineerings);
+    }
+    @Test
+    public  void  textengineering6(){
+        //涓婄墖琛ㄦ渶鍚庝竴鐗�
+        UpPattenUsage upPattenUsage=new UpPattenUsage();
+        upPattenUsage.setState(100);
+        upPattenUsage.setId(2248L);
+        boolean isOver= upPattenUsageService.updateGlassState(upPattenUsage);
+        log.info("鏇存敼鏄惁鎴愬姛{}",isOver);
+    }
+    @Test
+    public void test2() {
+        List<Orders> list = ordersService.selectOrders();
+        System.out.println("鑾峰彇璁板綍鏁帮細" + list);
+    }
+    @Test
+    public void test3() {
+        Orders orders = new Orders();
+        orders.setOrderId("P24051103");
+        List<Orderdetail> list = ordersService.selectOrderdetail(orders);
+        System.out.println("璁㈠崟璇︾粏鏁版嵁锛�" + list);
+    }
+    @Test
+    public void test4() {
+        //鑾峰彇宸ュ簭鍔犲伐娆$牬鏁伴噺
+        Reportingdamage reportingdamage = new Reportingdamage();
+        reportingdamage.setThisProcess("纾ㄨ竟");
+        reportingdamage.setDeviceName("蹇�熺(");
+        reportingdamage.setReportingWorkTime("2024-05-22");
+        List<Reportingdamage> list = reportingWorkService.selectDamage(reportingdamage);
+        System.out.println("璁㈠崟璇︾粏鏁版嵁锛�" + list);
+    }
+    @Test
+    public void test5() {
+        //鑾峰彇娆$牬鏈ˉ淇℃伅
+        List<AwaitingRepair> list = reportingWorkService.selectAwaitingRepair();
+        System.out.println("鑾峰彇璁板綍鏁帮細" + list);
+    }
+    @Test
+    public void test6() {
+        //鑾峰彇娆$牬鏈ˉ淇℃伅
+       List<OptimizeProject> list=optimizeProjectService.getDoingTask();
+        System.out.println("鑾峰彇姝e湪杩涜鐨勫伐绋嬶細" + list);
+    }
+
+    @Test
+    public void test8() {
+        //鑾峰彇娆$牬鏈ˉ淇℃伅
+        UpPattenUsage upPattenUsage=new UpPattenUsage();
+        upPattenUsage.setEngineeringId("P24062706");
+        List<UpPattenUsage> list=upPattenUsageService.selectSaveUpPattenUsage("P24062706");
+        System.out.println("宸ョ▼锛�"+list);
+    }
+    @Test
+    public void test9() {
+        //鑾峰彇鏈埌纾ㄨ竟琛ㄧ殑灏忕墖淇℃伅
+        List<GlassInfo>glasslist=glassInfoService.selectEdgGlassInfo("P24120201");
+        System.out.println("宸ョ▼锛�"+glasslist);
+    }
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/JsonFile/PlcLoadGlass.json b/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/JsonFile/PlcLoadGlass.json
new file mode 100644
index 0000000..9b0432b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/JsonFile/PlcLoadGlass.json
@@ -0,0 +1,78 @@
+{
+  "plcAddressBegin":"DB1.2000",
+  "plcAddressLenght":"100",
+  "dataType":"word",
+  "parameteInfor":[
+    {
+      "codeId": "loadRequest",
+      "addressIndex":"0",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":"m/min"
+    },
+    {
+      "codeId": "PlcStatus",
+      "addressIndex":"10",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "MesToPlc",
+      "addressIndex":"20",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "InkageStatus",
+      "addressIndex":"22",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "WorkId",
+      "addressIndex":"24",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "GlassWidth",
+      "addressIndex":"26",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "GlassHeight",
+      "addressIndex":"28",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    }
+  ,
+    {
+      "codeId": "MesToPlcStatus",
+      "addressIndex":"40",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "MesToPlcStatusId",
+      "addressIndex":"42",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    },
+    {
+      "codeId": "MesTaskStatus",
+      "addressIndex":"56",
+      "addressLenght":"2",
+      "ratio":"1",
+      "unit":""
+    }
+  ]
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application-alg.yml b/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application-alg.yml
new file mode 100644
index 0000000..3b9e9b1
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application-alg.yml
@@ -0,0 +1,43 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.10.86:3306/north_glass_mes?serverTimezone=GMT%2b8&allowMultiQueries=true
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://192.168.10.86:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        sd:
+          url: jdbc:mysql://192.168.10.86:3306/sd?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+      druid:
+        wall:
+          multi-statement-allow: true
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 192.168.10.86:8848
+  redis:
+    database: 0
+    host: 192.168.10.86
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: false
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://192.168.10.86:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application-cz.yml b/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application-cz.yml
new file mode 100644
index 0000000..34ec8d0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application-cz.yml
@@ -0,0 +1,30 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.1.199:3306/hangzhoumes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://192.168.1.199:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        sd:
+          url: jdbc:mysql://192.168.1.199:3306/sd?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application-dev.yml b/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application-dev.yml
new file mode 100644
index 0000000..a2fcb8a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application-dev.yml
@@ -0,0 +1,43 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://127.0.0.1:3306/hangzhoumes?serverTimezone=GMT%2b8
+          username: root
+          password: 123456
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://127.0.0.1:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: 123456
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        sd:
+          url: jdbc:mysql://127.0.0.1:3306/sd?serverTimezone=GMT%2b8
+          username: root
+          password: 123456
+          driver-class-name: com.mysql.cj.jdbc.Driver
+      druid:
+        wall:
+          multi-statement-allow: true
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password:
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://10.153.19.150:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application-prod.yml b/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application-prod.yml
new file mode 100644
index 0000000..972403f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application-prod.yml
@@ -0,0 +1,40 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://10.153.19.150:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        sd:
+          url: jdbc:mysql://10.153.19.150:3306/sd?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 10.153.19.150:8849
+  redis:
+    database: 0
+    host: 10.153.19.150
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://10.153.19.150:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application-yw.yml b/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application-yw.yml
new file mode 100644
index 0000000..58c369e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application-yw.yml
@@ -0,0 +1,43 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.2.100:3306/north_glass_mes?serverTimezone=GMT%2b8&allowMultiQueries=true
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://192.168.2.100:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        sd:
+          url: jdbc:mysql://192.168.2.100:3306/sd?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+      druid:
+        wall:
+          multi-statement-allow: true
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 192.168.2.100:8848
+  redis:
+    database: 0
+    host: 192.168.2.100
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://192.168.2.100:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application.yml b/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application.yml
new file mode 100644
index 0000000..3352a84
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/application.yml
@@ -0,0 +1,13 @@
+server:
+  port: 10015
+spring:
+  profiles:
+    active: dev
+  application:
+    name: loadGlass
+  liquibase:
+    enabled: false
+mybatis-plus:
+  mapper-locations: classpath*:mapper/*.xml
+#  configuration:
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/logback-spring.xml b/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/logback-spring.xml
new file mode 100644
index 0000000..274b5bb
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/logback-spring.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="10 seconds">
+    <!-- logger涓婁笅鏂囧悕绉帮紙鏍规嵁涓氬姟淇敼锛� -->
+    <contextName>loadGlass</contextName>
+
+    <!-- 瀹氫箟浜嗕竴涓悕涓簊erverName鐨勫睘鎬э紝瀹冪殑鍊兼潵鑷簬logging.file.name锛屽鏋滄病鏈夋壘鍒拌灞炴�ч粯璁や负MyServerName锛堟牴鎹笟鍔′慨鏀癸級 -->
+    <springProperty name="serverName" source="logging.file.name" defaultValue="loadGlass"/>
+    <springProperty name="logging.path" source="logging.file.path" defaultValue="././logs/"/>
+
+    <!-- 褰╄壊鏃ュ織渚濊禆鐨勬覆鏌撶被 -->
+    <!-- 瀹氫箟浜嗕竴涓悕涓篶lr鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.ColorConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗘棩蹇楄緭鍑轰腑鐨勬枃鏈潃鑹诧紝浠ヤ究鏇村鏄撳湴鍖哄垎涓嶅悓鐨勬棩蹇楃骇鍒垨鍏朵粬淇℃伅 -->
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
+    <!-- WhitespaceThrowableProxyConverter鍜孍xtendedWhitespaceThrowableProxyConverter閮芥槸鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず鐨勭被銆傚畠浠箣闂寸殑鍖哄埆鍦ㄤ簬锛孍xtendedWhitespaceThrowableProxyConverter鍦ㄨ緭鍑哄紓甯镐俊鎭椂浼氬寘鍚洿澶氱殑璇︾粏淇℃伅锛屼緥濡傚紓甯哥殑绫诲悕銆佹柟娉曞悕鍜岃鍙风瓑 -->
+    <!-- 瀹氫箟浜嗕竴涓悕涓簑ex鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <conversionRule conversionWord="wex"
+                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
+    <!-- 瀹氫箟浜嗕竴涓悕涓簑Ex鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <conversionRule conversionWord="wEx"
+                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
+
+    <!-- 褰╄壊鏃ュ織鏍煎紡 -->
+    <!-- value鍊兼槸鏃ュ織杈撳嚭妯℃澘锛� :-鏄睘鎬у悕鍜屽叾榛樿鍊间箣闂寸殑鍒嗛殧绗︼紝浣滅敤涓�:鐩稿悓 -->
+    <!-- 瀹氫箟鏃ュ織杈撳嚭鏍煎紡鐨勮浆鎹㈣鍒欙紝%d{yyyy-MM-dd HH:mm:ss.SSS}琛ㄧず鏃ユ湡鍜屾椂闂达紝%clr琛ㄧず灏嗚緭鍑烘枃鏈潃鑹诧紝{faint}琛ㄧず浣跨敤娣¤壊 -->
+    <!-- %5p琛ㄧず鏃ュ織绾у埆杈撳嚭鍙冲榻愶紝宸﹁竟浠ョ┖鏍煎~鍏� -->
+    <!-- ${PID:- }琛ㄧず杩涚▼ID锛�%clr琛ㄧず灏嗚緭鍑烘枃鏈潃鑹诧紝{magenta}琛ㄧず浣跨敤娲嬬孩鑹� -->
+    <!-- -琛ㄧず涓�涓垎闅旂 -->
+    <!-- %t锛氭樉绀轰骇鐢熻鏃ュ織鐨勭嚎绋嬪悕锛�%15锛氳嫢瀛楃闀垮害灏忎簬15锛屽垯宸﹁竟鐢ㄧ┖鏍煎~鍏咃紱%.15锛氳嫢瀛楃闀垮害瓒呰繃15锛屾埅鍘诲浣欏瓧绗� -->
+    <!-- %-40锛氳嫢瀛楃闀垮害灏忎簬40锛屽垯鍙宠竟鐢ㄧ┖鏍煎~鍏咃紱%.40锛氳嫢瀛楃闀垮害瓒呰繃40锛屾埅鍘诲浣欏瓧绗︼紱logger{39}瀵瑰簲鐨勬槸鈥渓ogging.WARNING鈥濈骇鍒�傚叿浣撴潵璇达紝Python鐨刲ogging妯″潡瀹氫箟浜嗕互涓嬪嚑涓骇鍒紙浠庝綆鍒伴珮锛夛細NOTSET銆丏EBUG銆両NFO銆乄ARNING銆丒RROR銆丆RITICAL銆傚洜姝わ紝logger{39}琛ㄧず鐨勬槸WARNING绾у埆锛屽嵆鏃ュ織璁板綍鍣ㄤ細璁板綍鎵�鏈塛ARNING绾у埆鍙婁互涓婄殑鏃ュ織淇℃伅 -->
+    <!-- %m琛ㄧず鏃ュ織娑堟伅锛�%n琛ㄧず鎹㈣绗︼紱${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}琛ㄧず寮傚父淇℃伅銆傚鏋滄棩蹇楄緭鍑轰腑鍖呭惈寮傚父淇℃伅锛岃繖涓鍒欏皢浼氬皢鍏惰浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <property name="CONSOLE_LOG_PATTERN"
+              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+
+    <!--1. 杈撳嚭鍒版帶鍒跺彴-->
+    <!-- 瀹氫箟鎺у埗鍙版棩蹇楄緭鍑虹殑appender锛宑lass="ch.qos.logback.core.ConsoleAppender"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凜onsoleAppender绫绘潵杈撳嚭鏃ュ織鍒版帶鍒跺彴 -->
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <!--姝ゆ棩蹇梐ppender鏄负寮�鍙戜娇鐢紝鍙厤缃渶搴曠骇鍒紝鎺у埗鍙拌緭鍑虹殑鏃ュ織绾у埆鏄ぇ浜庢垨绛変簬姝ょ骇鍒殑鏃ュ織淇℃伅-->
+        <!-- 瀹氫箟鏃ュ織杈撳嚭绾у埆鐨勮繃婊ゅ櫒锛宑lass="ch.qos.logback.classic.filter.ThresholdFilter"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凾hresholdFilter绫绘潵杩囨护鏃ュ織杈撳嚭锛�<level>debug</level>琛ㄧず鍙緭鍑篸ebug绾у埆鍙婁互涓婄殑鏃ュ織 -->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>debug</level>
+        </filter>
+        <encoder>
+            <!-- ${CONSOLE_LOG_PATTERN}琛ㄧず鎺у埗鍙版棩蹇楄緭鍑烘牸寮忥紝UTF-8琛ㄧず缂栫爜鏍煎紡 -->
+            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
+            <!-- 璁剧疆瀛楃闆� -->
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+    <!--2. 杈撳嚭鍒版枃妗�-->
+    <!-- 2.1 level涓� DEBUG 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <!-- 瀹氫箟鏂囦欢鏃ュ織杈撳嚭鐨刟ppender锛宑lass="ch.qos.logback.core.rolling.RollingFileAppender"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凴ollingFileAppender绫绘潵杈撳嚭鏃ュ織鍒版枃浠� -->
+    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_debug.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <!-- 瀹氫箟鏃ュ織鏂囦欢婊氬姩绛栫暐鐨勬爣绛撅紝class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凾imeBasedRollingPolicy绫绘潵瀹氫箟鏃ュ織鏂囦欢鐨勬粴鍔ㄧ瓥鐣� -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 鏃ュ織褰掓。 -->
+            <!-- 瀹氫箟鏃ュ織鏂囦欢鍚嶇殑妯″紡銆傚湪杩欎釜妯″紡涓紝${logging.path}琛ㄧず鏃ュ織鏂囦欢鐨勮矾寰勶紝%d{yyyy-MM-dd}琛ㄧず鏃ユ湡鏍煎紡锛�%i琛ㄧず鏂囦欢绱㈠紩 -->
+            <fileNamePattern>${logging.path}/${serverName}/web-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <!-- 瀹氫箟鏃ュ織鏂囦欢婊氬姩绛栫暐鐨勬爣绛撅紝class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凷izeAndTimeBasedFNATP绫绘潵瀹氫箟鏃ュ織鏂囦欢鐨勬粴鍔ㄧ瓥鐣ワ紝<maxFileSize>100MB</maxFileSize>琛ㄧず鏃ュ織鏂囦欢鐨勬渶澶уぇ灏忎负100MB銆傝繖涓粴鍔ㄧ瓥鐣ラ�氬父鐢ㄤ簬鎸夌収鏃堕棿鍜屾枃浠跺ぇ灏忔粴鍔ㄦ棩蹇楁枃浠讹紝浠ヤ究鏇村ソ鍦扮鐞嗘棩蹇楁枃浠剁殑澶у皬鍜屾暟閲� -->
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍debug绾у埆鐨� -->
+        <!-- 瀹氫箟鏃ュ織杈撳嚭绾у埆鐨勮繃婊ゅ櫒銆傚湪杩欎釜杩囨护鍣ㄤ腑锛宑lass="ch.qos.logback.classic.filter.LevelFilter"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凩evelFilter绫绘潵杩囨护鏃ュ織杈撳嚭锛�<level>debug</level>琛ㄧず鍙緭鍑篸ebug绾у埆鍙婁互涓婄殑鏃ュ織 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>debug</level>
+            <!-- <onMatch>ACCEPT</onMatch>琛ㄧず濡傛灉鏃ュ織浜嬩欢涓庤繃婊ゅ櫒鍖归厤锛屽垯鎺ュ彈璇ヤ簨浠讹紝<onMismatch>DENY</onMismatch>琛ㄧず濡傛灉鏃ュ織浜嬩欢涓庤繃婊ゅ櫒涓嶅尮閰嶏紝鍒欐嫆缁濊浜嬩欢 -->
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.2 level涓� INFO 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_info.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 澶╁ぉ鏃ュ織褰掓。璺緞浠ュ強鏍煎紡 -->
+            <fileNamePattern>${logging.path}/${serverName}/web-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍info绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>info</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.3 level涓� WARN 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_warn.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 姝ゅ璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logging.path}/${serverName}/web-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍warn绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>warn</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.4 level涓� ERROR 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_error.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 姝ゅ璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logging.path}/${serverName}/web-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍ERROR绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!--     4.1 寮�鍙戠幆澧�:鎵撳嵃鎺у埗鍙�-->
+    <!-- 鐢ㄤ簬鍦⊿pring Boot搴旂敤绋嬪簭涓厤缃棩蹇楄褰曠殑鏍囩銆傚湪杩欎釜鏍囩涓紝name="dev"琛ㄧず杩欎釜閰嶇疆鏂囦欢鍙湪dev鐜涓敓鏁堬紝<logger name="com.myClass.controller" level="debug"/>琛ㄧず涓篶om.myClass.controller锛堟牴鎹笟鍔′慨鏀癸級杩欎釜鍖呬笅鐨勭被閰嶇疆鏃ュ織杈撳嚭绾у埆涓篸ebug -->
+    <!--    <springProfile name="dev">-->
+    <!--        <logger name="com.myClass.controller" level="debug"/>-->
+    <!--    </springProfile>-->
+    <!-- 鐢ㄤ簬閰嶇疆鏃ュ織杈撳嚭鐨勬爣绛俱�傚湪杩欎釜鏍囩涓紝level="info"琛ㄧず鏃ュ織杈撳嚭绾у埆涓篿nfo锛�<appender-ref ref="CONSOLE"/>銆�<appender-ref ref="DEBUG_FILE"/>銆�<appender-ref ref="INFO_FILE"/>銆�<appender-ref ref="WARN_FILE"/>銆�<appender-ref ref="ERROR_FILE"/>琛ㄧず灏嗘棩蹇楄緭鍑哄埌涓嶅悓鐨刟ppender涓紝鍒嗗埆涓烘帶鍒跺彴銆乨ebug鏂囦欢銆乮nfo鏂囦欢銆亀arn鏂囦欢鍜宔rror鏂囦欢 -->
+    <root level="info">
+        <appender-ref ref="CONSOLE"/>
+        <appender-ref ref="INFO_FILE"/>
+        <appender-ref ref="WARN_FILE"/>
+        <appender-ref ref="ERROR_FILE"/>
+    </root>
+</configuration>
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/mapper/UpWorkstationMapper.xml b/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/mapper/UpWorkstationMapper.xml
new file mode 100644
index 0000000..ceba9a6
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/target/classes/mapper/UpWorkstationMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.workstation.mapper.UpWorkstationMapper">
+
+    <resultMap id="sequenceMap" type="com.mes.workstation.entity.UpWorkSequence">
+        <id property="workId" column="workstation_id"/>
+<!--        <result property="number" column="number"/>-->
+    </resultMap>
+
+    <select id="selectPriority" resultMap="sequenceMap">
+        SELECT
+            b.workstation_id
+        FROM
+            ( SELECT * FROM up_patten_usage a WHERE state = 1 ORDER BY a.layout_sequence  LIMIT 1 )as a
+                LEFT JOIN up_workstation b ON a.width =b.pattern_width
+                AND a.height = b.pattern_heigth
+                AND a.thickness = b.pattern_thickness
+                AND a.films_id = b.films_id
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/pom.xml b/hangzhoumesParent/moduleService/TemperingGlassModule/pom.xml
new file mode 100644
index 0000000..b2ee602
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/pom.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>moduleService</artifactId>
+        <groupId>com.mes</groupId>
+        <version>1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>temperingGlass</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.mes</groupId>
+            <artifactId>servicebase</artifactId>
+            <version>1.0-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/TemperingGlassModuleApplication.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/TemperingGlassModuleApplication.java
new file mode 100644
index 0000000..1538e9e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/TemperingGlassModuleApplication.java
@@ -0,0 +1,31 @@
+package com.mes;
+
+import lombok.extern.slf4j.Slf4j;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/8 13:26
+ * @Description:
+ */
+@Slf4j
+@SpringBootApplication
+@EnableSwagger2WebMvc
+@EnableDiscoveryClient
+@EnableScheduling
+@MapperScan(basePackages = "com.mes.*.mapper")
+public class TemperingGlassModuleApplication {
+    public static void main(String[] args) {
+        try {
+            SpringApplication.run(TemperingGlassModuleApplication.class, args);
+        } catch (Exception e) {
+            log.error(e.getMessage());
+        }
+
+    }
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/common/S7object.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/common/S7object.java
new file mode 100644
index 0000000..94ae268
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/common/S7object.java
@@ -0,0 +1,60 @@
+package com.mes.common;
+
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.mes.device.PlcParameterObject;
+import com.mes.tools.InitUtil;
+import com.mes.tools.S7control;
+
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 15:13
+ * @Description:
+ */
+public class S7object extends Thread {
+    public S7control plccontrol; // PLC閫氳绫诲疄渚�
+    private EPlcType plcType = EPlcType.S1200; // 瑗块棬瀛怭LC绫诲瀷
+    private String ip = "192.168.20.202"; // plc ip鍦板潃
+    private int port = 102; // plc 绔彛鍙�
+
+
+    public PlcParameterObject PlcMesObject;
+    private static volatile S7object instance = null;
+
+    private S7object() {
+        if (plccontrol == null) {
+            plccontrol = new S7control(plcType, ip, port, 0, 0);
+            String PlcLoadGlass = System.getProperty("user.dir") + "/JsonFile/PlcTemperingGlass.json";
+            PlcMesObject = InitUtil.initword(PlcLoadGlass);
+        }
+    }
+
+    // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
+    public static S7object getinstance() {
+        if (instance == null) {
+            synchronized (S7object.class) {
+                if (instance == null) {
+                    instance = new S7object();
+                }
+            }
+        }
+        return instance;
+    }
+
+    @Override
+    public void run() {
+        while (this != null) {
+            try {
+                Thread.sleep(100);
+
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+
+            byte[] getplcvlues = plccontrol.readByte(PlcMesObject.getPlcAddressBegin(), PlcMesObject.getPlcAddressLength());
+            if (getplcvlues != null) {
+                PlcMesObject.setPlcParameterList(getplcvlues);
+            }
+        }
+    }
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/OpcNGTemperingTask.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/OpcNGTemperingTask.java
new file mode 100644
index 0000000..e1b9d7e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/OpcNGTemperingTask.java
@@ -0,0 +1,178 @@
+package com.mes.job;
+
+
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.kangaroohy.milo.model.ReadWriteEntity;
+import com.kangaroohy.milo.service.MiloService;
+import com.mes.common.config.Const;
+import com.mes.pp.entity.OptimizeHeatDetail;
+import com.mes.pp.entity.OptimizeHeatLayout;
+import com.mes.pp.service.OptimizeHeatDetailService;
+import com.mes.pp.service.OptimizeHeatLayoutService;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Optional;
+
+
+@Component
+@Slf4j
+public class OpcNGTemperingTask {
+
+    @Autowired(required = false)
+    MiloService miloService;
+
+    @Autowired
+    private TemperingGlassInfoService temperingAgoService;
+
+    @Autowired
+    private OptimizeHeatLayoutService optimizeHeatLayoutService;
+
+    @Autowired
+    private OptimizeHeatDetailService optimizeHeatDetailService;
+
+    /**
+     * 鎽嗙墖鍙拌姹傝繘鐗囬�昏緫澶勭悊
+     * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
+     * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
+     */
+    @Scheduled(fixedDelay = 1000)
+    public void requestTemperingTask() throws Exception {
+        ReadWriteEntity requestInTempering = miloService.readFromOpcUa("GH1S7.GH1S7.requestInTempering");//璇锋眰杩涚墖
+        ReadWriteEntity requestTemperingId = miloService.readFromOpcUa("GH1S7.GH1S7.requestTemperingId");//璇锋眰杩涚墖 鐐夊彿ID
+        Integer request = Integer.parseInt(requestInTempering.getValue().toString());
+        Integer id = Integer.parseInt(requestTemperingId.getValue().toString());
+        if (request == 0) {
+            miloService.writeToOpcUa(generateReadWriteEntity("GH1S7.GH1S7.responseInTempering", 0));//鍏佽閫佺墖娓呴浂
+        } else {
+            if (id == 0){
+                log.info("鐐夊彿涓嶈兘涓�0");
+                return;
+            }
+            ReadWriteEntity placedNumber = miloService.readFromOpcUa("GH1S7.GH1S7.placedNumber");//宸叉憜鐗囨暟閲�
+            List<TemperingGlassInfo> glassList = temperingAgoService.selectGlassInfoById(id);
+            if (Integer.parseInt(placedNumber.getValue().toString()) == glassList.size()) {
+                miloService.writeToOpcUa(generateReadWriteEntity("GH1S7.GH1S7.responseInTempering", 1));//鍐欏叆鍏佽閫佺墖
+            } else {
+                miloService.writeToOpcUa(generateReadWriteEntity("GH1S7.GH1S7.responseInTempering", 2));//涓嶆弧瓒宠繘鐐夋潯浠�
+            }
+        }
+    }
+
+    /**
+     * 閽㈠寲涓婄墖鍙颁笅鍙戝弬鏁伴�昏緫澶勭悊
+     * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
+     * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
+     */
+    @Scheduled(fixedDelay = 1000)
+    public void loadTemperingTask() throws Exception {
+        ReadWriteEntity loadTemperingId = miloService.readFromOpcUa("GH1S7.GH1S7.loadTemperingId");//杩涚墖瀹屾垚 鐐夊彿ID
+        getNewTemperingID(Integer.parseInt(loadTemperingId.getValue().toString()));//杩涚墖瀹屾垚 涓嬪彂鍙傛暟
+    }
+    /**
+     * 鏇存柊閽㈠寲灏忕墖琛ㄥ唴鐨勭幓鐠冪姸鎬�
+     * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
+     * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
+     */
+    @Scheduled(fixedDelay = 5000)
+    public void updateTemperingTask() throws Exception {
+        ReadWriteEntity furanchiIdEntity = miloService.readFromOpcUa("GH1.GH1.Furanch1Id");//杩涚墖瀹屾垚 鐐夊彿ID
+        if (StringUtils.isNotBlank(furanchiIdEntity.getValue()+"")){
+            int temperingid = Integer.parseInt(furanchiIdEntity.getValue().toString());
+            temperingAgoService.update(new LambdaUpdateWrapper<TemperingGlassInfo>().set(TemperingGlassInfo::getState, Const.TEMPERING_START)
+                    .in(TemperingGlassInfo::getState, Const.TEMPERING_OUT, Const.TEMPERING_DROP).eq(TemperingGlassInfo::getTemperingLayoutId,temperingid));
+        }
+
+
+    }
+
+    //鑾峰彇鍒扮倝鍙穒d鎵ц鍙傛暟涓嬪彂浠诲姟
+    private void getNewTemperingID(Integer temperingid) throws Exception {
+        ReadWriteEntity autoStatus = miloService.readFromOpcUa("GH1.GH1.AutoStatus");
+        if (1 != Integer.parseInt(autoStatus.getValue().toString())) {
+            log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫閽㈠寲涓嬪彂鍙傛暟浠诲姟");
+            return;
+        }
+        ReadWriteEntity QandA = miloService.readFromOpcUa("GH1.GH1.QandA");
+        ReadWriteEntity RecipeStatus = miloService.readFromOpcUa("GH1.GH1.RecipeStatus");
+        if (1 == Integer.parseInt(QandA.getValue().toString()) && 2 == Integer.parseInt(RecipeStatus.getValue().toString())) {
+            log.info("鐗堥潰淇℃伅宸茬粡涓嬪彂锛屽苟涓斿凡缁忓尮閰嶅弬鏁帮紝缁撴潫閽㈠寲涓嬪彂鍙傛暟浠诲姟");
+            return;
+        }
+        List<TemperingGlassInfo> glassList = temperingAgoService.selectGlassInfoById(temperingid);
+        if (glassList != null && glassList.size() > 0) {
+            int glasstype = GetGlassType(glassList.get(0).getFilmsId());//鑶滅郴
+            int process = 0;//閽㈠寲绫诲瀷
+            int thiness = (int) glassList.get(0).getThickness();//鍘氬害
+            String engineerId = glassList.get(0).getEngineerId();
+            Integer temperingLayoutId = glassList.get(0).getTemperingLayoutId();
+            OptimizeHeatLayout heatLayoutinfo = optimizeHeatLayoutService.selectHeatLayoutInfo(engineerId, temperingLayoutId);
+            int loadingRate = (int) (heatLayoutinfo.getLayoutRate() * 100); //瑁呰浇鐜�
+            loadingRate = loadingRate > 10000 ? 10000 : loadingRate;
+            List<OptimizeHeatDetail> heatDetailGlassInfoList = optimizeHeatDetailService.selectHeatDetailGlassInfo(engineerId, temperingLayoutId);
+
+            Optional<Double> maxProductOpt = heatDetailGlassInfoList.stream()
+                    .map(ohd -> ohd.getWidth() * ohd.getHeight())
+                    .max(Double::compareTo);
+            double totalarea = heatDetailGlassInfoList.stream().mapToDouble(ohd -> ohd.getWidth() * ohd.getHeight()).sum();
+
+            int shape = 0; //鏈�澶х墖鍗犳�婚潰绉殑姣斾緥
+            if (maxProductOpt.isPresent()) {
+                shape = (int) (maxProductOpt.get() / totalarea * 100);
+            }
+            shape = shape > 10000 ? 10000 : shape;
+            int workmode = 0; //宸ヤ綅鏁�
+            int furmode = 0; //鍙屽/鑱斿
+
+            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.TemperingId", temperingid));//鍐欏叆鐐夊彿
+            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.GlassType", glasstype));//鍐欏叆鐜荤拑绫诲瀷
+            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.Process", process));//鍐欏叆閽㈠寲绫诲瀷 鍏ㄩ挗 鍗婇挗 闃茬伀
+            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.Thickness", thiness));//鍐欏叆鍘氬害
+            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.LoadingRate", loadingRate));//鍐欏叆瑁呰浇鐜�
+            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.Shape", shape));//鍐欏叆澶х墖姣斾緥
+            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.WorkMode", workmode));//鍐欏叆宸ヤ綅鏁�
+            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.FurnaceMode", furmode));//鍐欏叆鐐変綋宸ヤ綔鏂瑰紡
+            log.info("鐐夊彿" + temperingid + "鐗堥潰淇℃伅灏濊瘯涓嬪彂");
+       }
+    }
+
+
+    //鏍规嵁鑶滅郴杩斿洖鐜荤拑绫诲瀷
+    private int GetGlassType(String glasstype) {
+        int result = 0;
+        String str = glasstype.toLowerCase();
+        if (str.contains("鐧界幓")) {
+            result = 0;
+        }
+        if (str.contains("瓒呯櫧")) {
+            result = 4;
+        }
+        if (str.contains("lowe") || str.contains("low-e")) {
+            result = 1;
+        }
+        if (str.contains("鍙岄摱")) {
+            result = 2;
+        }
+        if (str.contains("涓夐摱")) {
+            result = 3;
+        }
+        if (str.contains("鐑弽灏�")) {
+            result = 5;
+        }
+        return result;
+    }
+
+    private ReadWriteEntity generateReadWriteEntity(String identifier, Object value) {
+        return ReadWriteEntity.builder()
+                .identifier(identifier)
+                //Kep涓槸Long绫诲瀷锛屽嵆锛欼nt32锛孞ava涓殑int绫诲瀷
+                .value(value)
+                .build();
+    }
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcScreenTask.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcScreenTask.java
new file mode 100644
index 0000000..e53a18c
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcScreenTask.java
@@ -0,0 +1,86 @@
+package com.mes.job;
+import cn.hutool.json.JSONObject;
+import com.mes.order.entity.Orders;
+import com.mes.order.service.OrdersService;
+import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.entity.request.AwaitingRepair;
+import com.mes.pp.entity.request.Reportingdamage;
+import com.mes.pp.service.OptimizeProjectService;
+import com.mes.pp.service.ReportingWorkService;
+import com.mes.tools.WebSocketServer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author SNG-010
+ */
+@Component
+@Slf4j
+public class PlcScreenTask {
+
+    @Autowired
+    private ReportingWorkService reportingWorkService;
+    @Autowired
+    private OptimizeProjectService optimizeProjectService;
+    @Autowired
+    private OrdersService ordersService;
+    /**
+     * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
+     * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
+     */
+
+//    @Scheduled(fixedDelay = 10000)
+    public void screenHome() {
+        JSONObject jsonObject = new JSONObject();
+        Reportingdamage reportingdamage = new Reportingdamage();
+        // 鑾峰彇褰撳墠鏃ユ湡
+        LocalDate today = LocalDate.now();
+        // 璁$畻鏈�杩戜竷澶╃殑寮�濮嬫棩鏈�
+        LocalDate startOfPeriod = today.minusDays(6); // 7澶╃殑鑼冨洿鍖呮嫭浠婂ぉ锛屾墍浠ュ噺鍘�6澶�
+        // 鏈�杩戜竷澶╃殑缁撴潫鏃ユ湡灏辨槸浠婂ぉ
+        LocalDate endOfPeriod = today;
+        // 鏍煎紡鍖栨棩鏈熶负瀛楃涓�
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        String startOfPeriodStr = startOfPeriod.format(formatter);
+        String endOfPeriodStr = endOfPeriod.format(formatter);
+        // 璁剧疆涓烘渶杩戜竷澶╃殑鏃堕棿鑼冨洿
+//        reportingdamage.setReportingWorkTime("2024-05-11");
+        reportingdamage.setReportingWorkTime(startOfPeriodStr);
+        reportingdamage.setReportingWorkTime2(endOfPeriodStr);
+        //鎵囧舰鍥惧悇璁惧鐨勫姞宸ョ牬鎹熸暟閲�
+//        List<Reportingdamage> device = reportingWorkService.selectDamage(reportingdamage);
+//        jsonObject.append("device", device);
+
+        //鑾峰彇娆$牬鏈ˉ淇℃伅
+//        List<AwaitingRepair> awaitingRepairs = reportingWorkService.selectAwaitingRepair();
+//        jsonObject.append("awaitingRepairs", awaitingRepairs);
+        //鑾峰彇姝e湪杩涜鐨勫伐绋�
+        List<OptimizeProject> optimizeProjects = optimizeProjectService.getDoingTask();
+        jsonObject.append("DoingTask", optimizeProjects);
+        //鑾峰彇褰撳墠璁㈠崟
+        List<Orders> orders = ordersService.selectOrders();
+        jsonObject.append("orders", orders);
+
+        /*鐜板満瑙勫垝鍥炬樉绀�*/
+
+
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("screen");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java
new file mode 100644
index 0000000..f7c9623
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java
@@ -0,0 +1,149 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.mes.common.config.Const;
+import com.mes.damage.service.DamageService;
+import com.mes.largenscreen.entity.PieChartVO;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
+import com.mes.tools.WebSocketServer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author SNG-010
+ */
+@Component
+@Slf4j
+public class PlcTemperingGlassTask {
+
+    @Autowired
+    private TemperingGlassInfoService temperingAgoService;
+    @Autowired
+    private DamageService damageService;
+
+    /**
+     * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
+     * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
+     */
+
+    @Scheduled(fixedDelay = 1000)
+    public void temperingGlassHome() {
+        JSONObject jsonObject = new JSONObject();
+        //姝e湪绛夊緟杩涚墖鐨勭幓鐠�
+        List<TemperingGlassInfo> waitingGlass = temperingAgoService.selectWaitingGlassByOpc();
+        if (waitingGlass != null) {
+            jsonObject.append("waitingGlass", waitingGlass);
+        }
+
+        //鑾峰彇鏁村湪鐐変腑鐨勪袱涓増鍥緄d
+        List<TemperingGlassInfo> layoutId = temperingAgoService.selectLayoutId();
+        //杩涚倝涓殑鐜荤拑
+        if (!layoutId.isEmpty()) {
+            List<TemperingGlassInfo> intoGlass = temperingAgoService.selectIntoGlass(layoutId.get(0));
+            jsonObject.append("intoGlass", intoGlass);
+            //杩涚倝涓殑绗簩涓増鍥�
+            if (layoutId.size() > 1) {
+                List<TemperingGlassInfo> intoGlass2 = temperingAgoService.selectIntoGlass(layoutId.get(1));
+                jsonObject.append("intoGlass2", intoGlass2);
+            }
+        }
+        //鍑虹倝鍚庣殑鐜荤拑
+        List<TemperingGlassInfo> outGlass = temperingAgoService.selectOutGlass();
+        if (outGlass != null) {
+            jsonObject.append("outGlass", outGlass);
+        }
+
+        //杩囨棆杞彴閽㈠寲鍚庣殑鐜荤拑
+        List<TemperingGlassInfo> overGlass = temperingAgoService.selectOverGlass();
+        if (outGlass != null) {
+            jsonObject.append("overGlass", overGlass);
+        }
+
+
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("temperingGlass");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+        }
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void temperingIsRun() {
+        JSONObject jsonObject = new JSONObject();
+        //姝e湪杩涜鐨勪换鍔�
+        List<TemperingGlassInfo> temperingTaskType = temperingAgoService.selectTaskType();
+        jsonObject.append("temperingTaskType", temperingTaskType);
+
+
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("temperingIsRun");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+        }
+
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void largenScreen() {
+        JSONObject jsonObject = new JSONObject();
+        //澶у睆閽㈠寲淇℃伅
+        Integer putGlass = temperingAgoService.count(
+                new LambdaUpdateWrapper<TemperingGlassInfo>()
+                        .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW)
+        );
+        jsonObject.append("temperingTaskType", putGlass);
+        //澶у睆閽㈠寲淇℃伅
+        List<TemperingGlassInfo> temperingGlassInfoList = temperingAgoService.list(
+                new LambdaQueryWrapper<TemperingGlassInfo>()
+                        .select(TemperingGlassInfo::getEngineerId, TemperingGlassInfo::getTemperingLayoutId) // 閫夋嫨瑕佸幓閲嶇殑瀛楁
+                        .eq(TemperingGlassInfo::getState, Const.TEMPERING_START)
+                        .groupBy(TemperingGlassInfo::getEngineerId, TemperingGlassInfo::getTemperingLayoutId) // 鎸� engineerId 鍜� temperingLayoutId 鍒嗙粍
+        );
+        jsonObject.append("temperingGlassInfoList", temperingGlassInfoList.size());
+        //澶у睆閽㈠寲淇℃伅
+        List<TemperingGlassInfo> temperingGlassInfoInList = temperingAgoService.list(
+                new LambdaQueryWrapper<TemperingGlassInfo>()
+                        .select(TemperingGlassInfo::getEngineerId, TemperingGlassInfo::getTemperingLayoutId) // 閫夋嫨瑕佸幓閲嶇殑瀛楁
+                        .eq(TemperingGlassInfo::getState, Const.TEMPERING_DROP)
+                        .groupBy(TemperingGlassInfo::getEngineerId, TemperingGlassInfo::getTemperingLayoutId) // 鎸� engineerId 鍜� temperingLayoutId 鍒嗙粍
+        );
+        jsonObject.append("temperingGlassInfoInList", temperingGlassInfoInList.size());
+        //閽㈠寲楗煎浘鏁版嵁
+        List<PieChartVO> pieChartVOS = temperingAgoService.queryPieChart();
+        jsonObject.append("pieChartVOS", pieChartVOS);
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("largenScreen");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                    List<String> messages = webserver.getMessages();
+                    if (!messages.isEmpty()) {
+                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                        webserver.clearMessages();
+                    }
+                } else {
+                    log.info("largenScreen is closed");
+                }
+            }
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java
new file mode 100644
index 0000000..48ff215
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java
@@ -0,0 +1,165 @@
+package com.mes.job;
+
+import cn.smallbun.screw.core.util.CollectionUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.mes.common.S7object;
+import com.mes.common.config.Const;
+import com.mes.common.config.ConstSysConfig;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
+import com.mes.device.PlcParameterObject;
+import com.mes.sysconfig.service.SysConfigService;
+import com.mes.sysdict.entity.SysDictData;
+import com.mes.sysdict.service.SysDictDataService;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
+import com.mes.temperingrecord.entity.TemperingRecord;
+import com.mes.temperingrecord.service.TemperingRecordService;
+import com.mes.tools.S7control;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/7/17 12:47
+ * @Description:
+ */
+@Component
+@Slf4j
+public class TemperingTask {
+
+    @Autowired
+    private TemperingRecordService temperingRecordService;
+
+    @Autowired
+    private TemperingGlassInfoService temporaryGlassInfoService;
+
+    @Autowired
+    private DamageService damageService;
+
+    @Autowired
+    private SysDictDataService sysDictDataService;
+
+    @Autowired
+    private SysConfigService sysConfigService;
+
+    private static final String ALONE_STATE = "0";
+
+
+    //    @Scheduled(fixedDelay = 1000)
+    public void temperingGlassBefore() {
+        Date startDate = new Date();
+        log.info("鏈浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+        PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+        S7control plcControl = S7object.getinstance().plccontrol;
+        String state = plcParameterObject.getPlcParameter("state").getValue();
+//        褰撳墠杩炵嚎鐘舵�佷负
+        if (ALONE_STATE.equals(state)) {
+            log.info("褰撳墠閽㈠寲鐐夎繛绾挎ā寮忎负锛歿}锛�(0锛氭墜鍔紱1锛氳繛绾�),涓嶆墽琛岃浠诲姟", state);
+            return;
+        }
+        //灏嗙‘璁ゅ瓧缃负0
+        plcControl.writeWord(plcParameterObject.getPlcParameter("confirmationWord").getAddress(), 0);
+        //鍙兘鏈夊嚑鐐夌幓鐠冨悓鏃跺湪閽紝闇�瑕佽幏鍙栭挗鍖栧皬鐗囪〃涓殑鏁版嵁淇℃伅鐘舵�佷负2锛堟棆杞彴鐜荤拑宸查�佸嚭鏈挗鍖栵紝姝e湪閽㈠寲锛�
+        List<TemperingGlassInfo> temperingGlassInfoList = temporaryGlassInfoService.list(
+                new LambdaQueryWrapper<TemperingGlassInfo>()
+                        .inSql(TemperingGlassInfo::getTemperingLayoutId, "select distinct tempering_layout_id from tempering_glass_info where state=1")
+                        .lt(TemperingGlassInfo::getState, Const.TEMPERING_START)
+        );
+        if (CollectionUtils.isEmpty(temperingGlassInfoList)) {
+            log.info("褰撳墠绯荤粺娌℃湁闇�瑕侀挗鍖栫殑鐜荤拑淇℃伅");
+            return;
+        }
+        TemperingGlassInfo minGlassInfo = temperingGlassInfoList.stream().min(Comparator.comparingLong(TemperingGlassInfo::getState)).get();
+        if (minGlassInfo.getState() < Const.TEMPERING_DROP) {
+            log.info("褰撳墠鐐夌幓鐠冩湭鍒伴綈锛岀◢鍚庡湪鎵ц");
+            return;
+        }
+        //鎷垮埌宸ョ▼id鍙婄倝鍙�
+        TemperingGlassInfo maxGlassInfo = temperingGlassInfoList.stream().max(Comparator.comparingLong(TemperingGlassInfo::getId)).get();
+        //灏嗘鍦ㄩ挗鍖栫殑鐐夊彿杩囨护鎺夛紝浠呰幏鍙栧緟閽㈠寲鐨勭幓鐠�:鍒ゆ柇寰呴挗鐨勭幓鐠冩槸鍚﹀凡鍙戦�佸鎺ユ暟鎹�
+        List<TemperingRecord> temperingRecordList = temperingRecordService.list(new LambdaQueryWrapper<TemperingRecord>().eq(TemperingRecord::getEngineerId, maxGlassInfo.getEngineerId())
+                .eq(TemperingRecord::getTemperingLayoutId, maxGlassInfo.getTemperingLayoutId()));
+        if (CollectionUtils.isNotEmpty(temperingRecordList)) {
+            log.info("娌℃湁寰呴挗鍖栫殑浠诲姟锛岀粨鏉�");
+            return;
+        }
+        //鑾峰彇寰呴挗鍖栫殑鎵�鏈夌幓鐠冧俊鎭�
+        List<TemperingGlassInfo> temperingGlassList = temperingGlassInfoList.stream()
+                .filter(e -> e.getEngineerId().equals(maxGlassInfo.getEngineerId())
+                        && e.getTemperingLayoutId().equals(maxGlassInfo.getTemperingLayoutId()))
+                .sorted(Comparator.comparing(TemperingGlassInfo::getTemperingFeedSequence)).collect(Collectors.toList());
+        //鎸夌収鑶滅郴鑾峰彇鐜荤拑鏉愯川
+        SysDictData glassTypeSysDictData = sysDictDataService.getOne(new QueryWrapper<SysDictData>()
+                .eq(StringUtils.isNotBlank(temperingGlassList.get(0).getFilmsId()), "dict_label", temperingGlassList.get(0).getFilmsId()));
+
+        double sumArea = temperingGlassList.stream().mapToDouble(e -> e.getWidth() * e.getHeight()).sum();
+        double maxArea = temperingGlassList.stream().mapToDouble(e -> e.getWidth() * e.getHeight()).max().orElse(0.0);
+        double minArea = temperingGlassList.stream().mapToDouble(e -> e.getWidth() * e.getHeight()).min().orElse(0.0);
+        double areaDifference = (10000 * (maxArea - minArea) / maxArea);
+        Integer temperingHeight = sysConfigService.queryConfigValue(ConstSysConfig.TEMPERING_HEIGHT);
+        Integer temperingWidth = sysConfigService.queryConfigValue(ConstSysConfig.TEMPERING_HEIGHT);
+        double loadingRate = (int) (10000 * sumArea / (temperingHeight * temperingWidth));
+        TemperingRecord temperingRecord = new TemperingRecord();
+        temperingRecord.setEngineerId(maxGlassInfo.getEngineerId());
+        temperingRecord.setTemperingLayoutId(maxGlassInfo.getTemperingLayoutId());
+        temperingRecord.setGlassType(Integer.parseInt(glassTypeSysDictData.getDictTypeValue()));
+        temperingRecord.setTemperingType(1);//鍏ㄩ挗
+        temperingRecord.setThickness(temperingGlassList.get(0).getThickness());
+        temperingRecord.setAreaDifference(areaDifference);
+        temperingRecord.setLoadingRate(loadingRate);
+        temperingRecord.setState(Const.GLASS_STATE_NEW);
+        //濡傛灉鍑虹幇鍚屼竴鐐夐噸璇昏澶勭悊锛屼富閿洿鎺ュ紓甯稿鐞嗭紝涓嶄細鍙戠粰plc閽㈠寲淇℃伅
+        temperingRecordService.save(temperingRecord);
+//      鍚憄lc鍙戦�侀挗鍖栦俊鎭�
+        plcControl.writeWord(plcParameterObject.getPlcParameter("temperingLayoutId").getAddress(), maxGlassInfo.getTemperingLayoutId());
+        plcControl.writeWord(plcParameterObject.getPlcParameter("filmsid").getAddress(), Integer.parseInt(glassTypeSysDictData.getDictTypeValue()));
+        plcControl.writeWord(plcParameterObject.getPlcParameter("temperingType").getAddress(), 1);
+        plcControl.writeWord(plcParameterObject.getPlcParameter("thickness").getAddress(), (int) (temperingGlassList.get(0).getThickness() * 10));
+        plcControl.writeWord(plcParameterObject.getPlcParameter("areaDifference").getAddress(), (int) areaDifference);
+        plcControl.writeWord(plcParameterObject.getPlcParameter("loadingRate").getAddress(), (int) loadingRate);
+        //瀹屾垚浠诲姟灏嗙‘璁ゅ瓧缃负1
+        plcControl.writeWord(plcParameterObject.getPlcParameter("confirmationWord").getAddress(), 1);
+        Date endDate = new Date();
+        log.info("鏈浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime());
+    }
+
+//    @Scheduled(fixedDelay = 1000)
+    public void temperingGlassAfter() {
+        //鏆備笉澶勭悊
+    }
+
+//    @Scheduled(fixedDelay = 1000)
+    public void dealDamageTask() {
+        Date startDate = new Date();
+        log.info("閽㈠寲鐮存崯鐜荤拑娓呴櫎浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+        List<TemperingGlassInfo> temperingGlassInfoList = temporaryGlassInfoService.list(new LambdaQueryWrapper<TemperingGlassInfo>().in(TemperingGlassInfo::getState, Const.GLASS_STATE_DAMAGE_TAKE));
+        if (CollectionUtils.isNotEmpty(temperingGlassInfoList)) {
+            //鑾峰彇鐮存崯/鎷胯蛋鐜荤拑id
+            List<String> glassList = temperingGlassInfoList.stream().map(TemperingGlassInfo::getGlassId).collect(Collectors.toList());
+            //灏嗕换鍔¤〃涓殑鏁版嵁鍒犻櫎
+            temporaryGlassInfoService.remove(new LambdaQueryWrapper<TemperingGlassInfo>().in(TemperingGlassInfo::getGlassId, glassList));
+            List<Damage> damageList = temperingGlassInfoList.stream().map(e -> {
+                Damage damage = new Damage();
+                damage.setGlassId(e.getGlassId());
+                damage.setLine(Const.TEMPERING_OUT_TARGET_POSITION);
+                damage.setWorkingProcedure("閽㈠寲");
+                damage.setRemark("閽㈠寲");
+                damage.setStatus(1);
+                damage.setType(e.getState());
+                return damage;
+            }).collect(Collectors.toList());
+            damageService.batchInsertDamage(damageList);
+        }
+        Date endDate = new Date();
+        log.info("鏈浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime());
+    }
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
new file mode 100644
index 0000000..f93875f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
@@ -0,0 +1,84 @@
+package com.mes.temperingglass.controller;
+
+import com.mes.damage.service.DamageService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.entity.LoadGlassInfo;
+import com.mes.temperingglass.eneity.request.DamageRequest;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+
+/**
+ * @author SNG-010
+ */
+@Api(tags = "閽㈠寲鏄剧ず")
+@RestController
+@RequestMapping("/temperingGlassInfo")
+@Slf4j
+// TidyUpGlassModule 閽㈠寲妯″潡
+public class TemperingGlassInfoController {
+
+    @Autowired
+    private TemperingGlassInfoService temperingGlassInfoService;
+    @Autowired
+    private DamageService damageService;
+
+
+    @ApiOperation("鏌ヨ閽㈠寲绛夌墖涓殑鐗堝浘淇℃伅,鐘舵�佷负1鐨勪负宸插埌,鐘舵�佷负0鐨勪负绛夊緟涓�")
+    @GetMapping("/selectWaitingGlass") // 鏌ヨ閽㈠寲绛夌墖涓殑鐗堝浘淇℃伅,鐘舵�佷负1鐨勪负宸插埌,鐘舵�佷负0鐨勪负绛夊緟涓�
+    public Result <List<TemperingGlassInfo>> selectWaitingGlass() {
+        List<TemperingGlassInfo> glass = temperingGlassInfoService.selectWaitingGlass();
+        log.info("绛夊緟涓殑鐜荤拑淇℃伅{}",glass);
+        return Result.build(200, "", glass);
+    }
+
+    @ApiOperation("//閽㈠寲鍚庢樉绀哄嚭鐐夌殑鐗堝浘淇℃伅銆�")
+    @GetMapping("/selectOutGlass") //閽㈠寲鍚庢樉绀哄嚭鐐夌殑鐗堝浘淇℃伅
+    public Result <List<TemperingGlassInfo>> selectOutGlass() {
+        List<TemperingGlassInfo> glass = temperingGlassInfoService.selectOutGlass();
+        log.info("閽㈠寲鍑虹倝鍚庣殑鐜荤拑淇℃伅{}",glass);
+        return Result.build(200, "", glass);
+    }
+
+    @ApiOperation("//閽㈠寲鐮存崯鎷胯蛋鏀惧洖")
+    @PostMapping("/updateTemperingState") //閽㈠寲鍚庢樉绀哄嚭鐐夌殑鐗堝浘淇℃伅
+    public Result<List<LoadGlassInfo>> updateTemperingState(@RequestBody DamageRequest damage) {
+        TemperingGlassInfo temperingGlassInfo=new TemperingGlassInfo();
+        temperingGlassInfo.setState(damage.getState());
+        temperingGlassInfo.setGlassId(damage.getGlassId());
+        int result=temperingGlassInfoService.updateTemperingState(temperingGlassInfo);
+        if (damage.getState() > 5) {
+            damageService.autoSubmitReport(damage.getGlassId(), damage.getLine()
+                    , damage.getWorkingProcedure(), "閽㈠寲鐐�", damage.getState());
+        }
+        GlassInfo glassInfo = new GlassInfo();
+        glassInfo.setEngineerId(damage.getEngineerId());
+        glassInfo.setTemperingLayoutId(damage.getTemperingLayoutId());
+        List<LoadGlassInfo> glass = temperingGlassInfoService.selectTemperingGlass(glassInfo);
+        return Result.build(200, "鐮存崯鎴愬姛", glass);
+    }
+
+    @ApiOperation("//鏌ヨ褰撳墠宸ョ▼鍙锋墍鏈夌殑鐐夊彿")
+    @PostMapping("/selectTempering") //鏌ヨ褰撳墠宸ョ▼鍙锋墍鏈夌殑鐐夊彿
+    public Result<GlassInfo> selectTempering(@RequestBody GlassInfo glassInfo) {
+        GlassInfo glass = temperingGlassInfoService.selectTempering(glassInfo);
+        return Result.build(200, "鏌ヨ鎴愬姛", glass);
+    }
+
+    @ApiOperation("//鏌ヨ褰撳墠宸ョ▼鍙风殑閽㈠寲鐗堝浘")
+    @PostMapping("/selectTemperingGlass") //鏌ヨ褰撳墠宸ョ▼鍙锋墍鏈夌殑鐐夊彿
+    public Result<List<LoadGlassInfo>> selectTemperingGlass(@RequestBody GlassInfo glassInfo) {
+        List<LoadGlassInfo> glass = temperingGlassInfoService.selectTemperingGlass(glassInfo);
+        return Result.build(200, "鏌ヨ鎴愬姛", glass);
+    }
+
+
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/eneity/request/DamageRequest.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/eneity/request/DamageRequest.java
new file mode 100644
index 0000000..416946f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/eneity/request/DamageRequest.java
@@ -0,0 +1,42 @@
+package com.mes.temperingglass.eneity.request;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/2/27 14:53
+ * @Description:
+ */
+@Data
+public class DamageRequest {
+
+
+    /**
+     * 绾胯矾
+     */
+    private Integer line;
+
+    /**
+     * 宸ュ簭
+     */
+    private String workingProcedure;
+
+    /**
+     * 鐜荤拑id
+     */
+    private String glassId;
+
+
+    /**
+     * 鐘舵�侊細8鐮存崯  9鎷胯蛋
+     */
+    private Integer state;
+    /**
+     * 宸ョ▼鍙�
+     */
+    private String engineerId;
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/controller/TemperingRecordController.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/controller/TemperingRecordController.java
new file mode 100644
index 0000000..ea8b73b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/controller/TemperingRecordController.java
@@ -0,0 +1,20 @@
+package com.mes.temperingrecord.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-07-17
+ */
+@RestController
+@RequestMapping("/temperingRecord")
+public class TemperingRecordController {
+
+}
+
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/entity/TemperingRecord.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/entity/TemperingRecord.java
new file mode 100644
index 0000000..0049269
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/entity/TemperingRecord.java
@@ -0,0 +1,77 @@
+package com.mes.temperingrecord.entity;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-07-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class TemperingRecord implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 宸ョ▼id
+     */
+    private String engineerId;
+    /**
+     * 閽㈠寲鐗堝浘
+     */
+    private Integer temperingLayoutId;
+
+    /**
+     * 鐜荤拑鏉愯川(鑶滅郴0.鐧界幓1.鍗曢摱2.鍙岄摱3涓夐摱 4.瓒呯櫧5.鐑弽灏�)
+     */
+    private Integer glassType;
+
+    /**
+     * 閽㈠寲绫诲瀷锛�1.鍏ㄩ挗:2.鍗婇挗锛�
+     */
+    private Integer temperingType;
+
+    /**
+     * 鍘氬害锛堝帤搴�*10)
+     */
+    private Double thickness;
+
+    /**
+     * 瑁呰浇鐜�
+     */
+    private Double loadingRate;
+
+    /**
+     * 闈㈢Н宸�
+     */
+    private Double areaDifference;
+
+    /**
+     * 鐢熶骇鑰楁椂
+     */
+    private String productionTime;
+
+    /**
+     * 鍔犵儹鑳借��
+     */
+    private String heatEnergy;
+
+    /**
+     * 鍐峰嵈鑳借��
+     */
+    private String coolEnergy;
+
+    /**
+     * 鏄惁瀹屾垚(plc鑾峰彇闈�1锛氬弬鏁颁笉瀛樺湪锛�2銆佸尮閰嶅畬鎴愶紱3銆佸尮閰嶈秴鏃讹級
+     */
+    private Integer state;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/mapper/TemperingRecordMapper.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/mapper/TemperingRecordMapper.java
new file mode 100644
index 0000000..d12a20a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/mapper/TemperingRecordMapper.java
@@ -0,0 +1,16 @@
+package com.mes.temperingrecord.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.temperingrecord.entity.TemperingRecord;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-07-17
+ */
+public interface TemperingRecordMapper extends BaseMapper<TemperingRecord> {
+
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/mapper/xml/TemperingRecordMapper.xml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/mapper/xml/TemperingRecordMapper.xml
new file mode 100644
index 0000000..73d8f85
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/mapper/xml/TemperingRecordMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.tempering_record.mapper.TemperingRecordMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/service/TemperingRecordService.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/service/TemperingRecordService.java
new file mode 100644
index 0000000..daeb9a4
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/service/TemperingRecordService.java
@@ -0,0 +1,16 @@
+package com.mes.temperingrecord.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.temperingrecord.entity.TemperingRecord;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-07-17
+ */
+public interface TemperingRecordService extends IService<TemperingRecord> {
+
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/service/impl/TemperingRecordServiceImpl.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/service/impl/TemperingRecordServiceImpl.java
new file mode 100644
index 0000000..ea39a21
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/service/impl/TemperingRecordServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.temperingrecord.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.temperingrecord.entity.TemperingRecord;
+import com.mes.temperingrecord.mapper.TemperingRecordMapper;
+import com.mes.temperingrecord.service.TemperingRecordService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-07-17
+ */
+@Service
+public class TemperingRecordServiceImpl extends ServiceImpl<TemperingRecordMapper, TemperingRecord> implements TemperingRecordService {
+
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-cz.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-cz.yml
new file mode 100644
index 0000000..b9134bf
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-cz.yml
@@ -0,0 +1,37 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.1.199:3306/hangzhoumes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://192.168.10.2:1433;databasename=hangzhoumes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+        pp:
+          url: jdbc:mysql://192.168.1.199:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        sd:
+          url: jdbc:mysql://192.168.1.199:3306/sd?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  application:
+    name: temperingGlass
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..b54025e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml
@@ -0,0 +1,49 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://10.153.19.150:1433;databasename=north_glass_mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+        pp:
+          url: jdbc:mysql://127.0.0.1:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        sd:
+          url: jdbc:mysql://127.0.0.1:3306/sd?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  application:
+    name: temperingGlass
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
+  liquibase:
+    change-log: classpath:changelog/changelogBase.xml
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://10.153.19.150:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..c3283b7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml
@@ -0,0 +1,49 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://10.153.19.150:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://10.153.19.150:1433;databasename=north_glass_mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+        pp:
+          url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        sd:
+          url: jdbc:mysql://10.153.19.150:3306/sd?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8849
+  application:
+    name: temperingGlass
+  redis:
+    database: 0
+    host: 10.153.19.150
+    port: 6379
+    password: 123456
+  liquibase:
+    change-log: classpath:changelog/changelogBase.xml
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://10.153.19.150:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-yw.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-yw.yml
new file mode 100644
index 0000000..0f8099a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-yw.yml
@@ -0,0 +1,47 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.2.100:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://192.168.2.100:1433;databasename=mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+        pp:
+          url: jdbc:mysql://192.168.2.100:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        sd:
+          url: jdbc:mysql://192.168.2.100:3306/sd?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 192.168.2.100:8848
+  application:
+    name: temperingGlass
+  redis:
+    database: 0
+    host: 192.168.2.100
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://192.168.2.100:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml
new file mode 100644
index 0000000..c71e71e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml
@@ -0,0 +1,26 @@
+server:
+  port: 10016
+spring:
+  profiles:
+    active: dev
+  application:
+    name: temperingGlass
+  liquibase:
+    enabled: false
+mybatis-plus:
+  mapper-locations: classpath*:mapper/*.xml
+#  configuration:
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+mes:
+  width: 2800
+  height: 5000
+kangaroohy:
+  milo:
+    enabled: false
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://10.153.19.150:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/changelogBase.xml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/changelogBase.xml
new file mode 100644
index 0000000..0f9051b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/changelogBase.xml
@@ -0,0 +1,10 @@
+<databaseChangeLog
+        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
+                      http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
+
+    <!-- 寮曞叆绗竴涓猄QL閰嶇疆鏂囦欢 -->
+    <include file="./changelog/mesChangelogInit.sql" relativeToChangelogFile="false"/>
+
+</databaseChangeLog>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/mesChangelogInit.sql b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/mesChangelogInit.sql
new file mode 100644
index 0000000..e08a245
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/mesChangelogInit.sql
@@ -0,0 +1,1662 @@
+-- liquibase formatted sql
+
+-- changeset zsh:20241206001
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'big_storage_cage' ;
+CREATE TABLE big_storage_cage  (
+                                   id bigint NOT NULL COMMENT '澶х悊鐗囩琛╥d',
+                                   device_id int NULL DEFAULT NULL COMMENT '璁惧id',
+                                   slot int NULL DEFAULT NULL COMMENT '鏍呮牸鍙�',
+                                   min_thickness int NULL DEFAULT NULL COMMENT '鏈�灏忓帤搴�',
+                                   max_thickness int NULL DEFAULT NULL COMMENT '鏈�澶у帤搴�',
+                                   enable_state int NULL DEFAULT NULL COMMENT '鍚敤鐘舵��',
+                                   remain_width int NULL DEFAULT NULL COMMENT '鍓╀綑瀹藉害',
+                                   PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB ;
+-- rollback DROP TABLE big_storage_cage;
+
+
+-- changeset zsh:20241206002
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM big_storage_cage;
+INSERT INTO big_storage_cage VALUES (1, 1, 1, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (2, 1, 2, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (3, 1, 3, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (4, 1, 4, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (5, 1, 5, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (6, 1, 6, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (7, 1, 7, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (8, 1, 8, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (9, 1, 9, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (10, 1, 10, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (11, 1, 11, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (12, 1, 12, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (13, 1, 13, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (14, 1, 14, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (15, 1, 15, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (16, 1, 16, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (17, 1, 17, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (18, 1, 18, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (19, 1, 19, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (20, 1, 20, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (21, 1, 21, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (22, 1, 22, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (23, 1, 23, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (24, 1, 24, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (25, 1, 25, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (26, 1, 26, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (27, 1, 27, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (28, 1, 28, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (29, 1, 29, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (30, 1, 30, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (31, 1, 31, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (32, 1, 32, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (33, 1, 33, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (34, 1, 34, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (35, 1, 35, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (36, 1, 36, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (37, 1, 37, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (38, 1, 38, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (39, 1, 39, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (40, 1, 40, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (41, 1, 41, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (42, 1, 42, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (43, 1, 43, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (44, 1, 44, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (45, 1, 45, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (46, 1, 46, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (47, 1, 47, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (48, 1, 48, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (49, 1, 49, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (50, 1, 50, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (51, 1, 51, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (52, 1, 52, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (53, 1, 53, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (54, 1, 54, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (55, 1, 55, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (56, 2, 56, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (57, 2, 57, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (58, 2, 58, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (59, 2, 59, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (60, 2, 60, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (61, 2, 61, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (62, 2, 62, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (63, 2, 63, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (64, 2, 64, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (65, 2, 65, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (66, 2, 66, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (67, 2, 67, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (68, 2, 68, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (69, 2, 69, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (70, 2, 70, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (71, 2, 71, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (72, 2, 72, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (73, 2, 73, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (74, 2, 74, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (75, 2, 75, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (76, 2, 76, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (77, 2, 77, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (78, 2, 78, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (79, 2, 79, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (80, 2, 80, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (81, 2, 81, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (82, 2, 82, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (83, 2, 83, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (84, 2, 84, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (85, 2, 85, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (86, 2, 86, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (87, 2, 87, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (88, 2, 88, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (89, 2, 89, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (90, 2, 90, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (91, 2, 91, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (92, 2, 92, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (93, 2, 93, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (94, 2, 94, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (95, 2, 95, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (96, 2, 96, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (97, 2, 97, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (98, 2, 98, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (99, 2, 99, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (100, 2, 100, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (101, 2, 101, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (102, 2, 102, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (103, 2, 103, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (104, 2, 104, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (105, 2, 105, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (106, 2, 106, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (107, 2, 107, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (108, 2, 108, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (109, 2, 109, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (110, 2, 110, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (111, 3, 111, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (112, 3, 112, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (113, 3, 113, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (114, 3, 114, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (115, 3, 115, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (116, 3, 116, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (117, 3, 117, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (118, 3, 118, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (119, 3, 119, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (120, 3, 120, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (121, 3, 121, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (122, 3, 122, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (123, 3, 123, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (124, 3, 124, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (125, 3, 125, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (126, 3, 126, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (127, 3, 127, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (128, 3, 128, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (129, 3, 129, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (130, 3, 130, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (131, 3, 131, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (132, 3, 132, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (133, 3, 133, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (134, 3, 134, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (135, 3, 135, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (136, 3, 136, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (137, 3, 137, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (138, 3, 138, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (139, 3, 139, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (140, 3, 140, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (141, 3, 141, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (142, 3, 142, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (143, 3, 143, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (144, 3, 144, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (145, 3, 145, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (146, 3, 146, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (147, 3, 147, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (148, 3, 148, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (149, 3, 149, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (150, 3, 150, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (151, 3, 151, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (152, 3, 152, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (153, 3, 153, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (154, 3, 154, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (155, 3, 155, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (156, 3, 156, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (157, 3, 157, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (158, 3, 158, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (159, 3, 159, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (160, 3, 160, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (161, 3, 161, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (162, 3, 162, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (163, 3, 163, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (164, 3, 164, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (165, 3, 165, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (166, 4, 166, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (167, 4, 167, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (168, 4, 168, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (169, 4, 169, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (170, 4, 170, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (171, 4, 171, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (172, 4, 172, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (173, 4, 173, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (174, 4, 174, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (175, 4, 175, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (176, 4, 176, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (177, 4, 177, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (178, 4, 178, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (179, 4, 179, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (180, 4, 180, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (181, 4, 181, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (182, 4, 182, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (183, 4, 183, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (184, 4, 184, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (185, 4, 185, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (186, 4, 186, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (187, 4, 187, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (188, 4, 188, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (189, 4, 189, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (190, 4, 190, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (191, 4, 191, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (192, 4, 192, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (193, 4, 193, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (194, 4, 194, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (195, 4, 195, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (196, 4, 196, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (197, 4, 197, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (198, 4, 198, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (199, 4, 199, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (200, 4, 200, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (201, 4, 201, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (202, 4, 202, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (203, 4, 203, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (204, 4, 204, 4, 6, 1, 6200);
+INSERT INTO big_storage_cage VALUES (205, 4, 205, 4, 6, 1, 6200);
+
+
+-- changeset zsh:20241206003
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'big_storage_cage_details';
+CREATE TABLE big_storage_cage_details  (
+                                           id bigint NOT NULL AUTO_INCREMENT COMMENT '澶х悊鐗囩璇︽儏琛╥d',
+                                           device_id int NULL DEFAULT NULL COMMENT '璁惧id',
+                                           slot int NULL DEFAULT NULL COMMENT '鏍呮牸鍙�',
+                                           glass_id varchar(20) DEFAULT NULL COMMENT '鐜荤拑id',
+                                           sequence int NULL DEFAULT NULL COMMENT '灏忕墖鍦ㄦ牸鍐呯殑椤哄簭',
+                                           flow_card_id varchar(20) DEFAULT NULL COMMENT '娴佺▼鍗″彿',
+                                           glass_type int NULL DEFAULT NULL COMMENT '鐜荤拑绫诲瀷',
+                                           width double NULL DEFAULT NULL COMMENT '瀹�',
+                                           height double NULL DEFAULT NULL COMMENT '楂�',
+                                           thickness double NULL DEFAULT NULL COMMENT '鍘氬害',
+                                           tempering_layout_id int NULL DEFAULT NULL COMMENT '閽㈠寲鐗堝浘id',
+                                           tempering_feed_sequence int NULL DEFAULT NULL COMMENT '閽㈠寲鐗堝浘鐗囧簭',
+                                           x_coordinate int NULL DEFAULT NULL COMMENT 'x鍧愭爣',
+                                           y_coordinate int NULL DEFAULT NULL COMMENT 'y鍧愭爣',
+                                           state int NULL DEFAULT NULL COMMENT '鐘舵��',
+                                           gap int NULL DEFAULT NULL COMMENT '鐜荤拑闂撮殭',
+                                           engineer_id varchar(50) NULL DEFAULT NULL,
+                                           layer int NULL DEFAULT NULL COMMENT '灞傚彿',
+                                           create_time timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+                                           update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
+                                           PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1;
+-- rollback DROP TABLE big_storage_cage_details;
+
+-- changeset zsh:20241206004
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'big_storage_cage_history_task';
+CREATE TABLE big_storage_cage_history_task  (
+                                                id bigint NOT NULL AUTO_INCREMENT,
+                                                glass_id varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '鐜荤拑id',
+                                                start_slot int NULL DEFAULT 0 COMMENT '璧峰鏍煎瓙',
+                                                target_slot int NULL DEFAULT 0 COMMENT '鐩爣鏍煎瓙',
+                                                task_state int NULL DEFAULT NULL COMMENT '浠诲姟鐘舵�� ',
+                                                glass_count int NULL DEFAULT NULL COMMENT '鐜荤拑鏁伴噺',
+                                                task_type int NULL DEFAULT NULL COMMENT '浠诲姟绫诲瀷',
+                                                create_time timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+                                                update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
+                                                PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE big_storage_cage_history_task;
+
+-- changeset zsh:20241206005
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'big_storage_cage_in_one_task';
+CREATE TABLE big_storage_cage_in_one_task  (
+                                               task_running int NULL DEFAULT 0 COMMENT '浠诲姟璇锋眰 0鏃犱换鍔� 1鍚姩浠诲姟 2 纭瀹屾垚',
+                                               glass_id varchar(32) DEFAULT NULL COMMENT '鐜荤拑id',
+                                               start_slot int NULL DEFAULT 0 COMMENT '璧峰鏍煎瓙',
+                                               target_slot int NULL DEFAULT 0 COMMENT '鐩爣鏍煎瓙',
+                                               task_state int NULL DEFAULT NULL COMMENT '浠诲姟鐘舵�� '
+) ENGINE = InnoDB ;
+-- rollback DROP TABLE big_storage_cage_in_one_task;
+
+
+-- changeset zsh:20241206006
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM big_storage_cage_in_one_task;
+INSERT INTO big_storage_cage_in_one_task VALUES (0, '', 0, 0, 0);
+INSERT INTO big_storage_cage_in_one_task VALUES (0, '', 0, 0, 0);
+INSERT INTO big_storage_cage_in_one_task VALUES (0, '', 0, 0, 0);
+INSERT INTO big_storage_cage_in_one_task VALUES (0, '', 0, 0, 0);
+INSERT INTO big_storage_cage_in_one_task VALUES (0, '', 0, 0, 0);
+INSERT INTO big_storage_cage_in_one_task VALUES (0, '', 0, 0, 0);
+
+-- changeset zsh:20241206007
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'big_storage_cage_in_two_task';
+CREATE TABLE big_storage_cage_in_two_task  (
+                                               task_running int NULL DEFAULT 0 COMMENT '浠诲姟璇锋眰 0鏃犱换鍔� 1鍚姩浠诲姟 2 纭瀹屾垚',
+                                               glass_id varchar(32) DEFAULT NULL COMMENT '鐜荤拑id',
+                                               start_slot int NULL DEFAULT 0 COMMENT '璧峰鏍煎瓙',
+                                               target_slot int NULL DEFAULT 0 COMMENT '鐩爣鏍煎瓙',
+                                               task_state int NULL DEFAULT NULL COMMENT '浠诲姟鐘舵�� '
+) ENGINE = InnoDB ;
+-- rollback DROP TABLE big_storage_cage_in_two_task;
+
+
+-- changeset zsh:20241206008
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM big_storage_cage_in_two_task;
+INSERT INTO big_storage_cage_in_two_task VALUES (0, NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_in_two_task VALUES (0, NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_in_two_task VALUES (0, NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_in_two_task VALUES (0, NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_in_two_task VALUES (0, NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_in_two_task VALUES (0, NULL, 0, 0, 0);
+
+-- changeset zsh:20241206009
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'big_storage_cage_out_one_task';
+CREATE TABLE big_storage_cage_out_one_task  (
+                                                glass_id varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '鐜荤拑id',
+                                                start_slot int NULL DEFAULT 0 COMMENT '璧峰鏍煎瓙',
+                                                target_slot int NULL DEFAULT 0 COMMENT '鐩爣鏍煎瓙',
+                                                task_state int NULL DEFAULT NULL COMMENT '浠诲姟鐘舵�� '
+) ENGINE = InnoDB ;
+-- rollback DROP TABLE big_storage_cage_out_one_task;
+
+
+-- changeset zsh:20241206010
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM big_storage_cage_out_one_task;
+INSERT INTO big_storage_cage_out_one_task VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_out_one_task VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_out_one_task VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_out_one_task VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_out_one_task VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_out_one_task VALUES (NULL, 0, 0, 0);
+
+-- changeset zsh:20241206011
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'big_storage_cage_out_two_task';
+CREATE TABLE big_storage_cage_out_two_task  (
+                                                glass_id varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '鐜荤拑id',
+                                                start_slot int NULL DEFAULT 0 COMMENT '璧峰鏍煎瓙',
+                                                target_slot int NULL DEFAULT 0 COMMENT '鐩爣鏍煎瓙',
+                                                task_state int NULL DEFAULT NULL COMMENT '浠诲姟鐘舵�� '
+) ENGINE = InnoDB ;
+-- rollback DROP TABLE big_storage_cage_out_two_task;
+
+
+-- changeset zsh:20241206012
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM big_storage_cage_out_two_task;
+INSERT INTO big_storage_cage_out_two_task VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_out_two_task VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_out_two_task VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_out_two_task VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_out_two_task VALUES (NULL, 0, 0, 0);
+INSERT INTO big_storage_cage_out_two_task VALUES (NULL, 0, 0, 0);
+
+-- changeset zsh:20241206013
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'big_storage_glass_info';
+CREATE TABLE big_storage_glass_info  (
+                                         id bigint NOT NULL AUTO_INCREMENT COMMENT '澶х悊鐗囩淇℃伅琛╥d',
+                                         glass_id varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '鐜荤拑id',
+                                         flow_card_id varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '娴佺▼鍗″彿',
+                                         glass_type int NULL DEFAULT NULL COMMENT '鐜荤拑绫诲瀷',
+                                         width double NULL DEFAULT NULL COMMENT '瀹�',
+                                         height double NULL DEFAULT NULL COMMENT '楂�',
+                                         thickness double NULL DEFAULT NULL COMMENT '鍘氬害',
+                                         tempering_layout_id int NULL DEFAULT NULL COMMENT '閽㈠寲鐗堝浘id',
+                                         tempering_feed_sequence int NULL DEFAULT NULL COMMENT '閽㈠寲鐗堝浘鐗囧簭',
+                                         x_coordinate int NULL DEFAULT NULL COMMENT 'x鍧愭爣',
+                                         y_coordinate int NULL DEFAULT NULL COMMENT 'y鍧愭爣',
+                                         engineer_id varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+                                         layer int NULL DEFAULT NULL COMMENT '灞傚彿',
+                                         virtual_slot int NULL DEFAULT NULL COMMENT '铏氭嫙鏍煎瓙鍙�',
+                                         slot_sequence int NULL DEFAULT NULL COMMENT '鏍煎瓙娆″簭',
+                                         PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1;
+-- rollback DROP TABLE big_storage_glass_info;
+
+-- changeset zsh:20241206014
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'big_storage_glass_relation_info';
+CREATE TABLE big_storage_glass_relation_info  (
+                                                  id bigint NOT NULL AUTO_INCREMENT COMMENT '閽㈠寲鐜荤拑鍏崇郴琛╥d',
+                                                  engineer_id varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+                                                  glass_id varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '鐜荤拑id',
+                                                  tempering_layout_id int NULL DEFAULT NULL COMMENT '閽㈠寲鐗堝浘id',
+                                                  tempering_feed_sequence int NULL DEFAULT NULL COMMENT '閽㈠寲鐗堝浘鐗囧簭',
+                                                  virtual_slot int NULL DEFAULT NULL COMMENT '铏氭嫙鏍煎瓙',
+                                                  slot_sequence int NULL DEFAULT NULL COMMENT '鏍煎瓙鍐呮搴�',
+                                                  slot int NULL DEFAULT NULL COMMENT '瀹為檯鏍煎瓙鍙�',
+                                                  device_id int NULL DEFAULT NULL COMMENT '瀹為檯绗煎瓙鍙�',
+                                                  PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE big_storage_glass_relation_info;
+
+-- changeset zsh:20241206015
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'damage';
+CREATE TABLE damage  (
+                         id bigint NOT NULL AUTO_INCREMENT,
+                         line int NULL DEFAULT NULL COMMENT '绾胯矾',
+                         working_procedure varchar(20) DEFAULT NULL COMMENT '宸ュ簭',
+                         glass_id varchar(30) DEFAULT NULL COMMENT '鐜荤拑id',
+                         engineer_id varchar(20) DEFAULT NULL COMMENT '宸ョ▼鍙�',
+                         tempering_layout_id int NULL DEFAULT NULL COMMENT '閽㈠寲鐗堝浘id',
+                         damage_time datetime NULL DEFAULT NULL COMMENT '鐢熶骇鏃堕棿',
+                         remark varchar(255) DEFAULT NULL COMMENT '澶囨敞',
+                         type int NULL DEFAULT NULL COMMENT '绫诲瀷锛�1锛氭姤宸� 2锛氱牬鎹� 3锛氭嬁璧�',
+                         status int NULL DEFAULT NULL COMMENT '鐘舵�侊細1锛氭湭鎶ュ伐 2:寰呮姤宸� 3锛氬凡鎶ュ伐',
+                         process_id varchar(20) DEFAULT NULL COMMENT '娴佺▼鍗�',
+                         order_number int NULL DEFAULT NULL COMMENT '搴忓彿',
+                         technology_number int NULL DEFAULT NULL COMMENT '宸ヨ壓纭搴忓彿',
+                         breakage_type varchar(255) DEFAULT NULL COMMENT '鐮存崯绫诲瀷',
+                         breakage_reason varchar(255) DEFAULT NULL COMMENT '鐮存崯鍘熷洜',
+                         responsible_process varchar(255) DEFAULT NULL COMMENT '璐d换宸ュ簭',
+                         responsible_personnel varchar(255) DEFAULT NULL COMMENT '璐d换浜哄憳',
+                         responsible_team varchar(255) DEFAULT NULL COMMENT '璐d换鐝粍',
+                         responsible_equipment varchar(255) DEFAULT NULL COMMENT '璐d换璁惧',
+                         teams_groups_name varchar(255) DEFAULT NULL COMMENT '鎶ュ伐鐝粍鍚嶇О',
+                         device_name varchar(255) DEFAULT NULL COMMENT '鎶ュ伐璁惧鍚嶇О',
+                         PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE damage;
+
+-- changeset zsh:20241206016
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'down_glass_info';
+CREATE TABLE down_glass_info  (
+                                  id bigint NOT NULL AUTO_INCREMENT COMMENT '涓嬬墖鐜荤拑淇℃伅琛╥d',
+                                  work_station_id int NULL DEFAULT NULL COMMENT '宸ヤ綅id',
+                                  engineer_id varchar(20) DEFAULT NULL COMMENT '宸ョ▼id',
+                                  flow_card_id varchar(20) DEFAULT NULL COMMENT '娴佺▼鍗″彿',
+                                  layer int NULL DEFAULT NULL,
+                                  sequence int NULL DEFAULT NULL COMMENT '椤哄簭',
+                                  width double NULL DEFAULT NULL COMMENT '瀹�',
+                                  height double NULL DEFAULT NULL COMMENT '楂�',
+                                  filmsid varchar(20) DEFAULT NULL COMMENT '鑶滅郴',
+                                  thickness double NULL DEFAULT NULL COMMENT '鍘氬害',
+                                  glass_id varchar(50) DEFAULT NULL COMMENT '鐜荤拑id',
+                                  gmt_create timestamp NULL DEFAULT NULL COMMENT '鍒涘缓鏃堕棿',
+                                  combine int NULL DEFAULT NULL,
+                                  PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE down_glass_info;
+
+-- changeset zsh:20241206017
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'down_storage_cage';
+CREATE TABLE down_storage_cage  (
+                                    id int NOT NULL AUTO_INCREMENT COMMENT '涓嬬墖鍓嶇悊鐗囩琛╥d',
+                                    device_id int NULL DEFAULT NULL COMMENT '璁惧id',
+                                    slot int NULL DEFAULT NULL COMMENT '鏍呮牸鍙�',
+                                    enable_state int NULL DEFAULT NULL COMMENT '鍚敤鐘舵��',
+                                    remain_width int NULL DEFAULT NULL COMMENT '鍓╀綑',
+                                    PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE down_storage_cage;
+
+-- changeset zsh:20241206018
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM down_storage_cage;
+INSERT INTO down_storage_cage VALUES (1, 1, 1, 1, 5000);
+INSERT INTO down_storage_cage VALUES (2, 1, 2, 1, 5000);
+INSERT INTO down_storage_cage VALUES (3, 1, 3, 1, 5000);
+INSERT INTO down_storage_cage VALUES (4, 1, 4, 1, 5000);
+INSERT INTO down_storage_cage VALUES (5, 1, 5, 1, 5000);
+INSERT INTO down_storage_cage VALUES (6, 1, 6, 1, 5000);
+INSERT INTO down_storage_cage VALUES (7, 1, 7, 1, 5000);
+INSERT INTO down_storage_cage VALUES (8, 1, 8, 1, 5000);
+INSERT INTO down_storage_cage VALUES (9, 1, 9, 1, 5000);
+
+-- changeset zsh:20241206019
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'down_storage_cage_details';
+CREATE TABLE down_storage_cage_details  (
+                                            id bigint NOT NULL AUTO_INCREMENT COMMENT '涓嬬墖鍓嶇悊鐗囩鏄庣粏琛╥d',
+                                            glass_id varchar(50) DEFAULT NULL COMMENT '鐜荤拑id',
+                                            device_id int NULL DEFAULT NULL COMMENT '璁惧id',
+                                            slot int NULL DEFAULT NULL COMMENT '鏍呮牸鍙�',
+                                            sequence int NULL DEFAULT NULL COMMENT '灏忕墖鍦ㄦ牸鍐呯殑椤哄簭',
+                                            filmsid varchar(20) DEFAULT NULL COMMENT '鑶滅郴id',
+                                            flow_card_id varchar(20) DEFAULT NULL COMMENT '娴佺▼鍗″彿',
+                                            glass_type int NULL DEFAULT NULL COMMENT '鐜荤拑绫诲瀷',
+                                            width double NULL DEFAULT NULL COMMENT '瀹�',
+                                            height double NULL DEFAULT NULL COMMENT '楂�',
+                                            thickness double NULL DEFAULT NULL COMMENT '鍘氬害',
+                                            tempering_layout_id int NULL DEFAULT NULL COMMENT '閽㈠寲鐗堝浘id',
+                                            tempering_feed_sequence int NULL DEFAULT NULL COMMENT '閽㈠寲鐗堝浘鐗囧簭',
+                                            state int NULL DEFAULT NULL COMMENT '鐘舵��',
+                                            gap int NULL DEFAULT NULL COMMENT '鐜荤拑闂撮殭',
+                                            total_layer int NULL DEFAULT NULL,
+                                            layer int NULL DEFAULT NULL,
+                                            engineer_id varchar(20) DEFAULT NULL COMMENT '宸ョ▼鍙�',
+                                            PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE down_storage_cage_details;
+
+-- changeset zsh:20241206020
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'down_workstation';
+CREATE TABLE down_workstation  (
+                                   id bigint NOT NULL AUTO_INCREMENT COMMENT '涓嬬墖宸ヤ綅琛╥d',
+                                   workstation_id int NULL DEFAULT NULL COMMENT '宸ヤ綅id',
+                                   total_quantity int NULL DEFAULT NULL COMMENT '鎬绘暟閲�',
+                                   racks_number int NULL DEFAULT 0 COMMENT '宸茶惤鏋舵暟閲�',
+                                   other_number int NULL DEFAULT 0 COMMENT '鍏朵粬澶勭悊鐜荤拑鏁伴噺',
+                                   flow_card_id varchar(20) DEFAULT NULL COMMENT '娴佺▼鍗″彿',
+                                   layer int NULL DEFAULT NULL COMMENT '灞傛暟',
+                                   device_id int NULL DEFAULT NULL COMMENT '璁惧id',
+                                   enable_state int NULL DEFAULT NULL COMMENT '鍚敤鐘舵��',
+                                   work_state int NULL DEFAULT NULL COMMENT '宸ヤ綔鐘舵��',
+                                   PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB ;
+-- rollback DROP TABLE down_workstation;
+
+-- changeset zsh:20241206021
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM down_workstation;
+INSERT INTO down_workstation VALUES (1, 1, 0, 0, 0, '', NULL, 2, 1, 1);
+INSERT INTO down_workstation VALUES (2, 2, 0, 0, 0, '', NULL, 2, 1, 1);
+INSERT INTO down_workstation VALUES (3, 3, 0, 0, 0, '', NULL, 2, 1, 1);
+INSERT INTO down_workstation VALUES (4, 4, 0, 0, 0, '', NULL, 2, 1, 1);
+INSERT INTO down_workstation VALUES (5, 5, 0, 0, 0, '', NULL, 2, 1, 1);
+INSERT INTO down_workstation VALUES (6, 6, 0, 0, 0, '', NULL, 2, 1, 1);
+
+
+-- changeset zsh:20241206022
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'edg_glass_task_queue_info';
+CREATE TABLE edg_glass_task_queue_info  (
+                                            glass_id varchar(20) DEFAULT NULL COMMENT '纾ㄨ竟鍓嶇幓鐠僫d',
+                                            width int NULL DEFAULT NULL COMMENT '瀹�',
+                                            height int NULL DEFAULT NULL COMMENT '楂�',
+                                            thickness int NULL DEFAULT NULL COMMENT '鍘�',
+                                            state int NULL DEFAULT NULL COMMENT '鐘舵��',
+                                            line int NULL DEFAULT NULL COMMENT '绾胯矾',
+                                            create_time timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+                                            update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿'
+) ENGINE = InnoDB ;
+-- rollback DROP TABLE edg_glass_task_queue_info;
+
+-- changeset zsh:20241206023
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'edg_glass_task_queue_info';
+CREATE TABLE edg_storage_cage  (
+                                   id int NOT NULL COMMENT '纾ㄨ竟鍓嶇悊鐗囩琛╥d',
+                                   device_id int NULL DEFAULT NULL COMMENT '璁惧id',
+                                   slot int NULL DEFAULT NULL COMMENT '鏍呮牸鍙�',
+                                   enable_state int NULL DEFAULT NULL COMMENT '鍚敤鐘舵��',
+                                   remain_width int NULL DEFAULT NULL COMMENT '鍓╀綑',
+                                   PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB ;
+-- rollback DROP TABLE edg_glass_task_queue_info;
+
+-- changeset zsh:20241206024
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM edg_storage_cage;
+INSERT INTO edg_storage_cage VALUES (1, 1, 1, 1, 2500);
+INSERT INTO edg_storage_cage VALUES (2, 1, 2, 1, 2500);
+INSERT INTO edg_storage_cage VALUES (3, 1, 3, 1, 2500);
+INSERT INTO edg_storage_cage VALUES (4, 1, 4, 1, 2500);
+INSERT INTO edg_storage_cage VALUES (5, 1, 5, 1, 2500);
+INSERT INTO edg_storage_cage VALUES (6, 1, 6, 1, 2500);
+INSERT INTO edg_storage_cage VALUES (7, 1, 7, 1, 2500);
+INSERT INTO edg_storage_cage VALUES (8, 1, 8, 1, 2500);
+INSERT INTO edg_storage_cage VALUES (9, 1, 9, 1, 2500);
+INSERT INTO edg_storage_cage VALUES (10, 2, 1, 1, 2500);
+INSERT INTO edg_storage_cage VALUES (11, 2, 2, 1, 2500);
+INSERT INTO edg_storage_cage VALUES (12, 2, 3, 1, 2500);
+INSERT INTO edg_storage_cage VALUES (13, 2, 4, 1, 2500);
+INSERT INTO edg_storage_cage VALUES (14, 2, 5, 1, 2500);
+INSERT INTO edg_storage_cage VALUES (15, 2, 6, 1, 2500);
+INSERT INTO edg_storage_cage VALUES (16, 2, 7, 1, 2500);
+INSERT INTO edg_storage_cage VALUES (17, 2, 8, 1, 2500);
+INSERT INTO edg_storage_cage VALUES (18, 2, 9, 1, 2500);
+
+
+-- changeset zsh:20241206025
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'edg_storage_cage_details';
+CREATE TABLE edg_storage_cage_details  (
+                                           id bigint NOT NULL AUTO_INCREMENT COMMENT '纾ㄨ竟鍓嶇悊鐗囩璇︽儏琛╥d',
+                                           device_id int NULL DEFAULT NULL COMMENT '璁惧id',
+                                           engineer_id varchar(32) DEFAULT NULL COMMENT '宸ョ▼鍙�',
+                                           slot int NULL DEFAULT NULL COMMENT '鏍呮牸鍙�',
+                                           glass_id varchar(255) DEFAULT NULL COMMENT '鐜荤拑id',
+                                           sequence int NULL DEFAULT NULL COMMENT '灏忕墖鍦ㄦ牸鍐呯殑椤哄簭',
+                                           flow_card_id varchar(20) DEFAULT NULL COMMENT '娴佺▼鍗″彿',
+                                           glass_type int NULL DEFAULT NULL COMMENT '鐜荤拑绫诲瀷',
+                                           width double NULL DEFAULT NULL COMMENT '瀹�',
+                                           height double NULL DEFAULT NULL COMMENT '楂�',
+                                           thickness double NULL DEFAULT NULL COMMENT '鍘氬害',
+                                           edg_width double NULL DEFAULT NULL COMMENT '纾ㄥ墠瀹�',
+                                           edg_height double NULL DEFAULT NULL COMMENT '纾ㄥ墠楂�',
+                                           tempering_layout_id int NULL DEFAULT NULL COMMENT '閽㈠寲鐗堝浘id',
+                                           tempering_feed_sequence int NULL DEFAULT NULL COMMENT '閽㈠寲鐗堝浘鐗囧簭',
+                                           pattern_sequence int NULL DEFAULT NULL COMMENT '鍘熺墖椤哄簭',
+                                           state int NULL DEFAULT NULL COMMENT '鐘舵��  锛堟湭璇嗗埆0 璇嗗埆鍚庢垚鍔熺姸鎬�100锛�110杩涚(杈规満 120鍑虹(杈规満 璇嗗埆锛氱牬鎹�201,鎷胯蛋200 纾ㄨ竟:鐮存崯301,鎷胯蛋300锛�',
+                                           gap int NULL DEFAULT NULL COMMENT '鐜荤拑闂撮殭',
+                                           PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE edg_storage_cage_details;
+
+
+-- changeset zsh:20241206026
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'edg_storage_device_one_task';
+CREATE TABLE edg_storage_device_one_task  (
+                                              task_running int NULL DEFAULT NULL COMMENT '浠诲姟璇锋眰 0鏃犱换鍔� 1杩涚墖 2鍑虹墖 3鐩撮��',
+                                              glass_id_in varchar(20) DEFAULT NULL COMMENT '杩涚墖鐜荤拑id',
+                                              glass_id_out varchar(20) DEFAULT NULL COMMENT '鍑虹墖鐜荤拑id',
+                                              glass_id varchar(20) DEFAULT NULL COMMENT '纾ㄨ竟鍓嶇幓鐠僫d',
+                                              current_cell int NULL DEFAULT 0 COMMENT '褰撳墠灞傚彿',
+                                              start_cell int NULL DEFAULT 0 COMMENT '灞傚彿',
+                                              end_cell int NULL DEFAULT NULL COMMENT '棰勭暀灞傚彿',
+                                              task_state int NULL DEFAULT NULL COMMENT '浠诲姟鐘舵�� 0榛樿绌轰换鍔� 1鎵ц涓� 2缁撴潫浠诲姟',
+                                              task_type int NULL DEFAULT NULL COMMENT '浠诲姟绫诲瀷',
+                                              create_time timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+                                              update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
+                                              in_place int NULL DEFAULT NULL COMMENT '鏄惁鍒颁綅'
+) ENGINE = InnoDB ;
+-- rollback DROP TABLE edg_storage_device_one_task;
+
+-- changeset zsh:20241206027
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM edg_storage_device_one_task;
+INSERT INTO edg_storage_device_one_task VALUES (0, NULL, NULL, '', 1, 0, NULL, 2, NULL, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 0);
+
+-- changeset zsh:20241206028
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'edg_storage_device_task_history';
+CREATE TABLE edg_storage_device_task_history  (
+                                                  id bigint NOT NULL AUTO_INCREMENT COMMENT '宸ョ▼琛╥d',
+                                                  glass_id_in varchar(20) DEFAULT NULL COMMENT '杩涚墖鐜荤拑id',
+                                                  glass_id_out varchar(20) DEFAULT NULL COMMENT '鍑虹墖鐜荤拑id',
+                                                  current_cell int NULL DEFAULT 0 COMMENT '褰撳墠灞傚彿',
+                                                  start_cell int NULL DEFAULT 0 COMMENT '灞傚彿',
+                                                  end_cell int NULL DEFAULT NULL COMMENT '棰勭暀灞傚彿',
+                                                  task_state int NULL DEFAULT NULL COMMENT '浠诲姟鐘舵�� 0榛樿绌轰换鍔� 1鎵ц涓� 2缁撴潫浠诲姟',
+                                                  task_type int NULL DEFAULT NULL COMMENT '浠诲姟绫诲瀷',
+                                                  create_time timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+                                                  update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
+                                                  device_id int NULL DEFAULT NULL COMMENT '璁惧id',
+                                                  PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE edg_storage_device_task_history;
+
+-- changeset zsh:20241206029
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'edg_storage_device_two_task';
+CREATE TABLE edg_storage_device_two_task  (
+                                              task_running int NULL DEFAULT NULL COMMENT '浠诲姟璇锋眰 0鏃犱换鍔� 1杩涚墖 2鍑虹墖 3鐩撮��',
+                                              glass_id_in varchar(20) DEFAULT NULL COMMENT '杩涚墖鐜荤拑id',
+                                              glass_id_out varchar(20) DEFAULT NULL COMMENT '鍑虹墖鐜荤拑id',
+                                              glass_id varchar(20) DEFAULT NULL COMMENT '纾ㄨ竟鍓嶇幓鐠僫d',
+                                              current_cell int NULL DEFAULT 0 COMMENT '褰撳墠灞傚彿',
+                                              start_cell int NULL DEFAULT 0 COMMENT '灞傚彿',
+                                              end_cell int NULL DEFAULT NULL COMMENT '棰勭暀灞傚彿',
+                                              task_state int NULL DEFAULT NULL COMMENT '浠诲姟鐘舵�� 0榛樿绌轰换鍔� 1鎵ц涓� 2缁撴潫浠诲姟',
+                                              task_type int NULL DEFAULT NULL COMMENT '浠诲姟绫诲瀷',
+                                              create_time timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+                                              update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
+                                              in_place int NULL DEFAULT NULL COMMENT '鏄惁鍒颁綅'
+) ENGINE = InnoDB ;
+-- rollback DROP TABLE edg_storage_device_two_task;
+
+-- changeset zsh:20241206030
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM edg_storage_device_two_task;
+INSERT INTO edg_storage_device_two_task VALUES (0, NULL, NULL, '', 1, 0, NULL, 2, NULL, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 0);
+
+-- changeset zsh:20241206031
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'engineering';
+CREATE TABLE engineering  (
+                              id bigint NOT NULL AUTO_INCREMENT COMMENT '宸ョ▼琛╥d',
+                              engineer_id varchar(20) DEFAULT NULL COMMENT '宸ョ▼鍙�',
+                              engineer_name varchar(255) DEFAULT NULL COMMENT '宸ョ▼鍚嶇О',
+                              avg_availability varchar(20) DEFAULT NULL COMMENT '骞冲潎鍒╃敤鐜�',
+                              valid_availability varchar(20) DEFAULT NULL COMMENT '鏈夋晥鍒╃敤鐜�',
+                              last_availability varchar(20) DEFAULT NULL COMMENT '灏剧墖鍒╃敤鐜�',
+                              state int NULL DEFAULT NULL COMMENT '鐘舵��',
+                              glass_total int NULL DEFAULT NULL COMMENT '灏忕墖鎬绘暟',
+                              glass_total_area double NULL DEFAULT NULL COMMENT '灏忕墖鎬婚潰绉�',
+                              plan_pattern_total int NULL DEFAULT NULL COMMENT '璁″垝鍘熺墖鎬绘暟',
+                              plan_pattern_total_area double NULL DEFAULT NULL COMMENT '璁″垝鍘熺墖鎬婚潰绉�',
+                              reality_pattern_total int NULL DEFAULT NULL COMMENT '瀹為檯鍘熺墖鎬绘暟',
+                              reality_pattern_total_area double NULL DEFAULT NULL COMMENT '瀹為檯鍘熺墖鎬婚潰绉�',
+                              films_id varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '鑶滅郴id',
+                              notes varchar(255) DEFAULT NULL COMMENT '澶囨敞',
+                              film_remove int NULL DEFAULT NULL,
+                              station_cell int NULL DEFAULT NULL,
+                              PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE engineering;
+
+-- changeset zsh:20241206032
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'glass_films';
+CREATE TABLE glass_films  (
+                              id int NOT NULL AUTO_INCREMENT COMMENT '鑶滅郴琛╥d',
+                              films_id int NULL DEFAULT NULL COMMENT '鑶滅郴id',
+                              films_name varchar(255) DEFAULT NULL COMMENT '鑶滅郴',
+                              PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE glass_films;
+
+-- changeset zsh:20241206033
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'glass_info';
+CREATE TABLE glass_info  (
+                             id bigint NOT NULL AUTO_INCREMENT COMMENT '鐜荤拑淇℃伅琛╥d',
+                             flow_card_id varchar(50) DEFAULT NULL COMMENT '娴佺▼鍗�',
+                             glass_type int NULL DEFAULT NULL COMMENT '娴佺▼鍗$幓鐠冪被鍨�',
+                             width double NULL DEFAULT NULL COMMENT '瀹�',
+                             height double NULL DEFAULT NULL COMMENT '楂�',
+                             thickness double NULL DEFAULT NULL COMMENT '鍘氬害',
+                             filmsid varchar(20) DEFAULT NULL COMMENT '鑶滅郴',
+                             total_layer int NULL DEFAULT NULL COMMENT '鎬诲眰鏁�',
+                             layer int NULL DEFAULT NULL COMMENT '灞傛暟',
+                             edg_width double NULL DEFAULT NULL COMMENT '纾ㄥ墠瀹�',
+                             edg_height double NULL DEFAULT NULL COMMENT '纾ㄥ墠楂�',
+                             ismultiple int NULL DEFAULT NULL COMMENT '鏄惁閰嶇墖',
+                             max_width double NULL DEFAULT NULL COMMENT '閰嶇墖鏈�澶у',
+                             max_height double NULL DEFAULT NULL COMMENT '閰嶇墖鏈�澶ч珮',
+                             ishorizontal int NULL DEFAULT NULL COMMENT '閽㈠寲鏄惁鎺ュ彈妯斁',
+                             pattern_sequence int NULL DEFAULT NULL COMMENT '鍘熺墖椤哄簭',
+                             tempering_layout_id int NULL DEFAULT NULL COMMENT '閽㈠寲鐗堝浘id',
+                             tempering_feed_sequence int NULL DEFAULT NULL COMMENT '閽㈠寲鐗堝浘鐗囧簭',
+                             x_coordinate int NULL DEFAULT NULL COMMENT 'x鍧愭爣',
+                             y_coordinate int NULL DEFAULT NULL COMMENT 'y鍧愭爣',
+                             angle int NULL DEFAULT NULL COMMENT '鏃嬭浆瑙掑害锛堥�嗘椂閽堬級',
+                             engineer_id varchar(20) DEFAULT NULL COMMENT '宸ョ▼鍙�',
+                             rule_id int NULL DEFAULT NULL COMMENT '鐢熶骇瑙勫垯id',
+                             glass_id varchar(50) DEFAULT NULL COMMENT '鐜荤拑ID',
+                             combine int NULL DEFAULT NULL,
+                             PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE glass_info;
+
+-- changeset zsh:20241206034
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'hollow_big_storage_cage';
+CREATE TABLE hollow_big_storage_cage  (
+                                          id bigint NOT NULL  COMMENT '澶х悊鐗囩琛╥d',
+                                          device_id int NULL DEFAULT NULL COMMENT '璁惧id',
+                                          slot int NULL DEFAULT NULL COMMENT '鏍呮牸鍙�',
+                                          min_thickness int NULL DEFAULT NULL COMMENT '鏈�灏忓帤搴�',
+                                          max_thickness int NULL DEFAULT NULL COMMENT '鏈�澶у帤搴�',
+                                          enable_state int NULL DEFAULT NULL COMMENT '鍚敤鐘舵��',
+                                          remain_width int NULL DEFAULT NULL COMMENT '鍓╀綑瀹藉害',
+                                          PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB;
+-- rollback DROP TABLE hollow_big_storage_cage;
+
+
+-- changeset zsh:20241206035
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM hollow_big_storage_cage;
+INSERT INTO hollow_big_storage_cage VALUES (1, 1, 1, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (2, 1, 2, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (3, 1, 3, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (4, 1, 4, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (5, 1, 5, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (6, 1, 6, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (7, 1, 7, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (8, 1, 8, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (9, 1, 9, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (10, 1, 10, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (11, 1, 11, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (12, 1, 12, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (13, 1, 13, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (14, 1, 14, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (15, 1, 15, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (16, 1, 16, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (17, 1, 17, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (18, 1, 18, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (19, 1, 19, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (20, 1, 20, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (21, 1, 21, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (22, 1, 22, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (23, 1, 23, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (24, 1, 24, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (25, 1, 25, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (26, 1, 26, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (27, 1, 27, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (28, 1, 28, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (29, 1, 29, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (30, 1, 30, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (31, 1, 31, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (32, 1, 32, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (33, 1, 33, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (34, 1, 34, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (35, 1, 35, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (36, 1, 36, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (37, 1, 37, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (38, 1, 38, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (39, 1, 39, 4, 6, 0, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (40, 1, 40, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (41, 2, 41, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (42, 2, 42, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (43, 2, 43, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (44, 2, 44, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (45, 2, 45, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (46, 2, 46, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (47, 2, 47, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (48, 2, 48, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (49, 2, 49, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (50, 2, 50, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (51, 2, 51, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (52, 2, 52, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (53, 2, 53, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (54, 2, 54, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (55, 2, 55, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (56, 2, 56, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (57, 2, 57, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (58, 2, 58, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (59, 2, 59, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (60, 2, 60, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (61, 2, 61, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (62, 2, 62, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (63, 2, 63, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (64, 2, 64, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (65, 2, 65, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (66, 2, 66, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (67, 2, 67, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (68, 2, 68, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (69, 2, 69, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (70, 2, 70, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (71, 2, 71, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (72, 2, 72, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (73, 2, 73, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (74, 2, 74, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (75, 2, 75, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (76, 2, 76, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (77, 2, 77, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (78, 2, 78, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (79, 2, 79, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (80, 2, 80, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (81, 2, 81, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (82, 2, 82, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (83, 2, 83, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (84, 2, 84, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (85, 2, 85, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (86, 2, 86, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (87, 2, 87, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (88, 2, 88, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (89, 2, 89, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (90, 2, 90, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (91, 2, 91, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (92, 2, 92, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (93, 2, 93, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (94, 2, 94, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (95, 2, 95, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (96, 3, 96, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (97, 3, 97, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (98, 3, 98, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (99, 3, 99, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (100, 3, 100, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (101, 3, 101, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (102, 3, 102, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (103, 3, 103, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (104, 3, 104, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (105, 3, 105, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (106, 3, 106, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (107, 3, 107, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (108, 3, 108, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (109, 3, 109, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (110, 3, 110, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (111, 3, 111, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (112, 3, 112, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (113, 3, 113, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (114, 3, 114, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (115, 3, 115, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (116, 3, 116, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (117, 3, 117, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (118, 3, 118, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (119, 3, 119, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (120, 3, 120, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (121, 3, 121, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (122, 3, 122, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (123, 3, 123, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (124, 3, 124, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (125, 3, 125, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (126, 3, 126, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (127, 3, 127, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (128, 3, 128, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (129, 3, 129, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (130, 3, 130, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (131, 3, 131, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (132, 3, 132, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (133, 3, 133, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (134, 3, 134, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (135, 3, 135, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (136, 3, 136, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (137, 3, 137, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (138, 3, 138, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (139, 3, 139, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (140, 3, 140, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (141, 3, 141, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (142, 3, 142, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (143, 3, 143, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (144, 3, 144, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (145, 3, 145, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (146, 3, 146, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (147, 3, 147, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (148, 3, 148, 4, 6, 0, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (149, 3, 149, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (150, 3, 150, 4, 6, 0, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (151, 4, 151, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (152, 4, 152, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (153, 4, 153, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (154, 4, 154, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (155, 4, 155, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (156, 4, 156, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (157, 4, 157, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (158, 4, 158, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (159, 4, 159, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (160, 4, 160, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (161, 4, 161, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (162, 4, 162, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (163, 4, 163, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (164, 4, 164, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (165, 4, 165, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (166, 4, 166, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (167, 4, 167, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (168, 4, 168, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (169, 4, 169, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (170, 4, 170, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (171, 4, 171, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (172, 4, 172, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (173, 4, 173, 4, 6, 0, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (174, 4, 174, 4, 6, 0, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (175, 4, 175, 4, 6, 0, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (176, 4, 176, 4, 6, 0, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (177, 4, 177, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (178, 4, 178, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (179, 4, 179, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (180, 4, 180, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (181, 4, 181, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (182, 4, 182, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (183, 4, 183, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (184, 4, 184, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (185, 4, 185, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (186, 4, 186, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (187, 4, 187, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (188, 4, 188, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (189, 4, 189, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (190, 4, 190, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (191, 4, 191, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (192, 4, 192, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (193, 4, 193, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (194, 4, 194, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (195, 4, 195, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (196, 4, 196, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (197, 4, 197, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (198, 4, 198, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (199, 4, 199, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (200, 4, 200, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (201, 4, 201, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (202, 4, 202, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (203, 4, 203, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (204, 4, 204, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (205, 4, 205, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (206, 5, 206, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (207, 5, 207, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (208, 5, 208, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (209, 5, 209, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (210, 5, 210, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (211, 5, 211, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (212, 5, 212, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (213, 5, 213, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (214, 5, 214, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (215, 5, 215, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (216, 5, 216, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (217, 5, 217, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (218, 5, 218, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (219, 5, 219, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (220, 5, 220, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (221, 5, 221, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (222, 5, 222, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (223, 5, 223, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (224, 5, 224, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (225, 5, 225, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (226, 5, 226, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (227, 5, 227, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (228, 5, 228, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (229, 5, 229, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (230, 5, 230, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (231, 5, 231, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (232, 5, 232, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (233, 5, 233, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (234, 5, 234, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (235, 5, 235, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (236, 5, 236, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (237, 5, 237, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (238, 5, 238, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (239, 5, 239, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (240, 5, 240, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (241, 5, 241, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (242, 5, 242, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (243, 5, 243, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (244, 5, 244, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (245, 5, 245, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (246, 5, 246, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (247, 5, 247, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (248, 5, 248, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (249, 5, 249, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (250, 5, 250, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (251, 5, 251, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (252, 5, 252, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (253, 5, 253, 4, 6, 1, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (254, 5, 254, 4, 6, 0, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (255, 5, 255, 4, 6, 0, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (256, 5, 256, 4, 6, 0, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (257, 5, 257, 4, 6, 0, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (258, 5, 258, 4, 6, 0, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (259, 5, 259, 4, 6, 0, 6200);
+INSERT INTO hollow_big_storage_cage VALUES (260, 5, 260, 4, 6, 0, 6200);
+
+
+-- changeset zsh:20241206036
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'hollow_big_storage_cage_details';
+CREATE TABLE hollow_big_storage_cage_details  (
+                                                  id bigint NOT NULL AUTO_INCREMENT COMMENT '澶х悊鐗囩璇︽儏琛╥d',
+                                                  device_id int NULL DEFAULT NULL COMMENT '璁惧id',
+                                                  virtual_slot int NULL DEFAULT NULL COMMENT '铏氭嫙鏍呮牸鍙�',
+                                                  slot int NULL DEFAULT NULL COMMENT '鏍呮牸鍙�',
+                                                  glass_id varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '鐜荤拑id',
+                                                  sequence int NULL DEFAULT NULL COMMENT '灏忕墖鍦ㄦ牸鍐呯殑椤哄簭',
+                                                  flow_card_id varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '娴佺▼鍗″彿',
+                                                  glass_type int NULL DEFAULT NULL COMMENT '鐜荤拑绫诲瀷',
+                                                  width double NULL DEFAULT NULL COMMENT '瀹�',
+                                                  height double NULL DEFAULT NULL COMMENT '楂�',
+                                                  thickness double NULL DEFAULT NULL COMMENT '鍘氬害',
+                                                  tempering_layout_id int NULL DEFAULT NULL COMMENT '閽㈠寲鐗堝浘id',
+                                                  tempering_feed_sequence int NULL DEFAULT NULL COMMENT '閽㈠寲鐗堝浘鐗囧簭',
+                                                  state int NULL DEFAULT NULL COMMENT '鐘舵��',
+                                                  gap int NULL DEFAULT NULL COMMENT '鐜荤拑闂撮殭',
+                                                  engineer_id varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+                                                  total_layer int NULL DEFAULT NULL COMMENT '鎬诲眰鍙�',
+                                                  layer int NULL DEFAULT NULL COMMENT '灞傚彿',
+                                                  create_time timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+                                                  update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
+                                                  hollow_sequence int NULL DEFAULT NULL COMMENT '涓┖椤哄簭',
+                                                  films_id varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '鑶滅郴',
+                                                  is_pair int NULL DEFAULT NULL,
+                                                  PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE hollow_big_storage_cage_details;
+
+-- changeset zsh:20241206037
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'hollow_big_storage_cage_history_task';
+CREATE TABLE hollow_big_storage_cage_history_task  (
+                                                       id bigint NOT NULL AUTO_INCREMENT,
+                                                       glass_id varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '鐜荤拑id',
+                                                       start_slot int NULL DEFAULT 0 COMMENT '璧峰鏍煎瓙',
+                                                       target_slot int NULL DEFAULT 0 COMMENT '鐩爣鏍煎瓙',
+                                                       task_state int NULL DEFAULT NULL COMMENT '浠诲姟鐘舵�� ',
+                                                       glass_count int NULL DEFAULT NULL COMMENT '鐜荤拑鏁伴噺',
+                                                       task_type int NULL DEFAULT NULL COMMENT '浠诲姟绫诲瀷',
+                                                       create_time timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+                                                       update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
+                                                       PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE hollow_big_storage_cage_history_task;
+
+-- changeset zsh:20241206038
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'hollow_glass_out_relation_info';
+CREATE TABLE hollow_glass_out_relation_info  (
+                                                 id bigint NOT NULL AUTO_INCREMENT COMMENT '涓┖鐜荤拑鍏崇郴琛╥d',
+                                                 flow_card_id varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '娴佺▼鍗�',
+                                                 total_layer int NULL DEFAULT NULL COMMENT '鎬诲眰鏁�',
+                                                 cell int NULL DEFAULT NULL COMMENT '璺嚎',
+                                                 state int NULL DEFAULT NULL COMMENT '鐘舵��0鏂板 1鎵ц涓� 2鏆傚仠 3缁撴潫',
+                                                 total_pair_quantity int NULL DEFAULT NULL,
+                                                 create_time timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+                                                 update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
+                                                 pair_quantity int NULL DEFAULT NULL COMMENT '宸查厤瀵规暟閲�',
+                                                 is_force int NULL DEFAULT NULL COMMENT '鏄惁寮哄埗',
+                                                 PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE hollow_glass_out_relation_info;
+
+-- changeset zsh:20241206039
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'hollow_glass_queue_info';
+CREATE TABLE hollow_glass_queue_info  (
+                                          id bigint NOT NULL AUTO_INCREMENT COMMENT '澶х悊鐗囩璇︽儏琛╥d',
+                                          device_id int NULL DEFAULT NULL COMMENT '璁惧id',
+                                          virtual_slot int NULL DEFAULT NULL COMMENT '铏氭嫙鏍呮牸鍙�',
+                                          slot int NULL DEFAULT NULL COMMENT '鏍呮牸鍙�',
+                                          glass_id varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '鐜荤拑id',
+                                          sequence int NULL DEFAULT NULL COMMENT '灏忕墖鍦ㄦ牸鍐呯殑椤哄簭',
+                                          flow_card_id varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '娴佺▼鍗″彿',
+                                          glass_type int NULL DEFAULT NULL COMMENT '鐜荤拑绫诲瀷',
+                                          width double NULL DEFAULT NULL COMMENT '瀹�',
+                                          height double NULL DEFAULT NULL COMMENT '楂�',
+                                          thickness double NULL DEFAULT NULL COMMENT '鍘氬害',
+                                          tempering_layout_id int NULL DEFAULT NULL COMMENT '閽㈠寲鐗堝浘id',
+                                          tempering_feed_sequence int NULL DEFAULT NULL COMMENT '閽㈠寲鐗堝浘鐗囧簭',
+                                          state int NULL DEFAULT NULL COMMENT '鐘舵��',
+                                          gap int NULL DEFAULT NULL COMMENT '鐜荤拑闂撮殭',
+                                          engineer_id varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+                                          total_layer int NULL DEFAULT NULL COMMENT '鎬诲眰鍙�',
+                                          layer int NULL DEFAULT NULL COMMENT '灞傚彿',
+                                          create_time timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+                                          update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
+                                          hollow_sequence int NULL DEFAULT NULL COMMENT '涓┖椤哄簭',
+                                          cell int NULL DEFAULT NULL COMMENT '绾胯矾',
+                                          is_pair int NULL DEFAULT NULL COMMENT '鏄惁閰嶅',
+                                          PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE hollow_glass_queue_info;
+
+
+-- changeset zsh:20241206040
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'hollow_glass_relation_info';
+CREATE TABLE hollow_glass_relation_info  (
+                                             id bigint NOT NULL AUTO_INCREMENT COMMENT '涓┖鐜荤拑鍏崇郴琛╥d',
+                                             engineer_id varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '宸ョ▼鍙穒nit',
+                                             tempering_layout_id int NULL DEFAULT NULL COMMENT '鐐夊彿',
+                                             tempering_feed_sequence int NULL DEFAULT NULL COMMENT '鐗堝浘搴忓彿',
+                                             glass_id varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '鐜荤拑ID',
+                                             flow_card_id varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '娴佺▼鍗nit',
+                                             width double NULL DEFAULT NULL COMMENT '瀹絠nit',
+                                             height double NULL DEFAULT NULL COMMENT '楂榠nit',
+                                             total_layer int NULL DEFAULT NULL COMMENT '鎬诲眰鏁癷nit',
+                                             layer int NULL DEFAULT NULL COMMENT '灞傛暟init',
+                                             virtual_slot int NULL DEFAULT NULL COMMENT '缁勫彿init',
+                                             slot_sequence int NULL DEFAULT NULL COMMENT '缁勫簭init',
+                                             hollow_sequence int NULL DEFAULT NULL COMMENT '鍑虹墖鎬诲簭init',
+                                             order_sort int NULL DEFAULT NULL COMMENT '璁㈠崟搴忓彿init',
+                                             films_id varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '鑶滅郴',
+                                             thickness double NULL DEFAULT NULL COMMENT '鍘氬害',
+                                             PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE hollow_glass_relation_info;
+
+-- changeset zsh:20241206041
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'load_glass_device_one_task';
+CREATE TABLE load_glass_device_one_task  (
+                                             task_running int NULL DEFAULT 0 COMMENT '浠诲姟璇锋眰 0鏃犱换鍔� 1涓婄墖',
+                                             raw_glass_width int NULL DEFAULT 0 COMMENT '鍘熺墖瀹�',
+                                             raw_glass_height int NULL DEFAULT 0 COMMENT '鍘熺墖楂�',
+                                             slot int NULL DEFAULT 0 COMMENT '涓婄墖浣嶇紪鍙�',
+                                             task_state int NULL DEFAULT NULL COMMENT '浠诲姟鐘舵�� 0榛樿绌轰换鍔� 1鎵ц涓� 2缁撴潫浠诲姟',
+                                             create_time timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+                                             update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
+                                             total_count int NULL DEFAULT 0 COMMENT '涓婄墖鎬绘暟閲�',
+                                             finish_count int NULL DEFAULT 0 COMMENT '宸插畬鎴愭暟閲�',
+                                             damage_count int NULL DEFAULT 0 COMMENT '鐮存崯鏁伴噺',
+                                             inkage_state int NULL DEFAULT NULL COMMENT '鑱旀満鐘舵��'
+) ENGINE = InnoDB ;
+-- rollback DROP TABLE load_glass_device_one_task;
+
+-- changeset zsh:20241206042
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM load_glass_device_one_task;
+INSERT INTO load_glass_device_one_task VALUES (0, 0, 0, 0, 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 0, 0, 0, 0);
+
+-- changeset zsh:20241206043
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'load_glass_device_task_history';
+CREATE TABLE load_glass_device_task_history  (
+                                                 id bigint NOT NULL AUTO_INCREMENT COMMENT '鍘嗗彶浠诲姟id',
+                                                 task_running int NULL DEFAULT 0 COMMENT '浠诲姟璇锋眰 0鏃犱换鍔� 1涓婄墖',
+                                                 raw_glass_width int NULL DEFAULT 0 COMMENT '鍘熺墖瀹�',
+                                                 raw_glass_height int NULL DEFAULT 0 COMMENT '鍘熺墖楂�',
+                                                 station int NULL DEFAULT 0 COMMENT '涓婄墖璁惧缂栧彿',
+                                                 slot int NULL DEFAULT 0 COMMENT '涓婄墖浣嶇紪鍙�',
+                                                 task_state int NULL DEFAULT NULL COMMENT '浠诲姟鐘舵�� 0榛樿绌轰换鍔� 1鎵ц涓� 2缁撴潫浠诲姟',
+                                                 create_time timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+                                                 update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
+                                                 total_count int NULL DEFAULT 0 COMMENT '涓婄墖鎬绘暟閲�',
+                                                 finish_count int NULL DEFAULT 0 COMMENT '宸插畬鎴愭暟閲�',
+                                                 damage_count int NULL DEFAULT 0 COMMENT '鐮存崯鏁伴噺',
+                                                 PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE load_glass_device_task_history;
+
+
+-- changeset zsh:20241206044
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'load_glass_device_two_task';
+CREATE TABLE load_glass_device_two_task  (
+                                             task_running int NULL DEFAULT 0 COMMENT '浠诲姟璇锋眰 0鏃犱换鍔� 1涓婄墖',
+                                             raw_glass_width int NULL DEFAULT 0 COMMENT '鍘熺墖瀹�',
+                                             raw_glass_height int NULL DEFAULT 0 COMMENT '鍘熺墖楂�',
+                                             slot int NULL DEFAULT 0 COMMENT '涓婄墖浣嶇紪鍙�',
+                                             inkage_state int NULL DEFAULT NULL COMMENT '鑱旀満鐘舵��',
+                                             task_state int NULL DEFAULT NULL COMMENT '浠诲姟鐘舵�� 0榛樿绌轰换鍔� 1鎵ц涓� 2缁撴潫浠诲姟',
+                                             create_time timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+                                             update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
+                                             total_count int NULL DEFAULT 0 COMMENT '涓婄墖鎬绘暟閲�',
+                                             finish_count int NULL DEFAULT 0 COMMENT '宸插畬鎴愭暟閲�',
+                                             damage_count int NULL DEFAULT 0 COMMENT '鐮存崯鏁伴噺'
+) ENGINE = InnoDB ;
+-- rollback DROP TABLE load_glass_device_two_task;
+
+-- changeset zsh:20241206045
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM load_glass_device_two_task;
+INSERT INTO load_glass_device_two_task VALUES (0, 0, 0, 0, 0, 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 0, 9, 0);
+
+
+-- changeset zsh:20241206046
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'raw_glass_storage_details';
+CREATE TABLE raw_glass_storage_details  (
+                                            id bigint NOT NULL AUTO_INCREMENT,
+                                            device_id int NULL DEFAULT NULL COMMENT '璁惧id',
+                                            slot int NULL DEFAULT NULL COMMENT '鏍煎瓙id',
+                                            pattern_width double(8, 2) NULL DEFAULT NULL COMMENT '鍘熺墖瀹�',
+                                            pattern_height double(8, 2) NULL DEFAULT NULL COMMENT '鍘熺墖楂�',
+                                            pattern_thickness double(8, 2) NULL DEFAULT NULL COMMENT '鍘熺墖鍘氬害',
+                                            films_id varchar(64) DEFAULT NULL COMMENT '鑶滅郴',
+                                            create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+                                            update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
+                                            remain_quantity int NULL DEFAULT NULL COMMENT '鍓╀綑鏁伴噺',
+                                            state int NULL DEFAULT NULL COMMENT '鐘舵��',
+                                            shelf int NULL DEFAULT NULL COMMENT '鏋跺瓙鍙�',
+                                            PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE raw_glass_storage_details;
+
+-- changeset zsh:20241206047
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'raw_glass_storage_station';
+CREATE TABLE raw_glass_storage_station  (
+                                            id bigint NOT NULL,
+                                            device_id int NULL DEFAULT NULL COMMENT '璁惧id',
+                                            slot int NULL DEFAULT NULL COMMENT '鏍呮牸鍙�',
+                                            enable_state int NULL DEFAULT NULL COMMENT '鍚敤鏍囪',
+                                            shelf int NULL DEFAULT NULL COMMENT '鏋跺瓙鍙�'
+) ENGINE = InnoDB ;
+-- rollback DROP TABLE raw_glass_storage_station;
+
+-- changeset zsh:20241206048
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM raw_glass_storage_station;
+INSERT INTO raw_glass_storage_station VALUES (1, 1, 1, 1, 1);
+INSERT INTO raw_glass_storage_station VALUES (2, 1, 2, 1, 2);
+INSERT INTO raw_glass_storage_station VALUES (3, 1, 3, 1, 3);
+INSERT INTO raw_glass_storage_station VALUES (4, 2, 4, 1, 4);
+INSERT INTO raw_glass_storage_station VALUES (5, 2, 5, 1, 5);
+INSERT INTO raw_glass_storage_station VALUES (6, 2, 6, 1, 6);
+INSERT INTO raw_glass_storage_station VALUES (7, 2, 7, 1, 7);
+INSERT INTO raw_glass_storage_station VALUES (8, 2, 8, 1, 8);
+INSERT INTO raw_glass_storage_station VALUES (9, 2, 9, 1, 9);
+INSERT INTO raw_glass_storage_station VALUES (10, 2, 10, 1, 10);
+INSERT INTO raw_glass_storage_station VALUES (11, 2, 11, 1, 11);
+INSERT INTO raw_glass_storage_station VALUES (12, 3, 12, 1, 12);
+INSERT INTO raw_glass_storage_station VALUES (13, 3, 13, 1, 13);
+INSERT INTO raw_glass_storage_station VALUES (14, 3, 14, 1, 14);
+INSERT INTO raw_glass_storage_station VALUES (15, 3, 15, 1, 15);
+INSERT INTO raw_glass_storage_station VALUES (16, 3, 16, 1, 16);
+INSERT INTO raw_glass_storage_station VALUES (17, 3, 17, 1, 17);
+INSERT INTO raw_glass_storage_station VALUES (18, 3, 18, 1, 18);
+INSERT INTO raw_glass_storage_station VALUES (19, 3, 19, 1, 19);
+INSERT INTO raw_glass_storage_station VALUES (20, 3, 20, 1, 20);
+INSERT INTO raw_glass_storage_station VALUES (21, 3, 21, 1, 21);
+INSERT INTO raw_glass_storage_station VALUES (22, 3, 22, 1, 22);
+INSERT INTO raw_glass_storage_station VALUES (23, 3, 23, 1, 23);
+INSERT INTO raw_glass_storage_station VALUES (24, 3, 24, 1, 24);
+INSERT INTO raw_glass_storage_station VALUES (25, 3, 25, 1, 25);
+INSERT INTO raw_glass_storage_station VALUES (26, 4, 98, 1, NULL);
+INSERT INTO raw_glass_storage_station VALUES (27, 4, 99, 1, NULL);
+INSERT INTO raw_glass_storage_station VALUES (28, 5, 101, 1, NULL);
+INSERT INTO raw_glass_storage_station VALUES (29, 5, 102, 1, NULL);
+INSERT INTO raw_glass_storage_station VALUES (30, 6, 103, 1, NULL);
+INSERT INTO raw_glass_storage_station VALUES (31, 6, 104, 1, NULL);
+
+-- changeset zsh:20241206049
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'raw_glass_storage_task';
+CREATE TABLE raw_glass_storage_task  (
+                                         id bigint NOT NULL AUTO_INCREMENT,
+                                         start_slot int NULL DEFAULT NULL COMMENT '璧峰鏍煎瓙',
+                                         end_slot int NULL DEFAULT NULL COMMENT '鐩爣鏍煎瓙',
+                                         pattern_quantity int NULL DEFAULT NULL COMMENT '鍘熺墖鏁伴噺',
+                                         task_type int NULL DEFAULT NULL COMMENT '浠诲姟绫诲瀷',
+                                         task_state int NULL DEFAULT NULL COMMENT '浠诲姟鐘舵��',
+                                         shelf int NULL DEFAULT NULL COMMENT '鏋跺瓙鍙�',
+                                         create_time timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+                                         update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
+                                         PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE raw_glass_storage_task;
+
+-- changeset zsh:20241206050
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'sys_dict_data';
+CREATE TABLE sys_dict_data  (
+                                dict_id int NOT NULL AUTO_INCREMENT,
+                                dict_sort int NOT NULL,
+                                dict_label varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
+                                dict_value varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
+                                dict_type varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
+                                dict_type_value varchar(32) DEFAULT NULL,
+                                state char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '1',
+                                description varchar(32) DEFAULT NULL,
+                                create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+                                deleted char(1) DEFAULT '0',
+                                PRIMARY KEY (dict_id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE sys_dict_data;
+
+-- changeset zsh:20241206051
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM sys_dict_data;
+INSERT INTO sys_dict_data VALUES (1, 1, '鐧界幓', 'clearGlass', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (2, 2, '瓒呯櫧', 'ultraClear', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (3, 3, '鏉ユ枡鐧界幓', 'incomingClearGlass', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (4, 4, '娆у窞鑼�', 'europeTeaColor', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (5, 5, '姘存櫠鐏�', 'cristalGrey', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (6, 6, '鐏扮幓', 'grayGlass', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (7, 7, '鐏伴晙鑶�', 'grayCoating', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (8, 8, '纾ㄧ爞', 'frosted', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (9, 9, '绂忕壒钃�', 'fordBlue', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (10, 10, '绂忕壒钃濋晙鑶�', 'fordBlueCoating', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (11, 11, '钃濇槦鐏�', 'blueAstralGrey', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (12, 12, '钃濈幓', 'blueGlass', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (13, 13, '瓒呯櫧闀胯櫣', 'ultraClearChanghong', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (14, 14, '閲戞櫠鐏�', 'jinjinGrey', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (15, 15, '閲戞櫠鐏拌尪', 'jinjinTeaGrey', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (16, 16, '闀�鑶�', 'coatingFilm', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (17, 17, '闀胯櫣', 'clearGlassChanghong', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (18, 18, '闃冲厜鑶�', 'solorControl', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (19, 19, '楂樺弽搴曢��', 'arGlass', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (20, 20, '楂樼櫧', 'arClear', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (21, 21, '榛戠幓', 'blackGlass', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (22, 22, '鐜夌爞', 'emery', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (23, 23, '瓒呯櫧纾ㄧ爞', 'ultraClearFrosted', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (24, 24, '閲戣尪鐜�', 'goldenTea', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (25, 25, '钃濈伆闀�鑶�', 'blueGraycoatingFilm', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (26, 26, '鍗曢」閫忚', 'onePoint', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (27, 27, '瓒呯櫧闀�鑶�', 'ultraClearCoatingFilm', '鐧界幓', '0', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (28, 1, 'F缁�', 'fGreen', '鍗曢摱', '1', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (29, 2, 'F缁縧owe', 'fGreenLowe', '鍗曢摱', '1', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (30, 3, 'F缁块晙鑶�', 'fGreenCoating', '鍗曢摱', '1', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (31, 4, 'Low-e', 'lowe', '鍗曢摱', '1', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (32, 5, 'super52', 'super52', '鍗曢摱', '1', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (33, 6, '涓幓鍦ㄧ嚎', 'zgOnlineGlass', '鍗曢摱', '1', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (34, 7, '鍖楃幓60绂荤嚎lowe', 'ng60OfflineLowe', '鍗曢摱', '1', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (35, 8, '鍗楃幓鍦ㄧ嚎lowe', 'csgOnlineLowe', '鍗曢摱', '1', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (36, 9, '鍙扮幓81A', 'tg81a', '鍗曢摱', '1', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (37, 10, '鍙扮幓lowe70', 'tgLowe70', '鍗曢摱', '1', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (38, 11, '鍙扮幓LOWE78', 'tgLowe78', '鍗曢摱', '1', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (39, 12, '娌冲寳閲戠憺lowe80', 'hbJinruiLowe80', '鍗曢摱', '1', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (40, 13, '绂忕壒钃漧owe', 'fordBlueLowe', '鍗曢摱', '1', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (41, 14, '绂忚幈鐗笷XB60', 'flatFxb60', '鍗曢摱', '1', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (42, 15, '绂忚幈鐗筶owe60', 'flatLowe60', '鍗曢摱', '1', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (43, 16, '绂忚幈鐗筶owe70', 'flatLowe70', '鍗曢摱', '1', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (44, 17, '绂忚幈鐗筶owe80', 'flatLowe80', '鍗曢摱', '1', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (45, 18, '鑰�鐨湪绾縇OWE', 'sypOnlineLowe', '鍗曢摱', '1', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (46, 19, '瓒呯櫧Lowe', 'ultraClearLowe', '鍗曢摱', '1', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (47, 1, '鍙岄摱lowe', 'doubleSilverLowe', '鍙岄摱', '2', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_data VALUES (48, 2, '瓒呯櫧鍙岄摱Lowe', 'ultraDoubleSilverLowe', '鍙岄摱', '2', '1', '1', '2024-09-18 15:18:49', '0');
+
+-- changeset zsh:20241206052
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'sys_dict_type';
+CREATE TABLE sys_dict_type  (
+                                dict_id int NOT NULL AUTO_INCREMENT,
+                                dict_name varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
+                                dict_type varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
+                                state char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '1',
+                                description varchar(32) DEFAULT NULL,
+                                create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+                                deleted char(1) DEFAULT '0',
+                                PRIMARY KEY (dict_id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE sys_dict_type;
+
+
+-- changeset zsh:20241206053
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM sys_dict_type;
+INSERT INTO sys_dict_type VALUES (1, '鐧界幓', 'clearGlass', '1', '0', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_type VALUES (2, '鍗曢摱', 'silver', '1', '1', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_type VALUES (3, '鍙岄摱', 'doubleSilver', '1', '2', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_type VALUES (4, '涓夐摱', 'thirdSilver', '1', '3', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_type VALUES (5, '瓒呯櫧', 'ultraClear', '1', '4', '2024-09-18 15:18:49', '0');
+INSERT INTO sys_dict_type VALUES (6, '鐑弽灏�', 'heatReflect', '1', '5', '2024-09-18 15:18:49', '0');
+
+-- changeset zsh:20241206054
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'sys_error';
+CREATE TABLE sys_error  (
+                            id int NOT NULL AUTO_INCREMENT,
+                            func varchar(255) DEFAULT NULL COMMENT '鏂规硶鍚�',
+                            error text COMMENT '閿欒淇℃伅',
+                            create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+                            PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE sys_error;
+
+-- changeset zsh:20241206055
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'sys_menu';
+CREATE TABLE sys_menu  (
+                           id int NOT NULL AUTO_INCREMENT COMMENT '鑷id',
+                           parent_id int NULL DEFAULT NULL COMMENT '鐖秈d',
+                           menu_name varchar(255) DEFAULT NULL COMMENT '妯″潡鍚嶇О',
+                           icon varchar(255) DEFAULT NULL,
+                           url varchar(255) DEFAULT NULL COMMENT '鍦板潃',
+                           language_type varchar(10) DEFAULT NULL COMMENT '璇█绫诲瀷',
+                           status int NULL DEFAULT NULL COMMENT '鐘舵��',
+                           list_sort varchar(255) DEFAULT NULL COMMENT '鎺掑簭',
+                           create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+                           perms varchar(255) DEFAULT NULL,
+                           PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE sys_menu;
+
+-- changeset zsh:20241206056
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM sys_menu;
+INSERT INTO sys_menu VALUES (1, 0, '涓婄墖鏈�', '/', '/', '/', 1, '1', '2024-03-01 10:35:15', 'spj');
+INSERT INTO sys_menu VALUES (2, 0, '鎺扮墖/璇嗗埆', '/', '/', '/', 1, '2', '2024-03-01 10:35:08', 'bp');
+INSERT INTO sys_menu VALUES (3, 0, '鍗у紡缂撳瓨', '/', '/', '/', 1, '3', '2023-10-24 15:05:31', 'wshc');
+INSERT INTO sys_menu VALUES (4, 0, '纾ㄨ竟锛堝喎鍔犲伐锛�', '/', '/', '/', 1, '4', '2024-03-01 09:48:20', 'mb');
+INSERT INTO sys_menu VALUES (5, 0, '澶х悊鐗囩', '/', '/', '/', 1, '5', '2024-03-08 08:59:50', 'dlpl');
+INSERT INTO sys_menu VALUES (6, 0, '閽㈠寲', '/', '/', '/', 1, '6', '2024-03-13 10:26:25', 'gh');
+INSERT INTO sys_menu VALUES (7, 0, '涓嬬墖鍙�', '/', '/', '/', 1, '7', '2024-03-18 14:48:13', 'xp');
+INSERT INTO sys_menu VALUES (8, 0, '绯荤粺绠$悊', '/', '/', '/', 1, '8', '2024-03-29 08:55:35', 'xt');
+INSERT INTO sys_menu VALUES (9, 1, '涓婄墖鏈�', '/', '/Returns/returns', '/', 1, '1', '2024-03-01 10:35:15', 'spj:spj');
+INSERT INTO sys_menu VALUES (10, 2, '鎺扮墖/璇嗗埆', '/', '/identify/identify', '/', 1, '1', '2024-03-01 10:35:08', 'bp:bp');
+INSERT INTO sys_menu VALUES (11, 3, '纾ㄨ竟鍓嶅崸寮忕紦瀛�', '/', '/Caching/cachingbefore', '/', 1, '1', '2023-10-24 15:05:31', 'wshc:wshc');
+INSERT INTO sys_menu VALUES (12, 4, '1绾跨(杈�(鍐峰姞宸�)', '/', '/stockBasicData/stockBasicData', '/', 1, '1', '2024-03-01 09:48:20', 'mb:1xmb');
+INSERT INTO sys_menu VALUES (13, 5, '澶х悊鐗囩', '/', '/slicecage/slicecage', '/', 1, '1', '2024-03-08 08:59:50', 'dlpl:dlpl');
+INSERT INTO sys_menu VALUES (14, 6, '閽㈠寲鍓�', '/', '/PurchaseReturn/purchaseReturn', '/', 1, '1', '2024-03-13 10:26:25', 'gh:ghq');
+INSERT INTO sys_menu VALUES (15, 7, '涓嬬墖鍙�', '/', '/UnLoadGlass/loadmachinerack', '/', 1, '1', '2024-03-18 14:48:13', 'xp:xp1');
+INSERT INTO sys_menu VALUES (17, 8, '鐢ㄦ埛绠$悊', '/', '/user/userlist', '/', 1, '1', '2024-03-29 08:55:35', 'xt:yh');
+INSERT INTO sys_menu VALUES (18, 8, '鏉冮檺绠$悊', '/', '/user/permissions', '/', 1, '2', '2024-03-29 16:45:07', 'xt:qx');
+INSERT INTO sys_menu VALUES (19, 8, '瑙掕壊绠$悊', '/', '/user/rolelist', '/', 1, '3', '2024-03-29 16:45:07', 'xt:js');
+INSERT INTO sys_menu VALUES (20, 6, '閽㈠寲鍚�', '/', '/PurchaseReturn/purchaseStorage', '/', 1, '2', '2024-04-16 09:39:54', 'gh:ghh');
+INSERT INTO sys_menu VALUES (25, 3, '涓嬬墖鍗у紡缂撳瓨', '/', '/Caching/cachingun', '/', 1, '2', '2024-04-25 14:35:36', 'wshc:wshc1');
+INSERT INTO sys_menu VALUES (26, 4, '2绾跨(杈�(鍐峰姞宸�)', '/', '/StockBasicData/stockBasicDatatwo', '/', 1, '2', '2024-05-20 10:38:40', 'mb:2xmb');
+INSERT INTO sys_menu VALUES (27, 0, '浠撳偍涓績', '/', '/', '/', 1, '9', '2024-05-24 11:39:13', 'cczx');
+INSERT INTO sys_menu VALUES (28, 27, '鍘熺墖浠撳偍', '/', '/GlassStorage/rawfilmstorage', '/', 1, '1', '2024-05-24 11:44:21', NULL);
+INSERT INTO sys_menu VALUES (29, 10, 'xaiozhan', '/', '/', '/', 1, '1', '2024-05-27 09:41:37', NULL);
+INSERT INTO sys_menu VALUES (35, 0, '澶у睆', '/', '/', '/', 1, '1', '2024-07-03 09:46:31', NULL);
+INSERT INTO sys_menu VALUES (54, 8, 'ceshi', '/', '/', '/', 1, '4', '2024-07-03 14:09:46', NULL);
+INSERT INTO sys_menu VALUES (55, 8, 'ce', '/', '/', '/', 1, '5', '2024-07-03 14:11:33', NULL);
+INSERT INTO sys_menu VALUES (57, 0, '鍙鍖栫郴缁�', '/', '/', '/', 1, '10', '2024-07-09 16:17:57', 'dpxs');
+INSERT INTO sys_menu VALUES (59, 57, '鍙鍖栫郴缁�', NULL, '/largescreen/largescreen', NULL, NULL, '1', '2024-07-09 16:43:26', NULL);
+INSERT INTO sys_menu VALUES (60, 0, '鎶ュ伐绠$悊', '/', '/', '/', 1, '11', '2024-07-15 14:51:02', 'bggl');
+INSERT INTO sys_menu VALUES (62, 60, '鎶ュ伐绠$悊', NULL, '/ReportWork/reportWork', NULL, NULL, '1', '2024-07-15 16:18:39', NULL);
+INSERT INTO sys_menu VALUES (63, 61, '鏂欐灦绠$悊', '/', '/GlassStorage/MaterialRackManagement', '/', 1, '2', '2024-09-13 08:31:04', NULL);
+INSERT INTO sys_menu VALUES (66, 1, '涓婄墖1绾�', '/', '/Returns/upreturns', '/', 1, '2', '2024-10-10 15:17:22', NULL);
+INSERT INTO sys_menu VALUES (69, 1, '涓婄墖2绾�', NULL, '/Returns/upreturns2', NULL, 1, '3', '2024-10-31 08:30:43', NULL);
+
+
+-- changeset zsh:20241206057
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'sys_role';
+CREATE TABLE sys_role  (
+                           id bigint NOT NULL AUTO_INCREMENT,
+                           name varchar(128) DEFAULT NULL,
+                           role_key varchar(100) DEFAULT NULL COMMENT '瑙掕壊鏉冮檺瀛楃涓�',
+                           status char(1) DEFAULT '0' COMMENT '瑙掕壊鐘舵�侊紙0姝e父 1鍋滅敤锛�',
+                           del_flag int NULL DEFAULT 0 COMMENT '鍒犻櫎鏍囧織',
+                           remark varchar(500) DEFAULT NULL COMMENT '澶囨敞',
+                           PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 COMMENT = '瑙掕壊琛�';
+-- rollback DROP TABLE sys_role;
+
+-- changeset zsh:20241206058
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM sys_role;
+INSERT INTO sys_role VALUES (1, '娴嬭瘯', 'test', '0', 0, NULL);
+INSERT INTO sys_role VALUES (2, '绠$悊鍛�', 'admin', '0', 0, NULL);
+
+-- changeset zsh:20241206059
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'sys_role_menu';
+CREATE TABLE sys_role_menu  (
+                                role_id bigint NOT NULL AUTO_INCREMENT COMMENT '瑙掕壊ID',
+                                menu_id bigint NOT NULL DEFAULT 0 COMMENT '鑿滃崟id',
+                                PRIMARY KEY (role_id, menu_id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE sys_role_menu;
+
+-- changeset zsh:20241206060
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM sys_role_menu;
+INSERT INTO sys_role_menu VALUES (1, 1);
+INSERT INTO sys_role_menu VALUES (1, 2);
+INSERT INTO sys_role_menu VALUES (1, 3);
+INSERT INTO sys_role_menu VALUES (1, 4);
+INSERT INTO sys_role_menu VALUES (1, 5);
+INSERT INTO sys_role_menu VALUES (1, 6);
+INSERT INTO sys_role_menu VALUES (1, 7);
+INSERT INTO sys_role_menu VALUES (1, 8);
+INSERT INTO sys_role_menu VALUES (1, 9);
+INSERT INTO sys_role_menu VALUES (1, 10);
+INSERT INTO sys_role_menu VALUES (1, 11);
+INSERT INTO sys_role_menu VALUES (1, 12);
+INSERT INTO sys_role_menu VALUES (1, 13);
+INSERT INTO sys_role_menu VALUES (1, 14);
+INSERT INTO sys_role_menu VALUES (1, 15);
+INSERT INTO sys_role_menu VALUES (1, 17);
+INSERT INTO sys_role_menu VALUES (1, 18);
+INSERT INTO sys_role_menu VALUES (1, 19);
+INSERT INTO sys_role_menu VALUES (1, 20);
+INSERT INTO sys_role_menu VALUES (1, 21);
+INSERT INTO sys_role_menu VALUES (1, 25);
+INSERT INTO sys_role_menu VALUES (1, 26);
+INSERT INTO sys_role_menu VALUES (1, 27);
+INSERT INTO sys_role_menu VALUES (1, 28);
+INSERT INTO sys_role_menu VALUES (1, 57);
+INSERT INTO sys_role_menu VALUES (1, 59);
+INSERT INTO sys_role_menu VALUES (1, 60);
+INSERT INTO sys_role_menu VALUES (1, 61);
+INSERT INTO sys_role_menu VALUES (1, 62);
+INSERT INTO sys_role_menu VALUES (1, 63);
+INSERT INTO sys_role_menu VALUES (1, 65);
+INSERT INTO sys_role_menu VALUES (1, 66);
+INSERT INTO sys_role_menu VALUES (1, 69);
+
+-- changeset zsh:20241206061
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'sys_user';
+CREATE TABLE sys_user  (
+                           id bigint NOT NULL AUTO_INCREMENT COMMENT '涓婚敭',
+                           user_name varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'NULL' COMMENT '鐢ㄦ埛鍚�',
+                           nick_name varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'NULL' COMMENT '鏄电О',
+                           password varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'NULL' COMMENT '瀵嗙爜',
+                           status char(1) DEFAULT '0' COMMENT '璐﹀彿鐘舵�侊紙0姝e父 1鍋滅敤锛�',
+                           avatar varchar(128) DEFAULT NULL COMMENT '澶村儚',
+                           user_type char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '1' COMMENT '鐢ㄦ埛绫诲瀷锛�0绠$悊鍛橈紝1鏅�氱敤鎴凤級',
+                           del_flag int NULL DEFAULT 0 COMMENT '鍒犻櫎鏍囧織',
+                           PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 COMMENT = '鐢ㄦ埛琛�';
+-- rollback DROP TABLE sys_user;
+
+
+-- changeset zsh:20241206062
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM sys_user;
+INSERT INTO sys_user VALUES (1, 'admin', 'admin', '$2a$10$mFKyOBNO8hdNafPR18hjeuiDvG2zpIS6IgIRiWHk1b.IjIWNkj.l2', '0', NULL, '1', 0);
+
+-- changeset zsh:20241206063
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'sys_user_role';
+CREATE TABLE sys_user_role  (
+                                user_id bigint NOT NULL AUTO_INCREMENT COMMENT '鐢ㄦ埛id',
+                                role_id bigint NOT NULL DEFAULT 0 COMMENT '瑙掕壊id',
+                                PRIMARY KEY (user_id, role_id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE sys_user_role;
+
+-- changeset zsh:20241206064
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'task_cache';
+CREATE TABLE task_cache  (
+                             ID varchar(255) NOT NULL COMMENT 'ID缂栧彿',
+                             start_cell varchar(255) DEFAULT NULL COMMENT '璧峰',
+                             end_cell varchar(255) DEFAULT NULL COMMENT '鐩爣',
+                             task_type varchar(255) DEFAULT NULL COMMENT '浠诲姟绫诲瀷 1:杩�   2锛氬嚭',
+                             task_status varchar(255) DEFAULT NULL COMMENT '浠诲姟鐘舵�� 0 鏈紑濮�  1宸插畬鎴�',
+                             PRIMARY KEY (ID) USING BTREE
+) ENGINE = InnoDB ;
+-- rollback DROP TABLE task_cache;
+
+-- changeset zsh:20241206065
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'tempering_record';
+CREATE TABLE tempering_record  (
+                                   engineer_id varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '宸ョ▼id',
+                                   tempering_layout_id int NOT NULL COMMENT '閽㈠寲鐗堝浘',
+                                   glass_type int NULL DEFAULT NULL COMMENT '鐜荤拑鏉愯川(鑶滅郴0.鐧界幓1.鍗曢摱2.鍙岄摱3涓夐摱 4.瓒呯櫧5.鐑弽灏�)',
+                                   tempering_type int NULL DEFAULT NULL COMMENT '閽㈠寲绫诲瀷锛�1.鍏ㄩ挗:2.鍗婇挗锛�',
+                                   thickness double NULL DEFAULT NULL COMMENT '鍘氬害锛堝帤搴�*10)',
+                                   loading_rate double NULL DEFAULT NULL COMMENT '瑁呰浇鐜�',
+                                   area_difference double NULL DEFAULT NULL COMMENT '闈㈢Н宸�',
+                                   production_time varchar(64) DEFAULT NULL COMMENT '鐢熶骇鑰楁椂',
+                                   heat_energy varchar(64) DEFAULT NULL COMMENT '鍔犵儹鑳借��',
+                                   cool_energy varchar(64) DEFAULT NULL COMMENT '鍐峰嵈鑳借��',
+                                   state int NULL DEFAULT NULL COMMENT '鏄惁瀹屾垚(plc鑾峰彇闈�1锛氬弬鏁颁笉瀛樺湪锛�2銆佸尮閰嶅畬鎴愶紱3銆佸尮閰嶈秴鏃讹級',
+                                   PRIMARY KEY (tempering_layout_id, engineer_id) USING BTREE
+) ENGINE = InnoDB ;
+-- rollback DROP TABLE tempering_record;
+
+-- changeset zsh:20241206066
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'up_patten_usage';
+CREATE TABLE up_patten_usage  (
+                                  id bigint NOT NULL AUTO_INCREMENT COMMENT '鍘熺墖浣跨敤鎯呭喌琛╥d',
+                                  engineering_id varchar(50) DEFAULT NULL COMMENT '宸ョ▼鍙�',
+                                  films_id varchar(50) DEFAULT NULL COMMENT '鑶滅郴id',
+                                  width double NULL DEFAULT NULL COMMENT '瀹�',
+                                  height double NULL DEFAULT NULL COMMENT '楂�',
+                                  thickness double NULL DEFAULT NULL COMMENT '鍘氬害',
+                                  layout_sequence int NULL DEFAULT NULL COMMENT '鍘熺墖鐗堝浘鐗囧簭',
+                                  state int NULL DEFAULT NULL COMMENT '鐘舵��',
+                                  PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 ;
+-- rollback DROP TABLE up_patten_usage;
+
+-- changeset zsh:20241206067
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'up_workstation';
+CREATE TABLE up_workstation  (
+                                 id int NOT NULL COMMENT '涓婄墖宸ヤ綅琛╥d',
+                                 workstation_id int NULL DEFAULT NULL COMMENT '宸ヤ綅鍙�',
+                                 device_id int NULL DEFAULT NULL COMMENT '璁惧id',
+                                 enable_state int NULL DEFAULT NULL COMMENT '鍚敤鐘舵��',
+                                 work_state int NULL DEFAULT NULL COMMENT '宸ヤ綔鐘舵��',
+                                 pattern_width double NULL DEFAULT NULL COMMENT '鍘熺墖瀹�',
+                                 pattern_height double(255, 0) NULL DEFAULT NULL COMMENT '鍘熺墖楂�',
+                                 pattern_thickness double(255, 0) NULL DEFAULT NULL COMMENT '鍘熺墖鍘氬害',
+                                 films_id varchar(20) DEFAULT NULL COMMENT '鑶滅郴',
+                                 number int NULL DEFAULT NULL COMMENT '鏁伴噺',
+                                 PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB;
+-- rollback DROP TABLE up_workstation;
+
+-- changeset zsh:20241206068
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM up_workstation;
+INSERT INTO up_workstation VALUES (1, 1, 0, 1, 0, 0, 0, 0, '', 0);
+INSERT INTO up_workstation VALUES (2, 2, 0, 1, 0, 0, 0, 0, '', 0);
+INSERT INTO up_workstation VALUES (3, 3, 0, 1, 0, 0, 0, 0, '', 0);
+INSERT INTO up_workstation VALUES (4, 4, 0, 1, 0, 0, 0, 0, '', 0);
+
+
+-- changeset zsh:20241206069
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'work_assignment';
+CREATE TABLE work_assignment  (
+                                  id int NOT NULL AUTO_INCREMENT,
+                                  line int NULL DEFAULT NULL COMMENT '绾胯矾',
+                                  work_processes varchar(255) DEFAULT NULL COMMENT '宸ュ簭',
+                                  teams_groups_name varchar(255) DEFAULT NULL COMMENT '鐝粍鍚嶇О',
+                                  device_name varchar(255) DEFAULT NULL COMMENT '璁惧鍚嶇О',
+                                  PRIMARY KEY (id) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 4 ;
+-- rollback DROP TABLE work_assignment;
+
+
+-- changeset zsh:20241206070
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM work_assignment;
+INSERT INTO work_assignment VALUES (1, 40001, '閽㈠寲', '1鐝�', '閽㈠寲鐐�');
+INSERT INTO work_assignment VALUES (2, 2002, '鍐峰姞宸�', 'test', '鍗ц浆绔�');
+INSERT INTO work_assignment VALUES (3, 3001, '鍐峰姞宸�', 'test', '澶х悊鐗囧嚭鐗囪溅');
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/mesRedisChange.sql b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/mesRedisChange.sql
new file mode 100644
index 0000000..d64efee
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/mesRedisChange.sql
@@ -0,0 +1,63 @@
+-- liquibase formatted sql
+
+-- changeset zt:20250407001
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'sys_config' ;
+CREATE TABLE `sys_config`  (
+                               `id` int NOT NULL AUTO_INCREMENT,
+                               `parent_id` int NULL DEFAULT NULL COMMENT '鐖堕厤缃甶d',
+                               `config_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '閰嶇疆鍚�',
+                               `config_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '閰嶇疆浠g爜',
+                               `config_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '閰嶇疆鍊�',
+                               `is_enable` int NULL DEFAULT NULL COMMENT '鏄惁鍚敤',
+                               `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+                               `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
+                               PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 61 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
+-- rollback DROP TABLE big_storage_cage;
+
+
+-- changeset zt:20250407001
+-- preconditions onFail:CONTINUE onError:CONTINUE
+-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM sys_config;
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (1, 1, '閽㈠寲鐐夋暟闃堝��', 'cache_threshold', '11', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:29');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (2, 1, '纾ㄨ竟鍙傛暟鎹㈢畻鐜�', 'cache_ratio', '10', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:26');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (3, 1, '鍗х悊鏈�澶ч暱杈�', 'cache_cacheWidth', '3600', 0, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (4, 1, '鍗х悊鏈�澶х煭杈�', 'cache_cacheHeight', '3000', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (5, 1, '纾ㄨ竟浜岀嚎鏈�澶ч暱杈�', 'cache_max_firstLength', '3500', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (6, 1, '纾ㄨ竟浜岀嚎鏈�澶х煭杈�', 'cache_max_secondLength', '2500', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (7, 1, '纾ㄨ竟涓�绾挎渶澶ч暱杈�', 'cache_min_one_firstLength', '460', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (8, 1, '纾ㄨ竟涓�绾挎渶澶х煭杈�', 'cache_min_one,secondLength', '390', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (9, 1, '纾ㄨ竟浜岀嚎鏈�澶ч暱杈�', 'cache_min_two_firstLength', '300', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (10, 1, '纾ㄨ竟浜岀嚎鏈�澶х煭杈�', 'cache_min_two_secondLength', '300', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (11, 1, '鍗х悊鐜荤拑闂撮殭', 'cache_glassGap', '2500', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (12, 1, '鍗х悊鏍煎瓙瀹藉害', 'cache_cellLength', '2500', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (13, 1, '鎺掑簭鏂瑰紡', 'cache_sequence_order', 'FALSE', 1, '2025-04-07 09:20:04', '2025-04-08 13:43:18');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (14, 2, '鎺掑簭鏂瑰紡', 'cache_sequence_order', 'TRUE', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (15, 2, '涓�鐐夌幓鐠冨崰鐢ㄦ牸瀛愭暟', 'vertical_mincount', '30', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (16, 2, '澶ц溅瀹藉害', 'vertical_carWidth', '6200', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (17, 2, '鏍煎瓙瀹藉害', 'vertical_slotWidth', '6200', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (18, 2, '杩涚墖杞︽渶澶х幓鐠冩暟', 'vertical_inCarSize', '5', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (19, 2, '鍑虹墖杞︽渶澶х幓鐠冩暟', 'vertical_outCarSize', '6', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (20, 2, '鐜荤拑闂撮殭', 'vertical_glassGap', '250', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (21, 2, '閽㈠寲鐐夐暱搴�', 'vertical_xMaxSize', '2800', 0, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (22, 2, '鏍煎瓙鏈�澶ч珮搴�', 'vertical_slotMaxHeight', '2500', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (23, 2, '鏍煎瓙鏈�澶у帤搴�', 'vertical_slotMaxthickness', '12', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (24, 2, '閽㈠嚭鐩爣浣嶇疆', 'vertical_temperingOutTargetPosition', '930', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (25, 2, '浜哄伐涓嬬墖鐩爣浣嶇疆', 'vertical_artificialOutTargetPosition', '931', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (26, 3, '鎺掑簭鏂瑰紡', 'hollow_sequence,order', 'TRUE', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (27, 3, '涓�鐐夌幓鐠冨崰鐢ㄦ牸瀛愭暟', 'hollow_mincount', '30', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (28, 3, '澶ц溅瀹藉害', 'hollow_carWidth', '6200', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (29, 3, '鏍煎瓙瀹藉害', 'hollow_slotWidth', '6200', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (30, 3, '杩涚墖杞︽渶澶х幓鐠冩暟', 'hollow_inCarSize', '5', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (31, 3, '鍑虹墖杞︽渶澶х幓鐠冩暟', 'hollow_outCarSize', '6', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (32, 3, '鐜荤拑闂撮殭', 'hollow_glassGap', '250', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (33, 3, '閽㈠寲鐐夐暱搴�', 'hollow_xMaxSize', '2800', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (34, 3, '閽㈠嚭鐩爣浣嶇疆', 'hollow_temperingOutTargetPosition', '930', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (35, 3, '浜哄伐涓嬬墖鐩爣浣嶇疆', 'hollow_artificialOutTargetPosition', '931', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (36, 3, '鏍煎瓙鏈�澶ч珮搴�', 'hollow_slotMaxHeight', '2500', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (37, 3, '鏍煎瓙鏈�澶у帤搴�', 'hollow_slotMaxthickness', '12', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (38, 4, '閽㈠寲鐐夐暱搴�', 'tempering_width', '2800', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+INSERT INTO `north_glass_mes`.`sys_config` (`id`, `parent_id`, `config_name`, `config_code`, `config_value`, `is_enable`, `create_time`, `update_time`) VALUES (39, 4, '閽㈠寲鐐夊搴�', 'tempering_height', '5000', 1, '2025-04-07 09:20:04', '2025-04-08 13:42:00');
+
+
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/json/PlcTemperingGlass.json b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/json/PlcTemperingGlass.json
new file mode 100644
index 0000000..3abe9a6
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/json/PlcTemperingGlass.json
@@ -0,0 +1,132 @@
+{
+    "plcAddressBegin": "DB88.0",
+    "plcAddressLenght": "58",
+    "dataType": "word",
+    "parameteInfor": [
+        {
+            "codeId": "confirmationWord",
+            "addressIndex": "0",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperingLayoutId",
+            "addressIndex": "2",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "filmsid",
+            "addressIndex": "4",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperingType",
+            "addressIndex": "6",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "thickness",
+            "addressIndex": "8",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "loadingRate",
+            "addressIndex": "10",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "areaDifference",
+            "addressIndex": "12",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "state",
+            "addressIndex": "22",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "deviceState",
+            "addressIndex": "24",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "resultState",
+            "addressIndex": "26",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "loadSpeed",
+            "addressIndex": "28",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "downSpeed",
+            "addressIndex": "30",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "load1",
+            "addressIndex": "32",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "heat1",
+            "addressIndex": "34",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "heat2",
+            "addressIndex": "36",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "cool1",
+            "addressIndex": "38",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "cool2",
+            "addressIndex": "40",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "downId",
+            "addressIndex": "42",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "productionTime",
+            "addressIndex": "44",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "heatEnergy",
+            "addressIndex": "46",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "coolEnergy",
+            "addressIndex": "48",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperatureUp1",
+            "addressIndex": "50",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperatureDown1",
+            "addressIndex": "52",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperatureUp2",
+            "addressIndex": "54",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperatureDown2",
+            "addressIndex": "56",
+            "addressLenght": "2"
+        }
+    ]
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/logback-spring.xml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..63e9d44
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/logback-spring.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="10 seconds">
+    <!-- logger涓婁笅鏂囧悕绉帮紙鏍规嵁涓氬姟淇敼锛� -->
+    <contextName>temperingGlass</contextName>
+
+    <!-- 瀹氫箟浜嗕竴涓悕涓簊erverName鐨勫睘鎬э紝瀹冪殑鍊兼潵鑷簬logging.file.name锛屽鏋滄病鏈夋壘鍒拌灞炴�ч粯璁や负MyServerName锛堟牴鎹笟鍔′慨鏀癸級 -->
+    <springProperty name="serverName" source="logging.file.name" defaultValue="temperingGlass"/>
+    <springProperty name="logging.path" source="logging.file.path" defaultValue="././logs/"/>
+
+    <!-- 褰╄壊鏃ュ織渚濊禆鐨勬覆鏌撶被 -->
+    <!-- 瀹氫箟浜嗕竴涓悕涓篶lr鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.ColorConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗘棩蹇楄緭鍑轰腑鐨勬枃鏈潃鑹诧紝浠ヤ究鏇村鏄撳湴鍖哄垎涓嶅悓鐨勬棩蹇楃骇鍒垨鍏朵粬淇℃伅 -->
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
+    <!-- WhitespaceThrowableProxyConverter鍜孍xtendedWhitespaceThrowableProxyConverter閮芥槸鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず鐨勭被銆傚畠浠箣闂寸殑鍖哄埆鍦ㄤ簬锛孍xtendedWhitespaceThrowableProxyConverter鍦ㄨ緭鍑哄紓甯镐俊鎭椂浼氬寘鍚洿澶氱殑璇︾粏淇℃伅锛屼緥濡傚紓甯哥殑绫诲悕銆佹柟娉曞悕鍜岃鍙风瓑 -->
+    <!-- 瀹氫箟浜嗕竴涓悕涓簑ex鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <conversionRule conversionWord="wex"
+                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
+    <!-- 瀹氫箟浜嗕竴涓悕涓簑Ex鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <conversionRule conversionWord="wEx"
+                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
+
+    <!-- 褰╄壊鏃ュ織鏍煎紡 -->
+    <!-- value鍊兼槸鏃ュ織杈撳嚭妯℃澘锛� :-鏄睘鎬у悕鍜屽叾榛樿鍊间箣闂寸殑鍒嗛殧绗︼紝浣滅敤涓�:鐩稿悓 -->
+    <!-- 瀹氫箟鏃ュ織杈撳嚭鏍煎紡鐨勮浆鎹㈣鍒欙紝%d{yyyy-MM-dd HH:mm:ss.SSS}琛ㄧず鏃ユ湡鍜屾椂闂达紝%clr琛ㄧず灏嗚緭鍑烘枃鏈潃鑹诧紝{faint}琛ㄧず浣跨敤娣¤壊 -->
+    <!-- %5p琛ㄧず鏃ュ織绾у埆杈撳嚭鍙冲榻愶紝宸﹁竟浠ョ┖鏍煎~鍏� -->
+    <!-- ${PID:- }琛ㄧず杩涚▼ID锛�%clr琛ㄧず灏嗚緭鍑烘枃鏈潃鑹诧紝{magenta}琛ㄧず浣跨敤娲嬬孩鑹� -->
+    <!-- -琛ㄧず涓�涓垎闅旂 -->
+    <!-- %t锛氭樉绀轰骇鐢熻鏃ュ織鐨勭嚎绋嬪悕锛�%15锛氳嫢瀛楃闀垮害灏忎簬15锛屽垯宸﹁竟鐢ㄧ┖鏍煎~鍏咃紱%.15锛氳嫢瀛楃闀垮害瓒呰繃15锛屾埅鍘诲浣欏瓧绗� -->
+    <!-- %-40锛氳嫢瀛楃闀垮害灏忎簬40锛屽垯鍙宠竟鐢ㄧ┖鏍煎~鍏咃紱%.40锛氳嫢瀛楃闀垮害瓒呰繃40锛屾埅鍘诲浣欏瓧绗︼紱logger{39}瀵瑰簲鐨勬槸鈥渓ogging.WARNING鈥濈骇鍒�傚叿浣撴潵璇达紝Python鐨刲ogging妯″潡瀹氫箟浜嗕互涓嬪嚑涓骇鍒紙浠庝綆鍒伴珮锛夛細NOTSET銆丏EBUG銆両NFO銆乄ARNING銆丒RROR銆丆RITICAL銆傚洜姝わ紝logger{39}琛ㄧず鐨勬槸WARNING绾у埆锛屽嵆鏃ュ織璁板綍鍣ㄤ細璁板綍鎵�鏈塛ARNING绾у埆鍙婁互涓婄殑鏃ュ織淇℃伅 -->
+    <!-- %m琛ㄧず鏃ュ織娑堟伅锛�%n琛ㄧず鎹㈣绗︼紱${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}琛ㄧず寮傚父淇℃伅銆傚鏋滄棩蹇楄緭鍑轰腑鍖呭惈寮傚父淇℃伅锛岃繖涓鍒欏皢浼氬皢鍏惰浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <property name="CONSOLE_LOG_PATTERN"
+              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+
+    <!--1. 杈撳嚭鍒版帶鍒跺彴-->
+    <!-- 瀹氫箟鎺у埗鍙版棩蹇楄緭鍑虹殑appender锛宑lass="ch.qos.logback.core.ConsoleAppender"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凜onsoleAppender绫绘潵杈撳嚭鏃ュ織鍒版帶鍒跺彴 -->
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <!--姝ゆ棩蹇梐ppender鏄负寮�鍙戜娇鐢紝鍙厤缃渶搴曠骇鍒紝鎺у埗鍙拌緭鍑虹殑鏃ュ織绾у埆鏄ぇ浜庢垨绛変簬姝ょ骇鍒殑鏃ュ織淇℃伅-->
+        <!-- 瀹氫箟鏃ュ織杈撳嚭绾у埆鐨勮繃婊ゅ櫒锛宑lass="ch.qos.logback.classic.filter.ThresholdFilter"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凾hresholdFilter绫绘潵杩囨护鏃ュ織杈撳嚭锛�<level>debug</level>琛ㄧず鍙緭鍑篸ebug绾у埆鍙婁互涓婄殑鏃ュ織 -->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>debug</level>
+        </filter>
+        <encoder>
+            <!-- ${CONSOLE_LOG_PATTERN}琛ㄧず鎺у埗鍙版棩蹇楄緭鍑烘牸寮忥紝UTF-8琛ㄧず缂栫爜鏍煎紡 -->
+            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
+            <!-- 璁剧疆瀛楃闆� -->
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+    <!--2. 杈撳嚭鍒版枃妗�-->
+    <!-- 2.1 level涓� DEBUG 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <!-- 瀹氫箟鏂囦欢鏃ュ織杈撳嚭鐨刟ppender锛宑lass="ch.qos.logback.core.rolling.RollingFileAppender"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凴ollingFileAppender绫绘潵杈撳嚭鏃ュ織鍒版枃浠� -->
+    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_debug.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <!-- 瀹氫箟鏃ュ織鏂囦欢婊氬姩绛栫暐鐨勬爣绛撅紝class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凾imeBasedRollingPolicy绫绘潵瀹氫箟鏃ュ織鏂囦欢鐨勬粴鍔ㄧ瓥鐣� -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 鏃ュ織褰掓。 -->
+            <!-- 瀹氫箟鏃ュ織鏂囦欢鍚嶇殑妯″紡銆傚湪杩欎釜妯″紡涓紝${logging.path}琛ㄧず鏃ュ織鏂囦欢鐨勮矾寰勶紝%d{yyyy-MM-dd}琛ㄧず鏃ユ湡鏍煎紡锛�%i琛ㄧず鏂囦欢绱㈠紩 -->
+            <fileNamePattern>${logging.path}/${serverName}/web-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <!-- 瀹氫箟鏃ュ織鏂囦欢婊氬姩绛栫暐鐨勬爣绛撅紝class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凷izeAndTimeBasedFNATP绫绘潵瀹氫箟鏃ュ織鏂囦欢鐨勬粴鍔ㄧ瓥鐣ワ紝<maxFileSize>100MB</maxFileSize>琛ㄧず鏃ュ織鏂囦欢鐨勬渶澶уぇ灏忎负100MB銆傝繖涓粴鍔ㄧ瓥鐣ラ�氬父鐢ㄤ簬鎸夌収鏃堕棿鍜屾枃浠跺ぇ灏忔粴鍔ㄦ棩蹇楁枃浠讹紝浠ヤ究鏇村ソ鍦扮鐞嗘棩蹇楁枃浠剁殑澶у皬鍜屾暟閲� -->
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍debug绾у埆鐨� -->
+        <!-- 瀹氫箟鏃ュ織杈撳嚭绾у埆鐨勮繃婊ゅ櫒銆傚湪杩欎釜杩囨护鍣ㄤ腑锛宑lass="ch.qos.logback.classic.filter.LevelFilter"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凩evelFilter绫绘潵杩囨护鏃ュ織杈撳嚭锛�<level>debug</level>琛ㄧず鍙緭鍑篸ebug绾у埆鍙婁互涓婄殑鏃ュ織 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>debug</level>
+            <!-- <onMatch>ACCEPT</onMatch>琛ㄧず濡傛灉鏃ュ織浜嬩欢涓庤繃婊ゅ櫒鍖归厤锛屽垯鎺ュ彈璇ヤ簨浠讹紝<onMismatch>DENY</onMismatch>琛ㄧず濡傛灉鏃ュ織浜嬩欢涓庤繃婊ゅ櫒涓嶅尮閰嶏紝鍒欐嫆缁濊浜嬩欢 -->
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.2 level涓� INFO 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_info.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 澶╁ぉ鏃ュ織褰掓。璺緞浠ュ強鏍煎紡 -->
+            <fileNamePattern>${logging.path}/${serverName}/web-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍info绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>info</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.3 level涓� WARN 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_warn.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 姝ゅ璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logging.path}/${serverName}/web-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍warn绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>warn</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.4 level涓� ERROR 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_error.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 姝ゅ璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logging.path}/${serverName}/web-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍ERROR绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!--     4.1 寮�鍙戠幆澧�:鎵撳嵃鎺у埗鍙�-->
+    <!-- 鐢ㄤ簬鍦⊿pring Boot搴旂敤绋嬪簭涓厤缃棩蹇楄褰曠殑鏍囩銆傚湪杩欎釜鏍囩涓紝name="dev"琛ㄧず杩欎釜閰嶇疆鏂囦欢鍙湪dev鐜涓敓鏁堬紝<logger name="com.myClass.controller" level="debug"/>琛ㄧず涓篶om.myClass.controller锛堟牴鎹笟鍔′慨鏀癸級杩欎釜鍖呬笅鐨勭被閰嶇疆鏃ュ織杈撳嚭绾у埆涓篸ebug -->
+    <!--    <springProfile name="dev">-->
+    <!--        <logger name="com.myClass.controller" level="debug"/>-->
+    <!--    </springProfile>-->
+    <!-- 鐢ㄤ簬閰嶇疆鏃ュ織杈撳嚭鐨勬爣绛俱�傚湪杩欎釜鏍囩涓紝level="info"琛ㄧず鏃ュ織杈撳嚭绾у埆涓篿nfo锛�<appender-ref ref="CONSOLE"/>銆�<appender-ref ref="DEBUG_FILE"/>銆�<appender-ref ref="INFO_FILE"/>銆�<appender-ref ref="WARN_FILE"/>銆�<appender-ref ref="ERROR_FILE"/>琛ㄧず灏嗘棩蹇楄緭鍑哄埌涓嶅悓鐨刟ppender涓紝鍒嗗埆涓烘帶鍒跺彴銆乨ebug鏂囦欢銆乮nfo鏂囦欢銆亀arn鏂囦欢鍜宔rror鏂囦欢 -->
+    <root level="info">
+        <appender-ref ref="CONSOLE"/>
+        <appender-ref ref="INFO_FILE"/>
+        <appender-ref ref="WARN_FILE"/>
+        <appender-ref ref="ERROR_FILE"/>
+    </root>
+</configuration>
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/test/java/com/mes/TemperingApplicationTest.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/test/java/com/mes/TemperingApplicationTest.java
new file mode 100644
index 0000000..c567a90
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/test/java/com/mes/TemperingApplicationTest.java
@@ -0,0 +1,58 @@
+package com.mes;
+
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/3/27 16:37
+ * @Description:
+ */
+@Slf4j
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = TemperingGlassModuleApplication.class)
+public class TemperingApplicationTest {
+
+    @Autowired
+    private TemperingGlassInfoService temperingAgoService;
+
+
+    @Test
+    public void testFindPa() {
+        List<TemperingGlassInfo> layoutId = temperingAgoService.selectLayoutId();
+        if(!layoutId.isEmpty()) {
+            List<TemperingGlassInfo> intoGlass = temperingAgoService.selectIntoGlass(layoutId.get(0));
+            log.info("宸插嚭涓殑鐜荤拑锛歿}", Arrays.asList(intoGlass));
+            //杩涚倝涓殑绗簩涓増鍥�
+            if (layoutId.size() > 1) {
+                List<TemperingGlassInfo> intoGlass2 = temperingAgoService.selectIntoGlass(layoutId.get(1));
+                log.info("宸插嚭涓殑鐜荤拑锛歿}", Arrays.asList(intoGlass2));
+            }
+        }
+    }
+    @Test
+    public void testFindPa2() {
+        List<TemperingGlassInfo> glass = temperingAgoService.selectOutGlass();
+        log.info("宸插嚭涓殑鐜荤拑锛歿}", Arrays.asList(glass));
+    }
+
+    @Test
+    public void testFindPa3() {
+        List<TemperingGlassInfo> glass = temperingAgoService.selectWaitingGlass();
+        log.info("绛夊緟涓殑鐜荤拑锛歿}", Arrays.asList(glass));
+    }
+    @Test
+    public void testFindPa4() {
+        List<TemperingGlassInfo> glass = temperingAgoService.selectOverGlass();
+        log.info("閽㈠寲鍚庣殑鐜荤拑锛歿}", Arrays.asList(glass));
+    }
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/pom.xml b/hangzhoumesParent/moduleService/UnLoadGlassModule/pom.xml
new file mode 100644
index 0000000..13e2d80
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/pom.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>moduleService</artifactId>
+        <groupId>com.mes</groupId>
+        <version>1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>unLoadGlass</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml</artifactId>
+            <version>5.2.4</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+            <version>2.8.9</version>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java
new file mode 100644
index 0000000..35cd283
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java
@@ -0,0 +1,24 @@
+package com.mes;
+
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author SNG-012
+ */
+@Slf4j
+@Component
+@Order(1)
+public class AppRunnerConfig implements ApplicationRunner {
+
+
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+        log.info("鍚姩瀹屾垚");
+//        S7object.getinstance().start();
+    }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/UnLoadGlassApplication.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/UnLoadGlassApplication.java
new file mode 100644
index 0000000..f9e78e0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/UnLoadGlassApplication.java
@@ -0,0 +1,30 @@
+package com.mes;
+
+import lombok.extern.slf4j.Slf4j;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/7 14:36RRRR
+ * @Description:
+ */
+@Slf4j
+@SpringBootApplication
+@EnableSwagger2WebMvc
+@EnableDiscoveryClient
+@MapperScan(basePackages = "com.mes.*.mapper")
+@EnableScheduling
+@EnableAsync
+public class UnLoadGlassApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(UnLoadGlassApplication.class, args);
+    }
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7object.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7object.java
new file mode 100644
index 0000000..dd753b9
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7object.java
@@ -0,0 +1,61 @@
+package com.mes.common;
+
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.mes.device.PlcParameterObject;
+import com.mes.tools.InitUtil;
+import com.mes.tools.S7control;
+
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 15:13
+ * @Description:
+ */
+public class S7object extends Thread {
+    public S7control plccontrol; // PLC閫氳绫诲疄渚�
+    private EPlcType plcType = EPlcType.S1200; // 瑗块棬瀛怭LC绫诲瀷
+    private String ip = "192.168.30.100"; // plc ip鍦板潃
+    private int port = 102; // plc 绔彛鍙�
+
+
+    public PlcParameterObject PlcMesObject;
+    private static volatile S7object instance = null;
+
+    private S7object() {
+        if (plccontrol == null) {
+            plccontrol = new S7control(plcType, ip, port, 0, 0);
+            String PlcCacheGlass = System.getProperty("user.dir") + "/JsonFile/PlcdownGlass.json";
+            PlcMesObject = InitUtil.initword(PlcCacheGlass);
+        }
+    }
+
+    // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
+    public static S7object getinstance() {
+        if (instance == null) {
+            synchronized (S7object.class) {
+                if (instance == null) {
+                    instance = new S7object();
+                }
+            }
+        }
+        return instance;
+    }
+
+    @Override
+    public void run() {
+        while (this != null) {
+            try {
+                Thread.sleep(100);
+
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+
+            byte[] getplcvlues = plccontrol.readByte(PlcMesObject.getPlcAddressBegin(), PlcMesObject.getPlcAddressLength());
+            if (getplcvlues != null) {
+                PlcMesObject.setPlcParameterList(getplcvlues);
+            }
+
+        }
+    }
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java
new file mode 100644
index 0000000..fcf4eb3
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java
@@ -0,0 +1,45 @@
+package com.mes.downglassinfo.controller;
+
+import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.entity.request.DownGlassInfoRequest;
+import com.mes.downglassinfo.service.DownGlassInfoService;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/downGlassInfo")
+public class DownGlassInfoController {
+
+    @Autowired
+    DownGlassInfoService downGlassInfoService;
+
+    /**
+     * 璁剧疆鏌ヨ鍙傛暟
+     *
+     * @param request
+     * @return
+     */
+    @PostMapping("/setDownGlassInfoRequest")
+    @ApiOperation(value = "璁剧疆钀芥灦鐜荤拑鏌ヨ鍙傛暟", notes = "璁剧疆钀芥灦鐜荤拑鏌ヨ鍙傛暟")
+    public Result<String> setDownGlassInfoRequest(@RequestBody DownGlassInfoRequest request) {
+        Result.success(downGlassInfoService.setDownGlassInfoRequest(request));
+        return Result.build(200, "鏌ヨ鎴愬姛", "1");
+
+    }
+
+    @PostMapping("/downGlassPrint")
+    public Result downGlassPrint(@RequestBody DownGlassInfo downGlassInfo) {
+        return Result.build(200, "鏌ヨ鎴愬姛", downGlassInfoService.downGlassPrint(downGlassInfo));
+    }
+
+    @PostMapping("/downGlassLabelPrint")
+    public Result downGlassLabelPrint(@RequestBody DownGlassInfo downGlassInfo) {
+        return Result.build(200, "鏌ヨ鎴愬姛", downGlassInfoService.downGlassLabelPrint(downGlassInfo));
+    }
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassTaskController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassTaskController.java
new file mode 100644
index 0000000..cf952c6
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassTaskController.java
@@ -0,0 +1,37 @@
+package com.mes.downglassinfo.controller;
+
+
+import com.mes.downglassinfo.service.DownGlassInfoService;
+import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+
+@RestController
+@RequestMapping("/downGlassTask")
+public class DownGlassTaskController {
+
+    @Autowired
+    DownGlassInfoService downGlassInfoService;
+
+    @PostMapping("/generateOutGlassTask")
+    @ApiOperation(value = "鐢熸垚鍑虹墖浠诲姟", notes = "鐢熸垚鍑虹墖浠诲姟")
+    public Result<Boolean> generateOutGlassTask(@RequestBody DownStorageCageDetails downStorageCageDetails) {
+        return Result.success(downGlassInfoService.generateOutGlassTask(downStorageCageDetails.getGlassId()));
+    }
+
+}
+
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
new file mode 100644
index 0000000..55a4ee9
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
@@ -0,0 +1,93 @@
+package com.mes.downglassinfo.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.stereotype.Component;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Data
+@Component
+@EqualsAndHashCode(callSuper = false)
+public class DownGlassInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 涓嬬墖鐜荤拑淇℃伅琛╥d
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 宸ヤ綅id
+     */
+    private Integer workStationId;
+
+    /**
+     * 宸ョ▼id
+     */
+    private String engineerId;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String flowCardId;
+
+    /**
+     * 灞傚彿
+     */
+    private Integer layer;
+
+    /**
+     * 椤哄簭
+     */
+    private Integer sequence;
+
+    /**
+     * 瀹�
+     */
+    private double width;
+
+    /**
+     * 楂�
+     */
+    private double height;
+
+    /**
+     * 鍘氬害
+     */
+    private double thickness;
+
+    /**
+     * 鑶滅郴
+     */
+    private String Filmsid;
+
+    /**
+     * 鐜荤拑id
+     */
+    private String glassId;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date gmtCreate;
+
+    /**
+     * 鐜荤拑绫诲瀷
+     */
+    private Integer glassType;
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java
new file mode 100644
index 0000000..e82e684
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java
@@ -0,0 +1,94 @@
+package com.mes.downglassinfo.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DownGlassTask implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 鐜荤拑id
+     */
+    private String glassId;
+
+
+    /**
+     * 璧峰
+     */
+    private Integer startCell;
+
+    /**
+     * 鐩爣
+     */
+    private Integer endCell;
+
+    /**
+     * 浠诲姟绫诲瀷 1:杩�   2锛氬嚭
+     */
+    private Integer taskType;
+
+    /**
+     * 瀹�
+     */
+    private Integer width;
+
+    /**
+     * 楂�
+     */
+    private Integer height;
+
+    /**
+     * 鑶滅郴
+     */
+    private String filmsid;
+
+    /**
+     * 鍘氬害
+     */
+    private Integer thickness;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String flowCardId;
+    /**
+     * 灞傚彿
+     */
+    private int layer;
+
+    /**
+     * 浠诲姟鐘舵�� 0 鏈紑濮�  1姝e湪杩涜   2瀹屾垚
+     */
+    private Integer taskStatus;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date CreateTime;
+
+    @TableLogic
+    private int deleted;
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java
new file mode 100644
index 0000000..9f342f0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java
@@ -0,0 +1,48 @@
+package com.mes.downglassinfo.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DownGlassInfoRequest implements Serializable {
+
+    /**
+     * 宸ヤ綅id
+     */
+    private Integer workStationId;
+
+    /**
+     * 宸ョ▼id
+     */
+    private String engineerId;
+
+    /**
+     * 寮�濮嬫椂闂�
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date beginDate;
+
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date endDate;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java
new file mode 100644
index 0000000..c0cacb7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java
@@ -0,0 +1,55 @@
+package com.mes.downglassinfo.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downworkstation.entity.dto.DownGlassInfoDTO;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+@Repository
+public interface DownGlassInfoMapper extends BaseMapper<DownGlassInfo> {
+    /**
+     * 鎸夋祦绋嬪崱鏌ヨ钀芥灦鏁伴噺鏈�澶氱殑娴佺▼鍗″強灞傛暟
+     *
+     * @param flowCardId
+     * @return
+     */
+    DownGlassInfoDTO queryDownGlassMaxLayer(@Param(value = "flowCardId") String flowCardId);
+
+    /**
+     * 鏌ヨ娴佺▼鍗℃寚瀹氬眰鏁伴渶瑕佽惤鏋剁殑娆″簭
+     *
+     * @param flowCardId
+     * @param layer
+     * @return
+     */
+    Integer queryMaxSequence(@Param(value = "flowCardId") String flowCardId, @Param(value = "layer") int layer);
+
+    /**
+     * 鑾峰彇钀芥灦鐜荤拑淇℃伅锛屽寘鎷凡缁戝畾娴佺▼鍗°�佸眰鏁版湭钀芥灦鐨勭幓鐠冧俊鎭�
+     *
+     * @param isDownload 鏄惁鑾峰彇鏈惤鏋剁幓鐠冧俊鎭�  True 宸茶惤鏋�  false 鏈惤鏋�
+     * @return
+     */
+    List<DownGlassInfoDTO> queryWorkStationIsIn(@Param(value = "workList") List<Integer> workList, @Param(value = "isDownload") Boolean isDownload);
+
+    /**
+     * 鑾峰彇
+     *
+     * @param workList
+     * @return
+     */
+    List<DownGlassInfoDTO> queryWorkStationFlowCard(@Param(value = "workList") List<Integer> workList);
+
+    /**
+     * 鑾峰彇涓嬬墖淇℃伅
+     *
+     * @param processId,technologyNumber
+     * @return
+     */
+    List<Map<String, Object>> downGlassLabelPrint(@Param("processId") String processId, @Param("technologyNumber") Integer technologyNumber);
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassTaskMapper.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassTaskMapper.java
new file mode 100644
index 0000000..d0d9c59
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassTaskMapper.java
@@ -0,0 +1,19 @@
+package com.mes.downglassinfo.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.downglassinfo.entity.DownGlassTask;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@DS("salve_northGlassMes")
+public interface DownGlassTaskMapper extends BaseMapper<DownGlassTask> {
+
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java
new file mode 100644
index 0000000..e921817
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java
@@ -0,0 +1,85 @@
+package com.mes.downglassinfo.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.entity.request.DownGlassInfoRequest;
+import com.mes.downworkstation.entity.DownWorkstation;
+import com.mes.downworkstation.entity.dto.DownGlassInfoDTO;
+
+import java.util.List;
+import java.util.Map;
+
+public interface DownGlassInfoService extends IService<DownGlassInfo> {
+
+
+    /**
+     * @param flowCardId
+     * @return // 鏍规嵁娴佺▼鍗″彿鏌ヨ鏈�澶у簭鍙�
+     */
+    Integer getMaxSequenceByFlowCardId(String flowCardId, int layer);
+
+    /**
+     * @param downGlassInfo 鎻掑叆涓嬬墖淇℃伅
+     */
+    void insertDownGlassInfo(DownGlassInfo downGlassInfo);
+
+
+    DownGlassInfoDTO queryDownGlassMaxLayer(String flowCardId);
+
+    Integer queryMaxSequence(String flowCardId, int layer);
+
+    /**
+     * 鑾峰彇鏋跺瓙缁戝畾 娴佺▼鍗$殑鐜荤拑淇℃伅锛堝凡钀芥灦/鏈惤鏋讹級
+     *
+     * @param isDownload true/false
+     * @return
+     */
+    List<DownGlassInfoDTO> queryWorkStationIsIn(List<Integer> workList, Boolean isDownload);
+
+    /**
+     * 鑾峰彇鎸囧畾鏋跺瓙宸茬粦瀹氭祦绋嬪崱鐨勬灦瀛愭湭钀界幓鐠冪殑鏁版嵁淇℃伅
+     *
+     * @param workList 鎸囧畾鐨勬灦瀛愬彿
+     * @return
+     */
+    List<DownGlassInfoDTO> queryWorkStationFlowCard(List<Integer> workList);
+
+    /**
+     * 鐢熸垚鍑虹墖浠诲姟
+     *
+     * @param glassId
+     * @return
+     */
+    boolean generateOutGlassTask(String glassId);
+
+    /**
+     * 璁剧疆鏋跺瓙瀹氭椂浠诲姟鏌ヨ鏉′欢
+     *
+     * @param request
+     * @return
+     */
+    String setDownGlassInfoRequest(DownGlassInfoRequest request);
+
+    /**
+     * 娴佺▼鍗℃墦鍗版煡璇�
+     *
+     * @param downGlassInfo
+     * @return
+     */
+    List<Map<String, List<Map<String, Object>>>> downGlassPrint(DownGlassInfo downGlassInfo);
+
+    /**
+     * 宸ヤ綅鏄惁婊℃灦鏌ヨ
+     *
+     * @return
+     */
+    List<DownWorkstation> queryWorkStationIsFull();
+
+    /**
+     * 鏍囩鎵撳嵃鏌ヨ
+     *
+     * @param downGlassInfo
+     * @return
+     */
+    List<Map<String, Object>> downGlassLabelPrint(DownGlassInfo downGlassInfo);
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java
new file mode 100644
index 0000000..02674b0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java
@@ -0,0 +1,65 @@
+package com.mes.downglassinfo.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.downglassinfo.entity.DownGlassTask;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface DownGlassTaskService extends IService<DownGlassTask> {
+    /**
+     * 鏌ヨ浠诲姟鐘舵�佷负1鐨勪俊鎭�
+     *
+     * @return
+     */
+    List<DownGlassTask> getUnloadingTaskState();
+
+    /**
+     * 鏇存柊浠诲姟鐘舵��
+     *
+     * @return
+     */
+    void updateTaskState(String id);
+
+    /**
+     * 鍒犻櫎浠诲姟
+     *
+     * @return
+     */
+    void deleteTask(String id);
+
+    /**
+     * 鏌ヨ鍑虹墖浠诲姟
+     *
+     * @return
+     */
+    DownGlassTask selectLastOutCacheInfo(String endCell);
+
+    /**
+     * 鎻掑叆浠诲姟
+     *
+     * @return
+     */
+    Integer insertCacheTask(DownGlassTask downGlassTask);
+
+    /**
+     * 鏌ヨ杩涚墖浠诲姟
+     *
+     * @return
+     */
+    List<DownGlassTask> selectInputTaskCache();
+
+    /**
+     * 鏌ヨ鍑虹墖浠诲姟 澶囩敤
+     *
+     * @return
+     */
+    List<DownGlassTask> selectOutTaskCache();
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
new file mode 100644
index 0000000..f60ea51
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
@@ -0,0 +1,315 @@
+package com.mes.downglassinfo.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.common.config.Const;
+import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.entity.request.DownGlassInfoRequest;
+import com.mes.downglassinfo.mapper.DownGlassInfoMapper;
+import com.mes.downglassinfo.service.DownGlassInfoService;
+import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.downstorage.service.DownStorageCageDetailsService;
+import com.mes.downworkstation.entity.DownWorkstation;
+import com.mes.downworkstation.entity.dto.DownGlassInfoDTO;
+import com.mes.downworkstation.service.DownWorkstationService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.job.DownLoadCacheGlassTask;
+import com.mes.pp.service.FlowCardService;
+import com.mes.utils.RedisUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@Service
+public class DownGlassInfoServiceImpl extends ServiceImpl<DownGlassInfoMapper, DownGlassInfo> implements DownGlassInfoService {
+
+    @Autowired
+    DownLoadCacheGlassTask downLoadCacheGlassTask;
+
+    @Autowired
+    DownStorageCageDetailsService downStorageCageDetailsService;
+
+
+    @Autowired
+    DownWorkstationService downWorkstationService;
+
+    @Autowired
+    RedisUtil redisUtil;
+
+    @Autowired
+    FlowCardService flowCardService;
+
+    /**
+     * 鏍规嵁娴佺▼鍗″彿鏌ヨ鏈�澶у簭鍙�
+     */
+    @Override
+    public Integer getMaxSequenceByFlowCardId(String flowCardId, int layer) {
+        LambdaQueryWrapper<DownGlassInfo> lambdaQueryWrapper = Wrappers.lambdaQuery();
+        lambdaQueryWrapper.eq(DownGlassInfo::getFlowCardId, flowCardId)
+                .eq(DownGlassInfo::getLayer, layer)
+                .select(DownGlassInfo::getSequence)
+                .orderByDesc(DownGlassInfo::getSequence)
+                .last("LIMIT 1");
+
+        DownGlassInfo downGlassInfo = baseMapper.selectOne(lambdaQueryWrapper);
+        return downGlassInfo != null ? downGlassInfo.getSequence() : 0;
+    }
+
+    @Override
+    public void insertDownGlassInfo(DownGlassInfo downGlassInfo) {
+        baseMapper.insert(downGlassInfo);
+    }
+
+    @Override
+    public DownGlassInfoDTO queryDownGlassMaxLayer(String flowCardId) {
+        return baseMapper.queryDownGlassMaxLayer(flowCardId);
+    }
+
+    @Override
+    public Integer queryMaxSequence(String flowCardId, int layer) {
+        return baseMapper.queryMaxSequence(flowCardId, layer);
+    }
+
+    @Override
+    public List<DownGlassInfoDTO> queryWorkStationIsIn(List<Integer> workList, Boolean isDownload) {
+        //鎸夌収瑕佹眰鑾峰彇宸茶惤鏋�/鏈惤鏋剁殑鐜荤拑淇℃伅
+        return baseMapper.queryWorkStationIsIn(workList, isDownload);
+    }
+
+    @Override
+    public List<DownGlassInfoDTO> queryWorkStationFlowCard(List<Integer> workList) {
+        //鑾峰彇宸茬粦瀹氭祦绋嬪崱鐨勬灦瀛愭湭钀界幓鐠冪殑鏁版嵁淇℃伅
+        return baseMapper.queryWorkStationFlowCard(workList);
+    }
+
+    @Override
+    public boolean generateOutGlassTask(String glassId) {
+        //鏇存柊鍗у紡鐞嗙墖绗煎唴鐜荤拑鐘舵��
+        downStorageCageDetailsService.update(new LambdaUpdateWrapper<DownStorageCageDetails>()
+                .set(DownStorageCageDetails::getState, Const.GLASS_STATE_OUT).eq(DownStorageCageDetails::getGlassId, glassId));
+        DownStorageCageDetails details = downStorageCageDetailsService.getOne(new LambdaQueryWrapper<DownStorageCageDetails>()
+                .eq(DownStorageCageDetails::getGlassId, glassId));
+        //鐢熸垚涓嬬墖淇℃伅
+        DownGlassInfo downGlassInfo = new DownGlassInfo();
+        BeanUtils.copyProperties(details, downGlassInfo);
+        //鑾峰彇褰撳墠娴佺▼鍗℃渶澶х墖搴�
+        downGlassInfo.setSequence(this.getMaxSequenceByFlowCardId(details.getFlowCardId(), details.getLayer()) + 1);
+        downGlassInfo.setWorkStationId(Const.G13_WORK_STATION);
+        this.save(downGlassInfo);
+        //鐢熸垚浠诲姟淇℃伅 骞跺悜plc鍙戦�佸嚭鐗囦换鍔�
+        GlassInfo glassInfo = new GlassInfo();
+        BeanUtils.copyProperties(details, glassInfo);
+        return downLoadCacheGlassTask.initDownGlassTask(glassInfo, details.getSlot(), Const.G13_WORK_STATION, 2);
+    }
+
+    @Override
+    public String setDownGlassInfoRequest(DownGlassInfoRequest request) {
+        if (request == null) {
+            redisUtil.deleteObject("downGlassRequest");
+        } else {
+            redisUtil.setCacheObject("downGlassRequest", request);
+        }
+        return "success";
+    }
+
+    @Override
+    public List<DownWorkstation> queryWorkStationIsFull() {
+
+        //鏌ヨ鍙互钀芥灦鐨勭幓鐠冧俊鎭笖宸茬粦瀹氭祦绋嬪崱鐨勫伐浣嶄俊鎭�
+//        List<DownWorkstation> list = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>().eq(DownWorkstation::getEnableState, Const.SLOT_ON)
+//                .isNotNull(DownWorkstation::getFlowCardId).ne(DownWorkstation::getFlowCardId, ""));
+//        List<DownWorkstation> workstationFull = new ArrayList<>();
+//        if (CollectionUtils.isNotEmpty(list)) {
+//            //閮芥湁鐜荤拑鐨勫伐浣嶄俊鎭紙鍖呮嫭缁戝畾娴佺▼鍗★級
+//            List<Integer> workstationList = list.stream().map(DownWorkstation::getWorkstationId).collect(Collectors.toList());
+//            //鎸夌収绗﹀悎鏉′欢鐨勫伐浣嶈幏鍙栨湭钀芥灦鐨勬祦绋嬪崱鐜荤拑锛屽鏋滆繑鍥炰负绌猴紝鍒欒〃鏄庢墍鏈夐兘宸茶惤鏋跺畬鎴�
+//            List<DownGlassInfoDTO> downGlassInfoDTOList = queryWorkStationIsIn(workstationList, Boolean.FALSE);
+//            //鑾峰彇宸ヤ綅涓婄殑鏈弧鐨勬祦绋嬪崱鍙婂眰鏁�
+//            List<String> flowCardIdList = downGlassInfoDTOList.stream().map(item -> item.getFlowCardId() + ":" + item.getLayer()).collect(Collectors.toList());
+//            //鍙互钀芥灦鐨勭幓鐠冧俊鎭笖宸茬粦瀹氭祦绋嬪崱鐨勬墍鏈夌殑宸ヤ綅 - 鐜荤拑鏈弧娴佺▼鍗″強灞傛暟鐨勫伐浣�  =  宸叉弧宸ヤ綅
+//            workstationFull = list.stream().filter(item -> !flowCardIdList.contains(item.getFlowCardId() + ":" + item.getLayer())).collect(Collectors.toList());
+//            //鏄惁闇�瑕佸皢宸叉弧鐨勫伐浣嶇疆涓轰笉鍙惤鏋�
+////            if (CollectionUtils.isNotEmpty(workstationFull)) {
+////                List<Integer> workstationIds = workstationFull.stream().map(DownWorkstation::getWorkstationId).collect(Collectors.toList());
+////                downWorkstationService.update(new LambdaUpdateWrapper<DownWorkstation>().set(DownWorkstation::getEnableState, Const.SLOT_OFF)
+////                        .in(DownWorkstation::getWorkstationId, workstationIds));
+////            }
+//        }
+        List<DownWorkstation> workstationFull = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>()
+                .eq(DownWorkstation::getEnableState, Const.SLOT_ON)
+                .isNotNull(DownWorkstation::getFlowCardId)
+                .ne(DownWorkstation::getFlowCardId, "")
+                .apply("total_quantity = racks_number + other_number"));
+        return workstationFull;
+    }
+
+    @Override
+    public List<Map<String, List<Map<String, Object>>>> downGlassPrint(DownGlassInfo downGlassInfo) {
+        log.info("鎵撳嵃鍙傛暟:{}", downGlassInfo);
+        QueryWrapper<DownGlassInfo> queryWrapper = Wrappers.query();
+        queryWrapper.eq("flow_card_id", downGlassInfo.getFlowCardId())
+                .orderByAsc("id");
+        int printLayer = 1;
+        if (downGlassInfo.getLayer() != 0) {
+            queryWrapper.select("flow_card_id", "layer", "width", "height", "filmsid", "thickness", "glass_type", "COUNT(*) AS quantity");
+            queryWrapper.groupBy("flow_card_id", "layer", "width", "height", "filmsid", "thickness", "glass_type", "id");
+            queryWrapper.eq("layer", downGlassInfo.getLayer());
+            printLayer = downGlassInfo.getLayer();
+        } else {
+            queryWrapper.select("flow_card_id", "width", "height", "filmsid", "thickness", "glass_type", "COUNT(*) AS quantity");
+            queryWrapper.groupBy("flow_card_id", "width", "height", "filmsid", "thickness", "glass_type", "id");
+        }
+        List<Map<String, Object>> resultList = baseMapper.selectMaps(queryWrapper);
+
+        log.info("MES钀芥灦鏁版嵁:{}", resultList);
+        List<Map<String, Object>> projectInfo = flowCardService.selectProject(downGlassInfo.getFlowCardId(), printLayer);
+        log.info("娴佺▼鍗″ご閮ㄦ暟鎹�:{}", projectInfo);
+        List<Map<String, Object>> flowCardInfo = flowCardService.selectFlowCard(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer());
+        log.info("娴佺▼鍗$幓鐠冩暟鎹�:{}", flowCardInfo);
+        for (Map<String, Object> row : flowCardInfo) {
+            int order_number = (int) row.get("order_number");
+
+            int quantity1 = 0;
+            for (Map<String, Object> row1 : resultList) {
+                int glass_type = (int) row1.get("glass_type");
+                if (downGlassInfo.getLayer() != 0) {
+                    int layer = (int) row1.get("layer");
+                    int technology_number = (int) row.get("technology_number");
+                    if (order_number == glass_type && technology_number == layer) {
+                        quantity1 += 1;
+                    }
+                } else {
+                    if (order_number == glass_type) {
+                        quantity1 += 1;
+                    }
+                }
+            }
+            row.put("quantity1", quantity1);
+        }
+        log.info("娴佺▼鍗$幓鐠冩暟鎹�2:{}", flowCardInfo);
+        List<Map<String, List<Map<String, Object>>>> listMap = new ArrayList<>();
+        Map<String, List<Map<String, Object>>> result = new HashMap<>();
+        result.put("detail", projectInfo);
+        result.put("detailList", flowCardInfo);
+        for (Map<String, Object> row : projectInfo) {
+            String order_number = (String) row.get("process");
+            String[] processes = order_number.split("->");
+            List<Map<String, Object>> processList = new ArrayList<>();
+            for (int i = 0; i < processes.length; i++) {
+                Map<String, Object> processMap = new JSONObject();
+                processMap.put("process", processes[i]);
+                processMap.put("id", i);
+                processList.add(processMap);
+            }
+            result.put("processList", processList);
+        }
+        listMap.add(result);
+        return listMap;
+    }
+
+
+    @Override
+    public List<Map<String, Object>> downGlassLabelPrint(DownGlassInfo downGlassInfo) {
+
+        List<Map<String, Object>> resultList = baseMapper.downGlassLabelPrint(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer());
+        log.info("MES钀芥灦鏁版嵁:{}", resultList);
+        //鑾峰彇ERP鏍囩鎵�闇�鐨勪俊鎭�
+        List<Map<String, Object>> labelInfo;
+        if (downGlassInfo.getLayer() != 0) {
+            labelInfo = flowCardService.selectLabel(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer());
+        } else {
+            labelInfo = flowCardService.selectLabel(downGlassInfo.getFlowCardId(), 1);
+        }
+        log.info("鏍囩鏁版嵁:{}", labelInfo);
+
+        for (Map<String, Object> row : resultList) {
+            int glass_type = (int) row.get("glass_type");
+            int layer = (int) row.get("layer");
+            for (Map<String, Object> row1 : labelInfo) {
+                int orderNumber = (int) row1.get("orderNumber");
+                int technologyNumber = (int) row1.get("technologyNumber");
+                if (downGlassInfo.getLayer() != 0) {
+                    if (orderNumber == glass_type && technologyNumber == layer) {
+
+                        String order_id = (String) row1.get("order_id");
+                        String project = (String) row1.get("project");
+                        Long customer_id = (Long) row1.get("customer_id");
+                        BigDecimal width = (BigDecimal) row1.get("width");
+                        BigDecimal height = (BigDecimal) row1.get("height");
+                        Long quantity = (Long) row1.get("quantity");
+                        String glass_child = (String) row1.get("glass_child");
+                        String process = (String) row1.get("process");
+                        String customer_name = (String) row1.get("customer_name");
+                        String processing_note = (String) row1.get("processing_note");
+                        String other_colunmns = (String) row1.get("other_colunmns");
+                        String building_number = (String) row1.get("building_number");
+                        String bend_radius = (String) row1.get("bend_radius");
+
+                        row.put("orderNumber", orderNumber);
+                        row.put("technology_number", technologyNumber);
+                        row.put("order_id", order_id);
+                        row.put("project", project);
+                        row.put("customer_id", customer_id);
+                        row.put("width", width);
+                        row.put("height", height);
+                        row.put("quantity", quantity);
+                        row.put("glass_child", glass_child);
+                        row.put("process", process);
+                        row.put("customer_name", customer_name);
+                        row.put("processing_note", processing_note);
+                        row.put("other_colunmns", other_colunmns);
+                        row.put("building_number", building_number);
+                        row.put("bend_radius", bend_radius);
+                    }
+                } else {
+                    if (orderNumber == glass_type) {
+
+                        String order_id = (String) row1.get("order_id");
+                        String project = (String) row1.get("project");
+                        Long customer_id = (Long) row1.get("customer_id");
+                        BigDecimal width = (BigDecimal) row1.get("width");
+                        BigDecimal height = (BigDecimal) row1.get("height");
+                        Long quantity = (Long) row1.get("quantity");
+                        String glass_child = (String) row1.get("glass_child");
+                        String process = (String) row1.get("process");
+                        String customer_name = (String) row1.get("customer_name");
+                        String processing_note = (String) row1.get("processing_note");
+                        String other_colunmns = (String) row1.get("other_colunmns");
+                        String building_number = (String) row1.get("building_number");
+                        String bend_radius = (String) row1.get("bend_radius");
+
+                        row.put("orderNumber", orderNumber);
+                        row.put("technology_number", technologyNumber);
+                        row.put("order_id", order_id);
+                        row.put("project", project);
+                        row.put("customer_id", customer_id);
+                        row.put("width", width);
+                        row.put("height", height);
+                        row.put("quantity", quantity);
+                        row.put("glass_child", glass_child);
+                        row.put("process", process);
+                        row.put("customer_name", customer_name);
+                        row.put("processing_note", processing_note);
+                        row.put("other_colunmns", other_colunmns);
+                        row.put("building_number", building_number);
+                        row.put("bend_radius", bend_radius);
+                    }
+                }
+            }
+        }
+        return resultList;
+    }
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java
new file mode 100644
index 0000000..17f9ba1
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java
@@ -0,0 +1,125 @@
+package com.mes.downglassinfo.service.impl;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.entity.DownGlassTask;
+import com.mes.downglassinfo.mapper.DownGlassTaskMapper;
+import com.mes.downglassinfo.service.DownGlassInfoService;
+import com.mes.downglassinfo.service.DownGlassTaskService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Slf4j
+@Service
+public class DownGlassTaskServiceImpl extends ServiceImpl<DownGlassTaskMapper, DownGlassTask> implements DownGlassTaskService {
+
+    @Autowired
+    private DownGlassInfoService downGlassInfoService; // MySQL Mapper
+
+    @Resource
+    private DownGlassTaskMapper downGlassTaskMapper; // SQL Server Mapper
+
+    @Override
+    public List<DownGlassTask> getUnloadingTaskState() {
+        log.info("鎺掗櫎宸茬粡涓嬬墖鐨勫嚭鐗囨垨鐩撮�氫换鍔$姸鎬佷负1鐨勪换鍔�");
+
+        // Step 1: 浠� MySQL 涓幏鍙栫幓鐠� ID 鍒楄〃
+
+        // Step 2: 浠� SQL Server 涓繃婊ゆ帀杩欎簺鐜荤拑 ID 骞舵煡璇换鍔�
+        QueryWrapper<DownGlassTask> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("task_status", 1)
+                .and(qw -> qw.eq("task_type", 2).or().eq("task_type", 3));
+
+        List<DownGlassInfo> excludedGlassIds = downGlassInfoService.list();
+        if (!excludedGlassIds.isEmpty()) {
+            queryWrapper.notIn("glass_id", excludedGlassIds.stream().map(DownGlassInfo::getGlassId).collect(Collectors.toList()));
+        }
+        log.info(String.valueOf(excludedGlassIds));
+
+        return baseMapper.selectList(queryWrapper);
+    }
+
+
+    @Override
+    public void updateTaskState(String id) {
+        UpdateWrapper<DownGlassTask> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.set("task_status", 2).eq("id", id);
+        baseMapper.update(new DownGlassTask(), updateWrapper);
+    }
+
+    @Override
+    public void deleteTask(String id) {
+        LambdaQueryWrapper<DownGlassTask> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(DownGlassTask::getGlassId, id);
+
+        baseMapper.delete(queryWrapper);
+    }
+
+    @Override
+    public DownGlassTask selectLastOutCacheInfo(String endCell) {
+        QueryWrapper<DownGlassTask> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("task_type", "2")
+                .eq("task_status", "2")
+                .eq("end_cell", endCell)
+                .last("LIMIT 1");
+
+        return baseMapper.selectOne(queryWrapper);
+    }
+
+    @Override
+    public Integer insertCacheTask(DownGlassTask downGlassTask) {
+        // 鏌ヨ鏁版嵁搴擄紝妫�鏌ヤ富閿�兼槸鍚﹀凡缁忓瓨鍦�
+        DownGlassTask existingTask = baseMapper.selectById(downGlassTask.getId());
+        if (existingTask != null) {
+            // 濡傛灉宸插瓨鍦ㄧ浉鍚屼富閿�肩殑浠诲姟锛屽垯涓嶈繘琛屾彃鍏ユ搷浣滐紝杩斿洖 null 鎴栬�呮姏鍑哄紓甯�
+            // 杩欓噷绠�鍗曡捣瑙侊紝鐩存帴杩斿洖 null
+            return null;
+        }
+
+        // 濡傛灉涓婚敭鍊间笉瀛樺湪锛屽垯杩涜鎻掑叆鎿嶄綔
+        DownGlassTask newDownGlassTask = new DownGlassTask();
+        BeanUtils.copyProperties(downGlassTask, newDownGlassTask);
+        newDownGlassTask.setTaskStatus(1); // 榛樿浠诲姟鐘舵�佷负1
+        newDownGlassTask.setCreateTime(new Date());
+        int rows = baseMapper.insert(newDownGlassTask);
+        return rows > 0 ? rows : null;
+    }
+
+
+
+    @Override
+    public List<DownGlassTask> selectInputTaskCache() {
+        return baseMapper.selectList(new QueryWrapper<DownGlassTask>().eq("task_status", 0).eq("task_type", 1));
+    }
+
+    /**
+     * 鏌ヨ寰呭嚭鐗囦换鍔�
+     *
+     * @return
+     */
+    @Override
+    public List<DownGlassTask> selectOutTaskCache() {
+        return baseMapper.selectList(new QueryWrapper<DownGlassTask>().eq("task_status", 0).eq("task_type", 2));
+    }
+
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageController.java
new file mode 100644
index 0000000..82c4d3a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageController.java
@@ -0,0 +1,21 @@
+package com.mes.downstorage.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@RestController
+@RequestMapping("/downStorageCage")
+public class DownStorageCageController {
+
+
+}
+
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java
new file mode 100644
index 0000000..c163241
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java
@@ -0,0 +1,85 @@
+package com.mes.downstorage.controller;
+
+import com.mes.downstorage.entity.DownStorageCage;
+import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.downstorage.entity.request.CacheWornRequest;
+import com.mes.downstorage.service.DownStorageCageDetailsService;
+import com.mes.downstorage.service.DownStorageCageService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+@Api(tags = "缂撳瓨")
+@RestController
+@RequestMapping("/downStorage")
+public class DownStorageCageDetailsController {
+
+    @Autowired
+    private DownStorageCageDetailsService downStorageCageDetailsService;
+    @Autowired
+    private DownStorageCageService downStorageCageService;
+    @ApiOperation("娣诲姞鐜荤拑")
+    @PostMapping("/add")
+    public String addDownStorageCageDetails(@RequestBody DownStorageCageDetails details) {
+        downStorageCageDetailsService.addDownStorageCageDetails(details);
+        return "Details added successfully";
+    }
+
+
+
+    //鏌ヨ纾ㄨ竟缂撳瓨鐞嗙墖绗煎唴璇︽儏
+    @ApiOperation("鏌ヨ缂撳瓨鐞嗙墖绗煎唴璇︽儏")
+    @GetMapping("/selectStorageCage")
+    @ResponseBody
+    public Result selectDownStorageCage () {
+        List<Map<String, Object>> list=downStorageCageService.selectDownStorageCages();
+        return Result.build(200,"鎴愬姛",list);
+    }
+
+
+//
+//    @ApiOperation("娣诲姞缂撳瓨鐞嗙墖绗间俊鎭�   鍔熻兘锛氱鍐呯粦瀹氱幓鐠�  鍙傛暟(DownStorageCageDetails downStorageCageDetails)")
+//    @PostMapping("/insertEdgStorageCage")
+//    @ResponseBody
+//    public Result insertEdgStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails) {
+//        boolean isSucess=downStorageCageService.updatedownStorageCageDetails(downStorageCageDetails);
+//        return Result.build(200,"娣诲姞鎴愬姛",1);
+//    }
+
+
+
+    @ApiOperation("淇敼缂撳瓨鐞嗙墖绗间俊鎭�   鍔熻兘锛氬绗煎唴鏍呮牸杩涜銆愬惎鐢�/绂佺敤銆�/ 銆愭洿鎹€�戠鍐呮爡鏍肩幓鐠冧俊鎭�")
+    @PostMapping("/updateDownStorageCage")
+    @ResponseBody
+    public Result updateDownStorageCage(@RequestBody DownStorageCage downStorageCage) {
+        boolean isSucess=downStorageCageService.updateDownStorageCage(downStorageCage);
+        return Result.build(200,"鏇存崲鎴愬姛",isSucess);
+    }
+    @ApiOperation("鍒犻櫎缂撳瓨鐞嗙墖绗间俊鎭�   鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑杩涜銆愭竻闄ゃ��")
+    @PostMapping("/deleteDownStorageCage")
+    @ResponseBody
+    public Result deleteDownStorageCage(@RequestBody CacheWornRequest cacheWornRequest) {
+        downStorageCageService.deleteDownStorageCage(cacheWornRequest);
+//        boolean isSucess=downStorageCageService.updateDownStorageCageDetails(downStorageCageId,downStorageCageDetails);
+        return Result.build(200,"鍒犻櫎鎴愬姛",1);
+    }
+
+
+
+
+    @ApiOperation("淇敼鐜荤拑鐘舵��   鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑杩涜銆愮牬鎹�/鎷胯蛋銆�  ")
+    @PostMapping("/ReportStatus")
+    @ResponseBody
+    public Result edgReportStatus(@RequestBody Map<String, String> arguments) {
+        String downStorageCageDetailsId=arguments.get("glassId");
+        int controlsId=Integer.valueOf(arguments.get("controlsId"));
+        boolean isSucess=downStorageCageDetailsService.identWorn(downStorageCageDetailsId,controlsId);
+        return Result.build(200,"銆愮牬鎹�/鎷胯蛋銆戞垚鍔�",1);
+    }
+
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCage.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCage.java
new file mode 100644
index 0000000..4379860
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCage.java
@@ -0,0 +1,62 @@
+package com.mes.downstorage.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Api(description = "缂撳瓨")
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DownStorageCage implements Serializable {
+
+    @ApiModelProperty(hidden = true)
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 涓嬬墖鍓嶇悊鐗囩琛╥d
+     */
+    @ApiModelProperty(value = "涓嬬墖鍓嶇悊鐗囩琛╥d", position = 2)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 璁惧id
+     */
+    @ApiModelProperty(value = "璁惧id", position = 3)
+    private Integer deviceId;
+
+    /**
+     * 鏍呮牸鍙�
+     */
+    @ApiModelProperty(value = "鏍呮牸鍙�", position = 4)
+    private Integer slot;
+
+    /**
+     * 鍚敤鐘舵��
+     */
+    @ApiModelProperty(value = "鍚敤鐘舵��", position = 5)
+    @TableField("enable_state")
+    private Integer enableState;
+
+    /**
+     * 鍓╀綑
+     */
+    @ApiModelProperty(value = "鍓╀綑", position = 6)
+    private Integer remainWidth;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java
new file mode 100644
index 0000000..e8d9c20
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java
@@ -0,0 +1,114 @@
+package com.mes.downstorage.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DownStorageCageDetails implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 涓嬬墖鍓嶇悊鐗囩鏄庣粏琛╥d
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 璁惧id
+     */
+    private Integer deviceId;
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    private String engineerId;
+
+    /**
+     * 鏍呮牸鍙�
+     */
+    private Integer slot;
+
+    /**
+     * 鐜荤拑id
+     */
+    private String glassId;
+
+    /**
+     * 灏忕墖鍦ㄦ牸鍐呯殑椤哄簭
+     */
+    private Integer sequence;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String flowCardId;
+
+    /**
+     * 鐜荤拑绫诲瀷
+     */
+    private Integer glassType;
+
+    /**
+     * 瀹�
+     */
+    private double width;
+
+    /**
+     * 楂�
+     */
+    private double height;
+
+    /**
+     * 鍘氬害
+     */
+    private double thickness;
+
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+
+    /**
+     * 閽㈠寲鐗堝浘鐗囧簭
+     */
+    private Integer temperingFeedSequence;
+
+
+    /**
+     * 鑶滅郴id
+     */
+    private String filmsid;
+    /**
+     * 鐘舵��
+     */
+    private Integer state;
+
+    /**
+     * 鐜荤拑闂撮殭
+     */
+    private Integer gap;
+    /**
+     * 鎬诲眰鏁�
+     */
+    private Integer totalLayer;
+    /**
+     * 灞傛暟
+     */
+    private Integer layer;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/request/CacheWornRequest.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/request/CacheWornRequest.java
new file mode 100644
index 0000000..05a9aed
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/request/CacheWornRequest.java
@@ -0,0 +1,28 @@
+package com.mes.downstorage.entity.request;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/8/10 13:34
+ * @Description:
+ */
+@Data
+public class CacheWornRequest {
+
+    @NotBlank(message = "鐜荤拑ID涓嶈兘涓虹┖")
+    private String glassId;
+
+    @NotNull(message = "鐘舵�佷笉鑳戒负绌�")
+    private int state;
+
+    @NotNull(message = "绾胯矾涓嶈兘涓虹┖")
+    private int line;
+
+    @NotBlank(message = "宸ュ簭涓嶈兘涓虹┖")
+    private String workingProcedure;
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageDetailsMapper.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageDetailsMapper.java
new file mode 100644
index 0000000..72b4043
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageDetailsMapper.java
@@ -0,0 +1,21 @@
+package com.mes.downstorage.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.downstorage.entity.DownStorageCageDetails;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+
+public interface DownStorageCageDetailsMapper extends MPJBaseMapper<DownStorageCageDetails> {
+
+    DownStorageCageDetails getGlassInfoMaxCount(@Param(value = "workList") List<Integer> workList);
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageMapper.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageMapper.java
new file mode 100644
index 0000000..ae0b8a2
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageMapper.java
@@ -0,0 +1,17 @@
+package com.mes.downstorage.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.downstorage.entity.DownStorageCage;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface DownStorageCageMapper extends MPJBaseMapper<DownStorageCage> {
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java
new file mode 100644
index 0000000..5d2a5d5
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java
@@ -0,0 +1,89 @@
+package com.mes.downstorage.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.glassinfo.entity.GlassInfo;
+
+import java.util.List;
+import java.util.Map;
+
+public interface DownStorageCageDetailsService extends MPJBaseService<DownStorageCageDetails> {
+    /**
+     * @return //娣诲姞鐞嗙墖绗煎唴淇℃伅
+     */
+    void addDownStorageCageDetails(DownStorageCageDetails details);
+
+
+    /**
+     * @return //淇敼鐞嗙墖绗煎唴淇℃伅
+     */
+    boolean updatedownStorageCageDetails(DownStorageCageDetails details);
+
+   // List<DownStorageCageDetails> getCacheLeisure();
+
+    /**
+     * @param start
+     * @param end
+     * @return 鏍规嵁浼犲叆鐨勫伐浣嶆煡璇㈢鍚堟寜鐓ч『搴忓拰澶у皬鍑虹墖鐨勫皬鐗�
+     */
+  //  List<DownStorageCageDetails> getCacheOut(int start, int end);
+
+    /**
+     * @return 鏌ヨ绗煎瓙鍐呬俊鎭�
+     */
+    List<Map<String, Object>> getCacheInfo();
+
+
+    /**
+     * @param flowcardid
+     * @param width
+     * @return 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿  鎵惧埌绌烘牸
+     */
+   // List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width);
+
+    /**
+     * @param start
+     * @param end
+     * @return log.info(" 鍗曠墖鎯呭喌鏍规嵁浼犲叆鐨勫伐浣嶆煡璇㈢鍚堟寜鐓уぇ灏忓嚭鐗�, 骞朵笖浼樺厛鍑烘弧鏋剁殑灏忕墖 ");
+     */
+
+
+    /**
+     * @return 鍑虹墖
+     */
+
+    List<DownStorageCageDetails> CacheOut1(int start, int end);
+
+
+    /**
+     * @param start
+     * @param end
+     * @return   鏍规嵁浼犲叆鐨勬枡鏋跺彿 鏌ヨ绗﹀悎鎸夌収娴佺▼鍗′腑椤哄簭鍑虹墖鐨勫皬鐗�
+     */
+    List<DownStorageCageDetails> CacheOut2(int start, int end);
+//    /**
+//     * @return 鐩撮�氭煡璇�
+//     */
+//    List<GlassInfo>  DirectConnection();
+
+    /**
+     * @return 鐩撮�氭煡璇�
+     */
+    boolean DirectConnection(GlassInfo glassInfo);
+
+    /**
+     * 鑾峰彇褰撳墠闈炴湰鏋跺瓙鍙惤鏋剁殑鐜荤拑淇℃伅
+     *
+     * @param glassId
+     * @param workList G06/G11:浼犲叆G06瀹為檯鑾峰彇鐨勪负鍙惤鏋禛11鐨勭幓鐠� 鍙嶄箣鍚岀悊
+     * @return
+     */
+    String getGlassInfoMaxCount(String glassId, List<Integer> workList);
+
+    /**
+     * @param glassId
+     * @param ControlsId
+     * @return 鐮存崯
+     */
+    boolean identWorn(String glassId, int ControlsId);
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java
new file mode 100644
index 0000000..09ff9fc
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java
@@ -0,0 +1,61 @@
+package com.mes.downstorage.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.mes.downglassinfo.entity.DownGlassTask;
+import com.mes.downstorage.entity.DownStorageCage;
+import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.downstorage.entity.request.CacheWornRequest;
+import com.mes.glassinfo.entity.GlassInfo;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface DownStorageCageService extends MPJBaseService<DownStorageCage> {
+
+    DownGlassTask createDownGlassTask(GlassInfo glassInfo, Integer startCell, Integer endCell, Integer taskType);
+
+    DownGlassTask createDownGlassTask(DownStorageCageDetails glassInfo, Integer startCell, Integer endCell, Integer taskType);
+    //    List<Map<String, Object>> selectCacheLeisure();
+
+
+    /**
+     * @return 鎵惧埌绌烘牸瀛�
+     */
+    DownStorageCage selectCacheEmpty(int currentSlot, boolean flag);
+
+    /**
+     * @return 鎵惧埌绌烘牸瀛�
+     */
+    List<DownStorageCageDetails> selectCacheEmpty();
+
+    /**
+     * @param downStorageCage
+     * @return 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愬惎鐢�/绂佺敤銆�
+     */
+    boolean updateDownStorageCage(DownStorageCage downStorageCage);
+
+    /**
+     /**
+     *淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
+     */
+    boolean updateDownStorageCageDetails(int downStorageCageId,DownStorageCageDetails downStorageCageDetails);
+
+    /**
+     * @return 鏌ヨ绗煎瓙淇℃伅
+     */
+    List<Map<String, Object>> selectDownStorageCages();
+
+    List<DownStorageCageDetails> selectCacheMax();
+
+    void deleteDownStorageCage(CacheWornRequest cacheWornRequest);
+}
+
+
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
new file mode 100644
index 0000000..0ea5be2
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
@@ -0,0 +1,372 @@
+package com.mes.downstorage.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.query.MPJLambdaQueryWrapper;
+import com.github.yulichang.toolkit.JoinWrappers;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.common.config.Const;
+import com.mes.downstorage.entity.DownStorageCage;
+import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.downstorage.mapper.DownStorageCageDetailsMapper;
+import com.mes.downstorage.mapper.DownStorageCageMapper;
+import com.mes.downstorage.service.DownStorageCageDetailsService;
+import com.mes.downworkstation.entity.DownWorkstation;
+import com.mes.downworkstation.mapper.DownWorkstationMapper;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.mapper.GlassInfoMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Slf4j
+@Service
+public class DownStorageCageDetailsServiceImpl extends ServiceImpl<DownStorageCageDetailsMapper, DownStorageCageDetails> implements DownStorageCageDetailsService {
+
+    @Autowired(required = false)
+    private DownStorageCageMapper downStorageCageMapper;
+    @Autowired
+    private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
+    @Autowired
+    private GlassInfoMapper glassInfoMapper;
+    @Autowired
+    private DownWorkstationMapper downWorkstationMapper;
+
+    @Override
+    public void addDownStorageCageDetails(DownStorageCageDetails details) {
+        this.save(details);
+    }
+
+
+    @Override
+    //淇敼鐞嗙墖绗煎唴淇℃伅 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
+    public boolean updatedownStorageCageDetails(DownStorageCageDetails details) {
+        baseMapper.updateById(details);
+        return true;
+    }
+
+
+//    @Override
+//    public List<DownStorageCageDetails> CacheOut(int start, int end) {
+//        log.info("鍗曠墖鎯呭喌鏍规嵁浼犲叆鐨勫伐浣嶆煡璇㈢鍚堟寜鐓уぇ灏忓嚭鐗�,骞朵笖浼樺厛鍑烘弧鏋剁殑灏忕墖");
+//        return downStorageCageDetailsMapper.selectJoinList(
+//                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
+//                        .select("t.*")
+//                        .leftJoin("(SELECT t1.* FROM down_storage_cage_details t1 "
+//                                + "JOIN (SELECT flow_card_id, MAX(width*height) AS max_width FROM glass_info GROUP BY flow_card_id) t "
+//                                + "ON t1.flow_card_id = t.flow_card_id WHERE t1.width*t1.height = t.max_width) t3"
+//                                + " ON t.glass_id = t3.glass_id")
+//                        .leftJoin("down_workstation t4 ON t3.flow_card_id = t4.flow_card_id")
+//                        .isNull(Boolean.parseBoolean("t.glass_id"), "SELECT glass_id FROM down_glass_info")
+//                        .between("t4.workstation_id", start, end)
+//                        // 鏍规嵁 racks_number 鎺掑簭
+//                        .orderByDesc("t4.racks_number")
+//
+//        );
+//    }
+
+
+//    @Override
+//    public List<DownStorageCageDetails> getCacheOut(int start, int end) {
+//        log.info("鏍规嵁浼犲叆鐨勫伐浣嶆煡璇㈢鍚堟寜鐓ч『搴忓拰澶у皬鍑虹墖鐨勫皬鐗�");
+//        return  downStorageCageMapper.selectJoinList(
+//                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
+//                        .select("escd.*")
+//                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
+//                        .leftJoin("down_workstation dw on escd.flow_card_id = dw.flow_card_id")
+//                        .leftJoin("glass_info gi on dw.flow_card_id = gi.flowcard_id  and gi.flowcard_id=escd.flow_card_id ")
+//                        .isNotNull("escd.slot")
+//                        .between("dw.workstation_id", start, end)
+//                        .orderByDesc("escd.width")
+//                        .orderByDesc("escd.height")
+//        );
+//    }
+
+
+//    @Override
+//    public List<DownStorageCageDetails> selectCacheEmpty2(){
+//        return  downStorageCageMapper.selectJoinList(
+//                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
+//                        .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height")
+//                        .leftJoin("down_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot")
+//                        .isNull("escd.slot")
+//        );
+//    }
+
+
+    @Override
+    public List<Map<String, Object>> getCacheInfo() {
+        log.info("鏌ヨ绗煎瓙鍐呬俊鎭�");
+        return downStorageCageDetailsMapper.selectJoinMaps(JoinWrappers.lambda(DownStorageCageDetails.class) // 浣跨敤 JoinWrappers.lambda 鍒涘缓鑱斿悎鏌ヨ
+                .selectAll(DownStorageCageDetails.class) // 閫夋嫨鎵�鏈夊瓧娈�
+                .eq(DownStorageCage::getSlot, DownStorageCageDetails::getSlot) // 璁剧疆鍏宠仈鏉′欢
+                .eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                .orderByAsc(DownStorageCage::getSlot) // 鎸� slot 瀛楁鍗囧簭鎺掑簭
+        );
+    }
+
+//
+//    @Override
+//    public List<Map> getCacheInfo() {
+//        log.info(" 鏌ヨ绗煎瓙鍐呬俊鎭�");
+//        return downStorageCageMapper.selectJoinList(
+//                Map.class, new MPJQueryWrapper<DownStorageCage>()
+//                        .select("escd.*")
+//                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
+//                        .orderByAsc("t.slot")
+//        );
+//
+//    }
+
+//    @Override
+//    public List<DownStorageCageDetails> getCacheLeisure() {
+//        log.info(" 鏌ヨ绗煎瓙鍐呯┖闂�");
+//        List<DownStorageCageDetails> list = downStorageCageMapper.selectJoinList(
+//                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
+//                        .select("escd.*")
+//                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
+//                        .isNull("escd.slot")
+//
+//                        .orderByAsc("escd.slot")
+//        );
+//        return list;
+//    }
+
+
+//    @Override
+//    public List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width) {
+//        log.info("  鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿  鎵惧埌绌烘牸");
+//
+//        return downStorageCageMapper.selectJoinList(
+//                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
+//                        .select("escd.*")
+//                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
+//                        .isNull("escd.slot")
+//                        .apply("t.remain_width - " + width + " > 0")
+//                        .orderByAsc("escd.sequence")
+//        );
+//
+//
+//
+//
+//    }
+
+  //  @Override
+//    public List<GlassInfo>  DirectConnection(){
+//        LambdaQueryWrapper<GlassInfo> queryWrapper2 = Wrappers.lambdaQuery();
+//        queryWrapper2.select(GlassInfo::getFlowCardId,
+//                GlassInfo::getGlassId,
+//                GlassInfo::getTemperingLayoutId,
+//                GlassInfo::getTemperingFeedSequence)
+//                .notInSql(GlassInfo::getGlassId, "SELECT glass_id FROM down_glass_info")
+//                .orderByAsc(GlassInfo::getTemperingLayoutId)
+//                .orderByDesc(GlassInfo::getTemperingFeedSequence)
+//                .last("LIMIT 1");
+//
+//        // 鏌ヨ GlassInfo 琛�
+//        log.info("鐩撮�氭煡璇�");
+//        return glassInfoMapper.selectList(queryWrapper2);
+//
+//    };
+
+    @Override
+    public boolean DirectConnection(GlassInfo glassInfo) {
+        LambdaQueryWrapper<GlassInfo> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(GlassInfo::getGlassId, glassInfo.getGlassId())
+                .notInSql(GlassInfo::getGlassId, "SELECT glass_id FROM down_glass_info")
+                .orderByDesc(GlassInfo::getGlassType)
+                .groupBy(GlassInfo::getFlowCardId)
+                .last("LIMIT 1");
+
+        // 鏌ヨ绗﹀悎鏉′欢鐨� GlassInfo 璁板綍鏁伴噺
+        int count = glassInfoMapper.selectCount(queryWrapper);
+
+        return count > 0;
+    }
+
+    @Override
+    public String getGlassInfoMaxCount(String glassId, List<Integer> workList) {
+        DownStorageCageDetails glassInfoMaxCount = baseMapper.getGlassInfoMaxCount(workList);
+        return null == glassInfoMaxCount ? glassId : glassInfoMaxCount.getGlassId();
+    }
+
+
+    @Override
+    public List<DownStorageCageDetails> CacheOut1(int start, int end) {
+
+
+        // 鍒涘缓涓�涓� LambdaQueryWrapper 瀹炰緥
+        LambdaQueryWrapper<DownStorageCageDetails> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+// 鏉′欢 state=100
+        lambdaQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN);
+        List<DownStorageCageDetails> cageDetails = downStorageCageDetailsMapper.selectList(lambdaQueryWrapper);
+        // Step 5: 鍒ゆ柇 down_storage_cage_details 缁撴灉鏁伴噺鏄惁涓�9锛屽鏋滄槸锛屽垯鎵ц鍙﹀涓�涓煡璇�
+        if (cageDetails.size() == 9) {
+            log.info("1銆佺瀛愭弧浜嗙殑鏃跺�欙紝鎸夌収绗煎唴鐗堝浘id 鐗堝浘鐗囧簭鍑�");
+            List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
+
+            List<String> flowCardIds = new ArrayList<>();
+            for (DownWorkstation workstation : workstationList) {
+                flowCardIds.add(workstation.getFlowCardId());
+            }
+
+            if (flowCardIds.isEmpty()) {
+                log.error("鏈壘鍒板搴旂殑 flow_card_id");
+                return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+            }
+            LambdaQueryWrapper<DownStorageCageDetails> anotherQueryWrapper = Wrappers.lambdaQuery();
+
+            anotherQueryWrapper.orderByAsc(DownStorageCageDetails::getTemperingLayoutId);
+            anotherQueryWrapper.orderByDesc(DownStorageCageDetails::getTemperingFeedSequence);
+            anotherQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds);
+            anotherQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN);
+            anotherQueryWrapper.last("LIMIT 1");
+            return downStorageCageDetailsMapper.selectList(anotherQueryWrapper);
+        } else {
+
+            // Step 1: 鏌ヨ DownWorkstation 琛ㄨ幏鍙栧搴� workstation_id 鐨� flow_card_id
+            List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
+
+            List<String> flowCardIds = new ArrayList<>();
+            for (DownWorkstation workstation : workstationList) {
+                flowCardIds.add(workstation.getFlowCardId());
+            }
+            if (flowCardIds.isEmpty()) {
+                log.error("2銆佹湭鎵惧埌瀵瑰簲鐨� flow_card_id");
+                return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+            }
+            log.info("娴佺▼鍗�:{}", flowCardIds);
+            LambdaQueryWrapper<GlassInfo> queryWrapper2 = Wrappers.lambdaQuery();
+            queryWrapper2.select(GlassInfo::getFlowCardId,
+                    GlassInfo::getGlassId,
+                    GlassInfo::getTemperingLayoutId,
+                    GlassInfo::getTemperingFeedSequence)
+                    .notInSql(GlassInfo::getGlassId, "SELECT glass_id FROM down_glass_info")
+                    .orderByAsc(GlassInfo::getTemperingLayoutId)
+                    .orderByDesc(GlassInfo::getTemperingFeedSequence)
+                    .last("LIMIT 1");
+
+            // 鏌ヨ GlassInfo 琛�
+            List<GlassInfo> glassInfos = glassInfoMapper.selectList(queryWrapper2);
+            if (glassInfos.isEmpty()) {
+                log.error("鏈壘鍒板搴旂殑鐜荤拑淇℃伅");
+                return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+            }
+            // Step 3: 鏋勯�犳煡璇� down_storage_cage_details 琛ㄧ殑鏉′欢
+            List<String> glassIds = glassInfos.stream().map(GlassInfo::getGlassId).collect(Collectors.toList());
+            LambdaQueryWrapper<DownStorageCageDetails> cageDetailsQueryWrapper = Wrappers.lambdaQuery();
+            cageDetailsQueryWrapper.in(DownStorageCageDetails::getGlassId, glassIds);
+            cageDetailsQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds);
+            cageDetailsQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN);
+            log.info("鎸夌収娴佺▼鍗$殑鐗堝浘id 鐗堝浘鐗囧簭鍑�");
+            // Step 4: 鏌ヨ down_storage_cage_details 琛ㄥ苟杩斿洖缁撴灉
+            return downStorageCageDetailsMapper.selectList(cageDetailsQueryWrapper);
+        }
+
+
+    }
+
+
+
+
+        @Override
+        public List<DownStorageCageDetails> CacheOut2(int start, int end) {
+
+
+            // 鍒涘缓涓�涓� LambdaQueryWrapper 瀹炰緥
+            LambdaQueryWrapper<DownStorageCageDetails> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+// 鏉′欢 state=100
+            lambdaQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN);
+            List<DownStorageCageDetails> cageDetails = downStorageCageDetailsMapper.selectList(lambdaQueryWrapper);
+            // Step 5: 鍒ゆ柇 down_storage_cage_details 缁撴灉鏁伴噺鏄惁涓�9锛屽鏋滄槸锛屽垯鎵ц鍙﹀涓�涓煡璇�
+            if (cageDetails.size() == 9) {
+                log.info("1銆佺瀛愭弧浜嗙殑鏃跺�欙紝鎸夌収绗煎唴娴佺▼鍗¢『搴忓嚭 GlassType鐩墠鏄祦绋嬪崱涓殑椤哄簭");
+                List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
+
+                List<String> flowCardIds = new ArrayList<>();
+                for (DownWorkstation workstation : workstationList) {
+                    flowCardIds.add(workstation.getFlowCardId());
+                }
+
+                if (flowCardIds.isEmpty()) {
+                    log.error("鏈壘鍒板搴旂殑 flow_card_id");
+                    return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+                }
+                LambdaQueryWrapper<DownStorageCageDetails> anotherQueryWrapper = Wrappers.lambdaQuery();
+
+                anotherQueryWrapper.orderByAsc(DownStorageCageDetails::getGlassType);
+                anotherQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds);
+                anotherQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN);
+                anotherQueryWrapper.last("LIMIT 1");
+                return downStorageCageDetailsMapper.selectList(anotherQueryWrapper);
+            } else {
+
+                // Step 1: 鏌ヨ DownWorkstation 琛ㄨ幏鍙栧搴� workstation_id 鐨� flow_card_id
+                List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
+
+                List<String> flowCardIds = new ArrayList<>();
+                for (DownWorkstation workstation : workstationList) {
+                    flowCardIds.add(workstation.getFlowCardId());
+                }
+                if (flowCardIds.isEmpty()) {
+                    log.error("2銆佹湭鎵惧埌瀵瑰簲鐨� flow_card_id");
+                    return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+                }
+                log.info("娴佺▼鍗�:{}", flowCardIds);
+                LambdaQueryWrapper<GlassInfo> queryWrapper2 = Wrappers.lambdaQuery();
+                queryWrapper2.select(GlassInfo::getFlowCardId,
+                        GlassInfo::getGlassId)
+                        .notInSql(GlassInfo::getGlassId, "SELECT glass_id FROM down_glass_info")
+                        .orderByAsc(GlassInfo::getGlassType)
+                        .last("LIMIT 1");
+
+                // 鏌ヨ GlassInfo 琛�
+                List<GlassInfo> glassInfos = glassInfoMapper.selectList(queryWrapper2);
+                if (glassInfos.isEmpty()) {
+                    log.error("鏈壘鍒板搴旂殑鐜荤拑淇℃伅");
+                    return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+                }
+                // Step 3: 鏋勯�犳煡璇� down_storage_cage_details 琛ㄧ殑鏉′欢
+                List<String> glassIds = glassInfos.stream().map(GlassInfo::getGlassId).collect(Collectors.toList());
+                LambdaQueryWrapper<DownStorageCageDetails> cageDetailsQueryWrapper = Wrappers.lambdaQuery();
+                cageDetailsQueryWrapper.in(DownStorageCageDetails::getGlassId, glassIds);
+                cageDetailsQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds);
+                cageDetailsQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN);
+                log.info("鎸夌収娴佺▼鍗$殑椤哄簭鍑�");
+                // Step 4: 鏌ヨ down_storage_cage_details 琛ㄥ苟杩斿洖缁撴灉
+                return downStorageCageDetailsMapper.selectList(cageDetailsQueryWrapper);
+            }
+
+
+    }
+
+
+
+
+    @Override
+    public boolean identWorn(String glassId, int ControlsId) {
+        List<DownStorageCageDetails> edgStorageCageDetails = baseMapper.selectList(new MPJLambdaQueryWrapper<DownStorageCageDetails>().selectAll(DownStorageCageDetails.class).eq(DownStorageCageDetails::getGlassId, glassId));
+        if (edgStorageCageDetails.size() == 1) {
+            DownStorageCageDetails item = edgStorageCageDetails.get(0);
+            item.setState(ControlsId);
+            baseMapper.update(item, new MPJLambdaWrapper<DownStorageCageDetails>().selectAll(DownStorageCageDetails.class).eq(DownStorageCageDetails::getGlassId, glassId));
+            return true;
+        }
+
+        return false;
+    }
+
+
+
+
+
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
new file mode 100644
index 0000000..b204f0c
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
@@ -0,0 +1,226 @@
+package com.mes.downstorage.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.toolkit.JoinWrappers;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.common.config.Const;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
+import com.mes.downglassinfo.entity.DownGlassTask;
+import com.mes.downglassinfo.service.DownGlassTaskService;
+import com.mes.downstorage.entity.DownStorageCage;
+import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.downstorage.entity.request.CacheWornRequest;
+import com.mes.downstorage.mapper.DownStorageCageDetailsMapper;
+import com.mes.downstorage.mapper.DownStorageCageMapper;
+import com.mes.downstorage.service.DownStorageCageDetailsService;
+import com.mes.downstorage.service.DownStorageCageService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Slf4j
+@Service
+public class DownStorageCageServiceImpl extends ServiceImpl<DownStorageCageMapper, DownStorageCage> implements DownStorageCageService {
+    @Autowired(required = false)
+    private DownStorageCageMapper downStorageCageMapper;
+
+    @Autowired
+    private GlassInfoService glassInfoService;
+
+    @Autowired
+    private DownGlassTaskService downGlassTaskService;
+    @Autowired
+    private DownStorageCageDetailsService downStorageCageDetailsService;
+    @Autowired
+    private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
+    @Autowired
+    DamageService damageService;
+
+    @Override
+    public DownGlassTask createDownGlassTask(GlassInfo glassInfo, Integer startCell, Integer endCell, Integer taskType) {
+        DownGlassTask downGlassTask = new DownGlassTask();
+
+        BeanUtils.copyProperties(glassInfo, downGlassTask);
+
+        downGlassTask.setStartCell(startCell);
+        downGlassTask.setTaskType(taskType);
+        downGlassTask.setEndCell(endCell);
+        return downGlassTask;
+    }
+
+    @Override
+    public DownGlassTask createDownGlassTask(DownStorageCageDetails glassInfo, Integer startCell, Integer endCell, Integer taskType) {
+        DownGlassTask downGlassTask = new DownGlassTask();
+
+        BeanUtils.copyProperties(glassInfo, downGlassTask);
+        downGlassTask.setStartCell(startCell);
+        downGlassTask.setTaskType(taskType);
+        downGlassTask.setEndCell(endCell);
+        return downGlassTask;
+    }
+
+
+    //鎵惧埌绌烘牸瀛�
+    @Override
+    public List<DownStorageCageDetails> selectCacheEmpty() {
+        return this.selectJoinList(DownStorageCageDetails.class,
+                JoinWrappers.lambda(DownStorageCage.class)
+                        .selectAll(DownStorageCage.class)
+                        .leftJoin(DownStorageCageDetails.class, on -> on
+                                .eq(DownStorageCageDetails::getDeviceId, DownStorageCage::getDeviceId)
+                                .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot)
+                                .eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN))
+                        .isNull(DownStorageCageDetails::getSlot)
+        );
+    }
+
+    //鎵惧埌绌烘牸瀛�
+    @Override
+    public DownStorageCage selectCacheEmpty(int currentSlot, boolean flag) {
+        List<DownStorageCage> emptyList = this.selectJoinList(DownStorageCage.class,
+                JoinWrappers.lambda(DownStorageCage.class)
+                        .selectAll(DownStorageCage.class)
+                        .leftJoin(DownStorageCageDetails.class, on -> on
+                                .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot)
+                                .eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN))
+                        .isNull(DownStorageCageDetails::getSlot)
+                        .eq(DownStorageCage::getEnableState, Const.SLOT_ON)
+                        .last("order by abs(t.slot - " + currentSlot + ")  asc limit 2")
+        );
+        if (flag && CollectionUtil.isNotEmpty(emptyList)) {
+            return emptyList.get(0);
+        }
+        if (CollectionUtil.isEmpty(emptyList) || emptyList.size() == 1) {
+            return null;
+        }
+        return emptyList.get(0);
+    }
+
+
+    @Override
+    public List<DownStorageCageDetails> selectCacheMax() {
+        return baseMapper.selectJoinList(DownStorageCageDetails.class,
+                JoinWrappers.lambda(DownStorageCage.class)
+                        // 娣诲姞 DownStorageCage 鐨� enableState 涓� 1 鐨勬潯浠�
+                        .select(DownStorageCageDetails::getFlowCardId)
+                        .leftJoin(DownStorageCageDetails.class, on -> on
+                                .eq(DownStorageCageDetails::getDeviceId, DownStorageCage::getDeviceId)
+                                .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot)
+                                .eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN))
+                        .isNull(DownStorageCageDetails::getSlot)
+                        .eq(DownStorageCage::getEnableState, 1)
+                        .groupBy(DownStorageCageDetails::getFlowCardId) // 鏍规嵁 flowCardId 鍒嗙粍
+                        // 浣跨敤瀛愭煡璇㈠拰鎺掑簭鏉ヨ幏鍙栫浉鍚� FlowCardId 涓殑鏈�澶氳褰�
+                        .having("count(*) = (select max(cnt) from (select count(*) as cnt from down_storage_cage_details group by flow_card_id) as temp)")
+
+        );
+    }
+
+
+    @Override
+    public List<Map<String, Object>> selectDownStorageCages() {
+        return baseMapper.selectJoinMaps(JoinWrappers.lambda(DownStorageCage.class)
+                .selectAll(DownStorageCage.class)
+                .selectAs(DownStorageCageDetails::getId, "esdId")
+                .select(DownStorageCageDetails::getGlassId, DownStorageCageDetails::getWidth, DownStorageCageDetails::getHeight, DownStorageCageDetails::getId)
+                .leftJoin(DownStorageCageDetails.class, on -> on
+                        .eq(DownStorageCageDetails::getDeviceId, DownStorageCage::getDeviceId)
+                        .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot)
+                        .eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN))
+        );
+
+    }
+
+    /**
+     * 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愬惎鐢�/绂佺敤銆�
+     *
+     * @param downStorageCage
+     * @return
+     */
+    @Override
+    public boolean updateDownStorageCage(DownStorageCage downStorageCage) {
+        DownStorageCage downItem = baseMapper.selectById(downStorageCage.getId());
+        if (downItem != null) {
+            downItem.setEnableState(downStorageCage.getEnableState());
+            int rowsAffected = baseMapper.updateById(downItem);
+            if (rowsAffected > 0) {
+                return true;
+            } else {
+                return false;
+            }
+        } else {
+            return false;
+        }
+    }
+
+
+    /**
+     * 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
+     *
+     * @param downStorageCageId
+     * @param downStorageCageDetails
+     * @return
+     */
+    @Override
+    public boolean updateDownStorageCageDetails(int downStorageCageId, DownStorageCageDetails downStorageCageDetails) {
+        DownStorageCage downItem = baseMapper.selectById(downStorageCageId);
+        log.info("姝e父" + downItem);
+        if (downStorageCageDetails != null) {
+            DownStorageCageDetails edgDItem = downStorageCageDetailsMapper.selectById(downStorageCageDetails.getId());
+            //娣诲姞
+            if (edgDItem != null) {
+                //鍙紶鏍煎瓙  锛氱Щ闄ょ幓鐠�
+                DownStorageCageDetails newresult = downStorageCageDetailsMapper.selectById(downStorageCageDetails.getId());
+                newresult.setSlot(downItem.getSlot());
+                downStorageCageDetailsMapper.updateById(newresult);
+            }
+        }
+
+        if (downItem != null) {
+            //绉婚櫎
+            DownStorageCageDetails result = downStorageCageDetailsMapper
+                    .selectOne(new MPJLambdaWrapper<DownStorageCageDetails>()
+                            .eq(DownStorageCageDetails::getSlot, downStorageCageId)
+                    );
+            if (result != null) {
+                result.setSlot(0);
+                downStorageCageDetailsMapper.updateById(result);
+            }
+
+        }
+        return true;
+    }
+
+    @Override
+    public void deleteDownStorageCage(CacheWornRequest cacheWornRequest) {
+        Damage damage = new Damage();
+        BeanUtils.copyProperties(cacheWornRequest, damage);
+        damage.setType(cacheWornRequest.getState());
+        damage.setRemark("");
+        damage.setStatus(0);
+        damageService.insertDamage(damage);
+        downStorageCageDetailsService.update(new LambdaUpdateWrapper<DownStorageCageDetails>()
+                .set(DownStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+                .eq(DownStorageCageDetails::getGlassId, cacheWornRequest.getGlassId())
+                .eq(DownStorageCageDetails::getState,Const.GLASS_STATE_IN));
+
+    }
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
new file mode 100644
index 0000000..08c589a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
@@ -0,0 +1,155 @@
+package com.mes.downworkstation.controller;
+
+
+import com.mes.downworkstation.entity.DownWorkstation;
+import com.mes.downworkstation.entity.request.DownWorkRequest;
+import com.mes.downworkstation.service.DownWorkstationService;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.utils.RedisUtil;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+
+@RestController
+@Api(tags = "宸ヤ綅")
+@RequestMapping("/downWorkStation")
+public class DownWorkstationController {
+
+    @Autowired
+    private DownWorkstationService downWorkstationService;
+    @Autowired
+    private GlassInfoService glassInfoService;
+    @Resource
+    private RedisUtil redisUtil;
+
+    @ApiOperation("鑾峰彇宸ヤ綅淇℃伅")
+    @GetMapping("/getone")
+    public Result getOneDownWorkstations() {
+        try {
+            List<DownWorkstation> data = downWorkstationService.getoneDownWorkstations(1, 6);
+            // 鏋勫缓绗﹀悎棰勬湡鏍煎紡鐨勫搷搴旀暟鎹�
+            return Result.build(200, "鑾峰彇宸ヤ綅淇℃伅鎴愬姛", data);
+        } catch (Exception e) {
+            e.printStackTrace();
+            // 濡傛灉鍑虹幇寮傚父锛岃繑鍥為敊璇俊鎭�
+            return Result.build(500, "鑾峰彇宸ヤ綅淇℃伅澶辫触", 1);
+        }
+    }
+
+    @ApiOperation("鑾峰彇娴佺▼鍗″彿")
+    @GetMapping("/getflowCardId")
+    public Result getflowCardId() {
+
+        try {
+            List<Map<String, Object>> data = glassInfoService.getFlowCardId();
+            return Result.build(200, "鑾峰彇娴佺▼鍗″彿鎴愬姛", data);
+        } catch (Exception e) {
+            return Result.build(500, "鑾峰彇娴佺▼鍗″彿澶辫触", 1);
+        }
+    }
+
+
+    //缁戝畾鏋跺瓙
+    @ApiOperation("缁戝畾鏋跺瓙")
+    @PostMapping("/updateFlowCardId")
+    public Result updateFlowCardId(@RequestBody DownWorkRequest request) {
+
+        // 缁戝畾鏋跺瓙
+        downWorkstationService.updateFlowCardIdAndCount(request.getFlowCardId(), request.getWorkstationId(), request.getLayer());
+
+        return Result.build(200, "缁戝畾鏋跺瓙鎴愬姛", 1);
+    }
+
+    @ApiOperation("娓呴櫎宸ヤ綅淇℃伅")
+    @PostMapping("/clear")
+    public Result clearWorkstationInfo(@RequestBody Map<String, Object> requestData) {
+        // 璋冪敤 DownWorkstationService 涓殑鏂规硶娓呴櫎鎸囧畾宸ヤ綅ID鐨勪俊鎭�
+        int workstationId = (int) requestData.get("workstationId");
+
+        downWorkstationService.clearFlowCardId(workstationId);
+        return Result.build(200, "娓呴櫎宸ヤ綅淇℃伅鎴愬姛", 1);
+
+
+        // 鏋勫缓鍝嶅簲鏁版嵁
+
+    }
+
+
+    @ApiOperation("鑾峰彇宸ヤ綅鏄剧ず鍥�1")
+    @GetMapping("/getwo")
+    public Result getwo() {
+
+        try {
+            List<Map<String, Object>> data = downWorkstationService.getTotalGlassDimensionsByWorkstation(1, 3);
+            return Result.build(200, "鑾峰彇宸ヤ綅鏄剧ず鍥�1鎴愬姛", data);
+        } catch (Exception e) {
+            return Result.build(200, "鑾峰彇宸ヤ綅鏄剧ず鍥�1澶辫触", 1);
+        }
+    }
+
+    @ApiOperation("鑾峰彇宸ヤ綅鏄剧ず鍥�2")
+    @GetMapping("/getwo2")
+    public Result getwo2() {
+
+        try {
+            List<Map<String, Object>> data = downWorkstationService.getTotalGlassDimensionsByWorkstation(4, 6);
+            return Result.build(200, "鑾峰彇宸ヤ綅鏄剧ず鍥�2鎴愬姛", data);
+        } catch (Exception e) {
+            return Result.build(200, "鑾峰彇宸ヤ綅鏄剧ず鍥�2澶辫触", 1);
+
+        }
+    }
+
+    @ApiOperation("  鍔熻兘锛氬宸ヤ綅杩涜銆愬惎鐢�/绂佺敤銆�")
+    @PostMapping("/updateDownWorkstation")
+    @ResponseBody
+    public Result updateDownWorkstation(@RequestBody DownWorkstation downWorkstation) {
+        boolean isSucess = downWorkstationService.updateDownWorkstationstate(downWorkstation);
+        return Result.build(200, "鏇存崲鎴愬姛", isSucess);
+    }
+
+    @ApiOperation("鍏抽棴宸ヤ綅宸叉弧璀︽姤")
+    @PostMapping("/closeAlarmSignal")
+    @ResponseBody
+    public Result<String> closeAlarmSignal() {
+        return Result.build(200, "鏇存崲鎴愬姛", downWorkstationService.closeAlarmSignal());
+    }
+
+    @ApiOperation("鏄惁鑷姩鎵撳嵃")
+    @PostMapping("/autoPrint")
+    public Result autoPrint(Boolean flag) {
+        downWorkstationService.autoPrint(flag);
+        return Result.build(200, "淇敼鎴愬姛", redisUtil.getCacheObject("autoPrint"));
+    }
+
+    @ApiOperation("鏂板铏氭嫙宸ヤ綅")
+    @PostMapping("/insertDownWorkstation")
+    public Result insertDownWorkstation() {
+        downWorkstationService.insertDownWorkstation();
+        return Result.build(200, "鏂板鎴愬姛", 1);
+    }
+
+    @ApiOperation("鍒犻櫎铏氭嫙宸ヤ綅")
+    @PostMapping("/deleteDownWorkstation")
+    public Result deleteDownWorkstation(DownWorkstation downWorkstation) {
+        downWorkstationService.removeById(downWorkstation.getWorkstationId());
+        return Result.build(200, "鍒犻櫎鎴愬姛", 1);
+    }
+
+}
+
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationTaskController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationTaskController.java
new file mode 100644
index 0000000..396acb1
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationTaskController.java
@@ -0,0 +1,19 @@
+package com.mes.downworkstation.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@RestController
+@RequestMapping("/downWorkstationTask")
+public class DownWorkstationTaskController {
+
+}
+
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstation.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstation.java
new file mode 100644
index 0000000..896ac12
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstation.java
@@ -0,0 +1,76 @@
+package com.mes.downworkstation.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DownWorkstation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 涓嬬墖宸ヤ綅琛╥d
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 宸ヤ綅id
+     */
+    private Integer workstationId;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String flowCardId;
+
+    /**
+     * 璁惧id
+     */
+    private Integer deviceId;
+
+    /**
+     * 鍚敤鐘舵��
+     */
+    private Integer enableState;
+
+    /**
+     * 宸ヤ綔鐘舵��
+     */
+    private Integer workState;
+
+    /**
+     * 灞傛暟
+     */
+    private Integer layer;
+
+
+    /**
+     * 鎬绘暟閲�
+     */
+    private Integer totalQuantity;
+
+    /**
+     * 钀芥灦鏁伴噺
+     */
+    private Integer racksNumber;
+    /**
+     * 浜哄伐涓嬬墖鏁伴噺
+     */
+    private Integer otherNumber;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java
new file mode 100644
index 0000000..f5300b1
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java
@@ -0,0 +1,72 @@
+package com.mes.downworkstation.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.data.annotation.Id;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DownWorkstationTask implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 瀹�
+     */
+    private double width;
+
+    /**
+     * 楂�
+     */
+    private double height;
+
+    /**
+     * 鑶滅郴
+     */
+    private String filmsid;
+
+    /**
+     * 鍘氬害
+     */
+    private double thickness;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String flowCardId;
+
+    /**
+     * 浠诲姟鐘舵��
+     */
+    private Integer state;
+    /**
+     * 鐜荤拑ID
+     */
+    private String glassId;
+
+    /**
+     * 宸ヤ綅id
+     */
+    private String workstationid;
+
+    /**
+     * 鏈哄櫒浜�
+     */
+    private String Robot;
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstionAndDownGlassinfo.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstionAndDownGlassinfo.java
new file mode 100644
index 0000000..9c101f9
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstionAndDownGlassinfo.java
@@ -0,0 +1,80 @@
+package com.mes.downworkstation.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+
+public class DownWorkstionAndDownGlassinfo {
+    /**
+     * 涓嬬墖宸ヤ綅琛╥d
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 宸ヤ綅id
+     */
+    private Integer workstationId;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String flowCardId;
+
+    /**
+     * 璁惧id
+     */
+    private Integer deviceId;
+
+    /**
+     * 鍚敤鐘舵��
+     */
+    private Integer enableState;
+
+    /**
+     * 宸ヤ綔鐘舵��
+     */
+    private Integer workState;
+
+
+    private Integer totalQuantity;
+
+    private Integer racksNumber;
+
+    /**
+     * 椤哄簭
+     */
+    private Integer sequence;
+
+    /**
+     * 瀹�
+     */
+    private double width;
+
+    /**
+     * 楂�
+     */
+    private double height;
+    private double totalwidth;
+
+    private double totalheight;
+    /**
+     * 鍘氬害
+     */
+    private double thickness;
+
+
+    private String Filmsid;
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/dto/DownGlassInfoDTO.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/dto/DownGlassInfoDTO.java
new file mode 100644
index 0000000..7d9a7c0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/dto/DownGlassInfoDTO.java
@@ -0,0 +1,37 @@
+package com.mes.downworkstation.entity.dto;
+
+import com.mes.glassinfo.entity.GlassInfo;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/6/21 16:06
+ * @Description:
+ */
+@Data
+public class DownGlassInfoDTO {
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String flowCardId;
+    /**
+     * 灞傛暟
+     */
+    private Integer layer;
+    /**
+     * 宸插嚭鐗囨暟閲�
+     */
+    private Integer count;
+
+    /**
+     * 钀芥灦鏁伴噺
+     */
+    private Integer racksNumber;
+
+    /**
+     * 娴佺▼鍗℃湭杩涚墖鐨勭幓鐠冧俊鎭�
+     */
+    private List<GlassInfo> glassInfoList;
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/request/DownWorkRequest.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/request/DownWorkRequest.java
new file mode 100644
index 0000000..9a72eae
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/request/DownWorkRequest.java
@@ -0,0 +1,28 @@
+package com.mes.downworkstation.entity.request;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/7/10 14:10
+ * @Description:
+ */
+@Data
+public class DownWorkRequest {
+
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String flowCardId;
+
+    /**
+     * 宸ヤ綅id
+     */
+    private int workstationId;
+
+    /**
+     * 灞傛暟
+     */
+    private int layer;
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationMapper.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationMapper.java
new file mode 100644
index 0000000..b674ea7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationMapper.java
@@ -0,0 +1,26 @@
+package com.mes.downworkstation.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.downworkstation.entity.DownWorkstation;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+
+
+@Repository
+@InterceptorIgnore(tenantLine = "true")
+@DS("northGlassMes") // 鎸囧畾浣跨敤 northGlassMes 鏁版嵁婧�
+
+public interface DownWorkstationMapper extends MPJBaseMapper<DownWorkstation> {
+
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationTaskMapper.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationTaskMapper.java
new file mode 100644
index 0000000..3deb5ca
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationTaskMapper.java
@@ -0,0 +1,26 @@
+package com.mes.downworkstation.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.downworkstation.entity.DownWorkstation;
+import com.mes.downworkstation.entity.DownWorkstationTask;
+
+import java.util.List;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+
+@DS("salve_northGlassMes")
+
+public interface DownWorkstationTaskMapper extends BaseMapper<DownWorkstationTask> {
+
+    List<DownWorkstationTask> selectList();
+
+    DownWorkstation selectdownWorkstationstate();
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java
new file mode 100644
index 0000000..3538593
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java
@@ -0,0 +1,86 @@
+package com.mes.downworkstation.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.downworkstation.entity.DownWorkstation;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface DownWorkstationService extends IService<DownWorkstation> {
+
+    /**
+     * @param startId
+     * @param endId
+     * @return 鑾峰彇宸ヤ綅淇℃伅
+     */
+    List<DownWorkstation> getoneDownWorkstations(int startId, int endId);
+
+    /**
+     * @param workstationId
+     * @return 鑾峰彇鎬绘暟閲�
+     */
+    int getTotalQuantity(int workstationId);
+
+    /**
+     * @param workstationId
+     * @return 鑾峰彇钀芥灦鏁伴噺
+     */
+    int getRacksNumber(int workstationId);
+
+    /**
+     * @param workstationId 娓呯┖鏋跺瓙淇℃伅
+     */
+    void clearFlowCardId(int workstationId);
+
+    /**
+     * @param flowCardId
+     * @param racksnumber 鏇存柊钀芥灦鏁伴噺
+     */
+    void updateracksnumber(String flowCardId, int racksnumber);
+
+
+    /**
+     * @param flowCardId
+     *
+     * @param workstationId
+     * @return 鏇存柊鏋跺瓙鍜屾暟閲�
+     */
+    void updateFlowCardIdAndCount(String flowCardId, int workstationId,int layer);
+
+
+
+    /**
+     * @return //
+     * 宸ヤ綅鏄剧ず
+     */
+    List<Map<String, Object>> getTotalGlassDimensionsByWorkstation(int start,int end);
+
+
+    /**
+     * @param flowcardid
+     * 鏍规嵁娴佺▼鍗″彿鏌ヨ
+     * @return
+     */
+    DownWorkstation selectByFlowCardId(String flowcardid);
+
+
+    /**
+     * @param downWorkstation
+     * @returnq 鍚敤绂佺敤
+     */
+    boolean updateDownWorkstationstate(DownWorkstation downWorkstation);
+
+    String closeAlarmSignal();
+
+    void autoPrint(Boolean flag);
+
+    void insertDownWorkstation();
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java
new file mode 100644
index 0000000..7b11958
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java
@@ -0,0 +1,34 @@
+package com.mes.downworkstation.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downworkstation.entity.DownWorkstationTask;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface DownWorkstationTaskService extends IService<DownWorkstationTask> {
+    /**
+     * @param downGlassInfo 鎻掑叆浠诲姟
+     */
+    void insertdownWorkstationtask(DownGlassInfo downGlassInfo,String workstationid);
+
+    /**
+     * @param downWorkstationTask 鏇存柊浠诲姟鐘舵��
+     */
+    void updateTaskState(DownWorkstationTask downWorkstationTask);
+
+    /**
+     * @return 鑾峰彇浠诲姟鐘舵�佷负1鐨勪俊鎭�
+     */
+    List<DownWorkstationTask> getTaskState();
+
+    void deleteTask(DownWorkstationTask downWorkstationTask);
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java
new file mode 100644
index 0000000..8c530ad
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java
@@ -0,0 +1,244 @@
+package com.mes.downworkstation.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.query.MPJQueryWrapper;
+import com.mes.common.S7object;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
+import com.mes.device.PlcParameterObject;
+import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.mapper.DownGlassInfoMapper;
+import com.mes.downworkstation.entity.DownWorkstation;
+import com.mes.downworkstation.entity.DownWorkstationTask;
+import com.mes.downworkstation.entity.DownWorkstionAndDownGlassinfo;
+import com.mes.downworkstation.mapper.DownWorkstationMapper;
+import com.mes.downworkstation.mapper.DownWorkstationTaskMapper;
+import com.mes.downworkstation.service.DownWorkstationService;
+import com.mes.downworkstation.service.DownWorkstationTaskService;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.utils.RedisUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@Service
+public class DownWorkstationServiceImpl extends ServiceImpl<DownWorkstationMapper, DownWorkstation> implements DownWorkstationService {
+
+    @Autowired
+    private DownWorkstationMapper downWorkstationMapper;
+    @Autowired(required = false)
+    private DownWorkstationTaskMapper downWorkstationTaskMapper;
+    @Autowired
+    private DownGlassInfoMapper downGlassInfoMapper;
+    @Autowired
+    private GlassInfoService glassInfoService;
+    @Autowired
+    private DamageService damageservice;
+
+    @Autowired
+    private DownWorkstationTaskService downWorkstationTaskService;
+    @Resource
+    private RedisUtil redisUtil;
+
+    //    @Override
+//    public List<DownWorkstation> gettwoDownWorkstations() {
+//        return downWorkstationMapper.getDownWorkstationsInRange(6,10);
+//    }
+//鑾峰彇鎬绘暟閲�
+    @Override
+    public int getTotalQuantity(int workstationId) {
+        DownWorkstation result = baseMapper.selectOne(new QueryWrapper<DownWorkstation>().lambda()
+                .select(DownWorkstation::getTotalQuantity)
+                .eq(DownWorkstation::getWorkstationId, workstationId));
+
+        return result != null ? result.getTotalQuantity() : 0;
+    }
+
+
+    //宸ヤ綅鏄剧ず
+    @Override
+    public List<Map<String, Object>> getTotalGlassDimensionsByWorkstation(int start, int end) {
+        MPJQueryWrapper<DownWorkstation> queryWrapper = new MPJQueryWrapper<>();
+        queryWrapper.select("t.workstation_id", "t.flow_card_id", "COALESCE(SUM(b.width), 0) AS totalwidth", "COALESCE(SUM(b.height), 0) AS totalheight,total_quantity,racks_number,other_number")
+                .leftJoin("down_glass_info b on t.flow_card_id = b.flow_card_id")
+                .groupBy("t.workstation_id", "t.flow_card_id")
+                .orderByAsc("t.workstation_id").between("t.workstation_id", start, end)
+
+        ;
+
+        List<DownWorkstionAndDownGlassinfo> workstationList = downWorkstationMapper.selectJoinList(DownWorkstionAndDownGlassinfo.class, queryWrapper);
+        // List<DownWorkstionAndDownGlassinfo> workstationList = null;
+        List<Map<String, Object>> result = new ArrayList<>();
+        for (DownWorkstionAndDownGlassinfo downWorkstionAndDownGlassinfo : workstationList) {
+            Map<String, Object> rack = new HashMap<>();
+            Map<String, Object> item = new HashMap<>();
+            item.put("height", downWorkstionAndDownGlassinfo.getTotalheight());
+            item.put("width", downWorkstionAndDownGlassinfo.getTotalwidth());
+            item.put("fillColor", "yellow");
+            item.put("content", downWorkstionAndDownGlassinfo.getFlowCardId());
+            if (downWorkstionAndDownGlassinfo.getFlowCardId() != "" && downWorkstionAndDownGlassinfo.getFlowCardId() != null && downWorkstionAndDownGlassinfo.getTotalQuantity() == downWorkstionAndDownGlassinfo.getRacksNumber() + downWorkstionAndDownGlassinfo.getRacksNumber()) {
+                item.put("fullCardColor", "red");
+            } else {
+                item.put("fullCardColor", "blue");
+            }
+
+            // 鏌ヨ DownGlassInfo 骞舵坊鍔犲埌 item 涓�
+            MPJQueryWrapper<DownGlassInfo> glassInfoQueryWrapper = new MPJQueryWrapper<>();
+            glassInfoQueryWrapper.select("*"); // 鏌ヨ鎵�鏈夊垪
+            glassInfoQueryWrapper.eq("flow_card_id", downWorkstionAndDownGlassinfo.getFlowCardId());
+            List<DownGlassInfo> downGlassInfoList = downGlassInfoMapper.selectList(glassInfoQueryWrapper);
+
+
+            if (!downGlassInfoList.isEmpty()) {
+
+                item.put("downGlassInfoList", downGlassInfoList);
+
+            }
+
+            rack.put("item", item);
+            result.add(rack);
+        }
+        log.info("result" + (result));
+        return result; // 杩斿洖鏈�缁堢粨鏋�
+    }
+
+
+    //鏍规嵁鏉′欢鑾峰彇钀芥灦鏁伴噺
+    @Override
+    public int getRacksNumber(int workstationId) {
+        QueryWrapper<DownWorkstation> queryWrapper = new QueryWrapper<>();
+        queryWrapper.select("racks_number")
+                .eq("workstation_id", workstationId);
+
+        DownWorkstation result = baseMapper.selectOne(queryWrapper);
+        return result != null ? result.getRacksNumber() : 0;
+    }
+
+    //鏍规嵁鏉′欢鑾峰彇宸ヤ綅鐜荤拑淇℃伅
+    @Override
+    public List<DownWorkstation> getoneDownWorkstations(int startId, int endId) {
+        QueryWrapper<DownWorkstation> queryWrapper = new QueryWrapper<>();
+        queryWrapper.between("workstation_id", startId, endId);
+
+        return baseMapper.selectList(queryWrapper);
+    }
+
+
+//
+
+
+    @Override
+    public void updateracksnumber(String flowCardId, int racksNumber) {
+        UpdateWrapper<DownWorkstation> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.set("racks_number", racksNumber).eq("flow_card_id", flowCardId);
+        baseMapper.update(new DownWorkstation(), updateWrapper);
+    }
+
+
+    @Override
+    public void updateFlowCardIdAndCount(String flowCardId, int workstationId, int layer) {
+        int glassInfoCount = glassInfoService.getGlassInfoCountByFlowCardId(flowCardId, layer);
+        QueryWrapper<Damage> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("process_id", flowCardId);
+        queryWrapper.eq("technology_number", layer);
+        int otherNumber = damageservice.count(queryWrapper);
+        UpdateWrapper<DownWorkstation> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.set("total_quantity", glassInfoCount)
+                .set("flow_card_id", flowCardId)
+                .set("layer", layer)
+                .set("other_number", otherNumber)
+                .eq("workstation_id", workstationId);
+//        .eq("id", workstationId);
+        this.update(updateWrapper);
+
+    }
+
+    @Override
+    public void clearFlowCardId(int workstationId) {
+        UpdateWrapper<DownWorkstation> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.set("flow_card_id", null)
+                .set("total_quantity", 0)
+                .set("racks_number", 0)
+                .set("other_number", 0)
+                .set("layer", null)
+                .eq("workstation_id", workstationId);
+
+        baseMapper.update(new DownWorkstation(), updateWrapper);
+    }
+
+
+    @Override
+    public DownWorkstation selectByFlowCardId(String flowcardid) {
+        QueryWrapper<DownWorkstation> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("flow_card_id", flowcardid);
+
+        return baseMapper.selectOne(queryWrapper);
+    }
+
+
+    @Transactional
+    public void crossDatabaseQuery() {
+        // 浠� MySQL 鏁版嵁搴撲腑鏌ヨ鏁版嵁锛屽彧杩斿洖涓�鏉$鍚堟潯浠剁殑鏁版嵁
+        DownWorkstation downWorkstation = downWorkstationTaskMapper.selectdownWorkstationstate();
+
+        // 浠� SQL Server 鏁版嵁搴撲腑鏌ヨ鏁版嵁
+        List<DownWorkstationTask> downWorkstationTasks = downWorkstationTaskMapper.selectList();
+
+    }
+
+
+    @Override
+    public boolean updateDownWorkstationstate(DownWorkstation downWorkstation) {
+
+        DownWorkstation downWork = baseMapper.selectById(downWorkstation.getId());
+
+        if (downWork != null) {
+
+            downWork.setEnableState(downWorkstation.getEnableState());
+
+            baseMapper.updateById(downWork);
+
+            return true;
+        } else {
+
+            return false;
+        }
+    }
+
+    @Override
+    public String closeAlarmSignal() {
+        PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+        S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("alarm_signal").getAddress(), 0);
+        return "success";
+    }
+
+    @Override
+    public void autoPrint(Boolean flag) {
+        redisUtil.setCacheObject("autoPrint", flag);
+    }
+
+    @Override
+    public void insertDownWorkstation() {
+        DownWorkstation downWorkstation = new DownWorkstation();
+        downWorkstation.setWorkstationId(7);
+        downWorkstation.setTotalQuantity(0);
+        downWorkstation.setRacksNumber(0);
+        downWorkstation.setOtherNumber(0);
+        downWorkstation.setDeviceId(3);
+        downWorkstation.setEnableState(1);
+        downWorkstation.setWorkState(1);
+        baseMapper.insert(downWorkstation);
+    }
+
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java
new file mode 100644
index 0000000..813c149
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java
@@ -0,0 +1,88 @@
+package com.mes.downworkstation.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.entity.DownGlassTask;
+import com.mes.downworkstation.entity.DownWorkstationTask;
+import com.mes.downworkstation.mapper.DownWorkstationTaskMapper;
+import com.mes.downworkstation.service.DownWorkstationTaskService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Service
+public class DownWorkstationTaskServiceImpl extends ServiceImpl<DownWorkstationTaskMapper, DownWorkstationTask> implements DownWorkstationTaskService {
+
+
+    public void insertdownWorkstationtask(DownGlassInfo downGlassInfo,String workstationid) {
+        DownWorkstationTask entity = new DownWorkstationTask();
+        // 鏌ヨ褰撳墠鏈�澶х殑 id 鍊�
+        Long maxId = getMaxId();
+        // 濡傛灉娌℃湁璁板綍锛屽垯灏� id 璁剧疆涓� 1锛涘惁鍒欙紝灏� id 璁剧疆涓哄綋鍓嶆渶澶� id 鍊煎姞 1
+        Long newId = (maxId == null) ? 1 : maxId + 1;
+
+
+        BeanUtils.copyProperties(downGlassInfo,entity);
+        entity.setId(newId); // 璁剧疆鎵嬪姩閫掑鐨� id
+        entity.setState(1);
+        entity.setWorkstationid(workstationid);
+        baseMapper.insert(entity);
+    }
+
+
+
+
+// 鏌ヨ鏈�澶х殑 ID
+    private Long getMaxId() {
+        QueryWrapper<DownWorkstationTask> wrapper = new QueryWrapper<>();
+        wrapper.select("MAX(id) as max_id");
+        List<Object> list = baseMapper.selectObjs(wrapper);
+        if (list != null && !list.isEmpty()) {
+            Object obj = list.get(0);
+            if (obj != null) {
+                return Long.parseLong(obj.toString());
+            }
+        }
+        // 濡傛灉娌℃湁鏌ヨ鍒扮粨鏋滐紝鍒欒繑鍥� 0
+        return 0L;
+    }
+    @Override
+    public List<DownWorkstationTask> getTaskState() {
+        QueryWrapper<DownWorkstationTask> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("state", 1);
+        return baseMapper.selectList(queryWrapper);
+    }
+
+    @Override
+    public void updateTaskState(DownWorkstationTask downWorkstationTask) {
+        LambdaUpdateWrapper<DownWorkstationTask> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+
+        lambdaUpdateWrapper.set(DownWorkstationTask::getState, 2)
+                .eq(DownWorkstationTask::getGlassId, downWorkstationTask.getGlassId());
+
+        baseMapper.update(new DownWorkstationTask(), lambdaUpdateWrapper);
+    }
+
+
+    @Override
+    public void deleteTask(DownWorkstationTask downWorkstationTask) {
+        LambdaQueryWrapper<DownWorkstationTask> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(DownWorkstationTask::getGlassId, downWorkstationTask.getGlassId());
+
+        baseMapper.delete(queryWrapper);
+    }
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
new file mode 100644
index 0000000..9e3bf8d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
@@ -0,0 +1,738 @@
+package com.mes.job;
+
+import cn.hutool.core.lang.Assert;
+import cn.smallbun.screw.core.util.CollectionUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.mes.common.S7object;
+import com.mes.common.config.Const;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
+import com.mes.device.PlcParameterObject;
+import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.entity.DownGlassTask;
+import com.mes.downglassinfo.service.DownGlassInfoService;
+import com.mes.downglassinfo.service.DownGlassTaskService;
+import com.mes.downstorage.entity.DownStorageCage;
+import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.downstorage.service.DownStorageCageDetailsService;
+import com.mes.downstorage.service.DownStorageCageService;
+import com.mes.downworkstation.entity.DownWorkstation;
+import com.mes.downworkstation.entity.dto.DownGlassInfoDTO;
+import com.mes.downworkstation.service.DownWorkstationService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.tools.S7control;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/5/8 8:17
+ * @Description:
+ */
+@Component
+@Slf4j
+public class DownLoadCacheGlassTask {
+
+    @Autowired
+    DownGlassTaskService downGlassTaskService;
+    @Autowired
+    GlassInfoService glassInfoService;
+    @Autowired
+    DownStorageCageDetailsService downStorageCageDetailsService;
+    @Autowired
+    DownStorageCageService downStorageCageService;
+    @Autowired
+    DownWorkstationService downWorkstationService;
+    @Autowired
+    DownGlassInfoService downGlassInfoService;
+    @Autowired
+    DamageService damageService;
+
+    @Value("${mes.throughWidth}")
+    private Integer throughWidth;
+
+    @Value("${mes.throughHeight}")
+    private Integer throughHeight;
+
+    @Value("${mes.maxWidth}")
+    private Integer maxWidth;
+
+    @Value("${mes.maxHeight}")
+    private Integer maxHeight;
+
+    @Value("${mes.minWidth}")
+    private Integer minWidth;
+
+    @Value("${mes.minHeight}")
+    private Integer minHeight;
+
+
+    @Scheduled(fixedDelay = 300)
+    public void plcHomeEdgTask() {
+        PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+        String requestWord = plcParameterObject.getPlcParameter("requestWord").getValue();
+        String glassIdeValue = plcParameterObject.getPlcParameter("requestID").getValue();
+        //A08  A09琛ㄧず绾胯矾鐩稿悓  鍙仛绛変环  鏃犳暟鎹浆int寮傚父
+        String out06Glassstate = plcParameterObject.getPlcParameter("glassStatus06").getValue();
+        String out08Glassstate = plcParameterObject.getPlcParameter("glassStatus08").getValue();
+        String out11Glassstate = plcParameterObject.getPlcParameter("glassStatus11").getValue();
+        String out13Glassstate = plcParameterObject.getPlcParameter("glassStatus13").getValue();
+        String confirmationWrodValue = plcParameterObject.getPlcParameter("confirmationWord").getValue();
+        String confirmationWrodAddress = plcParameterObject.getPlcParameter("confirmationWord").getAddress();
+        String currentSlot = plcParameterObject.getPlcParameter("currentCell").getValue();
+
+
+        log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{}锛岃幏鍙栧埌鐨勭‘璁ゅ瓧涓猴細{}锛岃幏鍙栧埌鐨勫嚭鐗囩姸鎬佸垎鍒负锛歡06:{}銆乬08:{}銆乬11:{}銆乬13:{},褰撳墠鏍煎瓙鍙蜂负锛歿}",
+                requestWord, glassIdeValue, confirmationWrodValue, out06Glassstate, out08Glassstate, out11Glassstate, out13Glassstate, currentSlot);
+        if ("0".equals(requestWord)) {
+            if ("0".equals(confirmationWrodValue)) {
+                log.info("2銆佽幏鍙栧埌鐨勮姹傚瓧涓�0锛屼笖纭瀛椾负0锛屼笉鎵ц浠诲姟");
+                return;
+            }
+            log.info("2銆佽幏鍙栧埌鐨勮姹傚瓧涓�0锛屽皢纭瀛楁敼涓�0");
+            S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, 0);
+            return;
+        }
+        if (!"0".equals(confirmationWrodValue)) {
+            log.info("2銆佽幏鍙栧埌鐨勮姹傚瓧涓嶄负0锛屽皢纭瀛椾笉涓�0锛岀洿鎺ョ粨鏉�");
+            return;
+        }
+        if ("1".equals(requestWord)) {
+            log.info("2銆佽繘鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�");
+            inTo(glassIdeValue, requestWord, currentSlot);
+        } else if ("2".equals(requestWord)) {
+            //09绌洪棽 锛�1      10绌洪棽 锛�2        閮界┖闂诧細3    鍏朵粬0
+            log.info("2銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛屽嚭鐗囦换鍔�");
+            outTo(out06Glassstate, out08Glassstate, out11Glassstate, out13Glassstate, glassIdeValue, currentSlot);
+        } else if ("3".equals(requestWord)) {
+            log.info("2銆佽繘鐗囧拰鍑虹墖閮界┖闂诧紝鎵ц鍑虹墖浠诲姟");
+            //鍔犵瀛愰噷闈㈡槸鍚︽湁鐜荤拑锛屾湁鍏堝嚭锛屾棤鐜荤拑鍏堣繘
+            boolean outFlase = outTo(out06Glassstate, out08Glassstate, out11Glassstate, out13Glassstate, glassIdeValue, currentSlot);
+            log.info("鍑虹墖浠诲姟鏄惁瀹屾垚锛歿},澶辫触涓旂幓鐠僫d:{}涓嶄负绌哄垯鎵ц杩涚墖浠诲姟", outFlase, glassIdeValue);
+            if (!outFlase && StringUtils.isNotBlank(glassIdeValue)) {
+                inTo(glassIdeValue, requestWord, currentSlot);
+            }
+        }
+    }
+
+    @Scheduled(fixedDelay = 300)
+    public void plcShelfFull() {
+        List<DownWorkstation> list = downGlassInfoService.queryWorkStationIsFull();
+        S7control s7control = S7object.getinstance().plccontrol;
+        PlcParameterObject plcMesObject = S7object.getinstance().PlcMesObject;
+        if (CollectionUtils.isNotEmpty(list)) {
+            s7control.writeWord(plcMesObject.getPlcParameter("alarm_signal").getAddress(), 1);
+        } else {
+            s7control.writeWord(plcMesObject.getPlcParameter("alarm_signal").getAddress(), 0);
+        }
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void dealDamageTask() {
+        Date startDate = new Date();
+        log.info("涓嬬墖鐮存崯鐜荤拑娓呴櫎浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+        List<DownGlassTask> downGlassTaskList = downGlassTaskService.list(new LambdaQueryWrapper<DownGlassTask>()
+                .in(DownGlassTask::getTaskType, Const.GLASS_CACHE_TYPE_OUT_ALL).in(DownGlassTask::getTaskStatus, Const.GLASS_STATE_DAMAGE_TAKE));
+        if (CollectionUtils.isNotEmpty(downGlassTaskList)) {
+            //鑾峰彇鐮存崯/鎷胯蛋鐜荤拑id
+            List<String> glassList = downGlassTaskList.stream().map(DownGlassTask::getGlassId).collect(Collectors.toList());
+            //灏嗕换鍔¤〃涓殑鏁版嵁鍒犻櫎
+            downGlassTaskService.remove(new LambdaQueryWrapper<DownGlassTask>().in(DownGlassTask::getTaskType, Const.GLASS_CACHE_TYPE_OUT_ALL).in(DownGlassTask::getGlassId, glassList));
+            //娓呴櫎涓嬬墖鐜荤拑淇℃伅琛ㄦ暟鎹�
+            downGlassInfoService.remove(new LambdaQueryWrapper<DownGlassInfo>().in(DownGlassInfo::getGlassId, glassList));
+            //涓嬬墖鏁伴噺-1
+            for (DownGlassTask downGlassTask : downGlassTaskList
+            ) {
+                if (Const.GLASS_CACHE_TYPE_OUT_ALL.contains(downGlassTask.getTaskType())) {
+                    downWorkstationService.update(
+                            new LambdaUpdateWrapper<DownWorkstation>()
+                                    .setSql("racks_number = racks_number-1")
+                                    .eq(DownWorkstation::getWorkstationId, downGlassTask.getEndCell())
+                    );
+
+                }
+            }
+            List<Damage> damageList = downGlassTaskList.stream().map(e -> {
+                Damage damage = new Damage();
+                damage.setGlassId(e.getGlassId());
+                damage.setLine(Const.TEMPERING_OUT_TARGET_POSITION);
+                damage.setWorkingProcedure("涓嬬墖");
+                damage.setRemark("涓嬬墖");
+                damage.setStatus(0);
+                damage.setType(e.getTaskStatus());
+                return damage;
+            }).collect(Collectors.toList());
+            damageService.batchInsertDamage(damageList);
+        }
+        Date endDate = new Date();
+        log.info("鏈浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime());
+    }
+
+    /**
+     * 鏇存柊宸茬粦瀹氬伐浣嶆祦绋嬪崱鐨勭牬鎹�/鎷胯蛋鐨勬暟閲忎俊鎭�
+     */
+    @Scheduled(fixedDelay = 1000)
+    public void updateWorkStationOtherCount() {
+        Date startDate = new Date();
+        log.info("涓嬬墖鐮存洿鏂版崯鐜荤拑鏁伴噺浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+        //鑾峰彇宸茬粦瀹氭祦绋嬪崱鐨勫伐浣嶄俊鎭�
+        List<DownWorkstation> downWorkstationList = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>()
+                .isNotNull(DownWorkstation::getFlowCardId)
+                .ne(DownWorkstation::getFlowCardId, "")
+                .orderByDesc(DownWorkstation::getWorkstationId));
+        for (DownWorkstation downWorkstation : downWorkstationList) {
+            //鏇存柊宸ヤ綅鍏朵粬鐜荤拑淇℃伅鐨勬暟閲�
+            QueryWrapper<Damage> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("process_id", downWorkstation.getFlowCardId());
+            queryWrapper.gt("type", 3);
+            if (downWorkstation.getLayer() != 0) {
+                queryWrapper.eq("technology_number", downWorkstation.getLayer());
+            }
+            int otherNumber = damageService.count(queryWrapper);
+            downWorkstationService.update(new LambdaUpdateWrapper<DownWorkstation>().set(DownWorkstation::getOtherNumber, otherNumber)
+                    .eq(DownWorkstation::getWorkstationId, downWorkstation.getWorkstationId()));
+        }
+        Date endDate = new Date();
+        log.info("涓嬬墖鐮存洿鏂版崯鐜荤拑鏁伴噺浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime());
+    }
+
+    public void inTo(String glassId, String requestWord, String currentSlot) {
+        log.info("1銆佹寜鐓х幓鐠僫d:{}鑾峰彇鐜荤拑灏忕墖淇℃伅,褰撳墠鏍煎瓙涓�:{}", glassId, currentSlot);
+        //娣诲姞杩涚墖浠诲姟  鏌ユ壘绌烘牸
+        DownStorageCage nearestEmpty = downStorageCageService.selectCacheEmpty(Integer.parseInt(currentSlot), Boolean.FALSE);
+        Assert.isTrue(null != nearestEmpty, "鏍煎瓙宸叉弧,鏃犳硶鎵ц杩涚墖鎿嶄綔");
+        log.info("2銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", nearestEmpty);
+        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
+        Assert.isFalse(null == glassInfo, "鐜荤拑淇℃伅涓嶅瓨鍦�");
+        double glassWidth = Math.max(glassInfo.getWidth(), glassInfo.getHeight());
+        double glassHeight = Math.min(glassInfo.getWidth(), glassInfo.getHeight());
+        if ("1".equals(requestWord) && (glassWidth > throughWidth || glassHeight > throughHeight)) {
+            log.info("鐜荤拑褰撳墠灏哄瀹斤細{}锛岄珮锛歿}鍙兘鐩撮�氾紝褰撳墠杩涚墖浠诲姟闇�绛夊緟", glassWidth, glassHeight);
+            return;
+        }
+        Boolean checkFlag = Boolean.FALSE;
+        //鐜荤拑灏哄鏄惁璧颁汉宸ヤ笅鐗�
+        if (glassWidth > maxWidth || glassHeight > maxHeight || glassWidth < minWidth || glassHeight < minHeight) {
+            log.info("璇ョ幓鐠冨昂瀵镐笉绗﹀悎瑕佹眰锛岄渶瑕佽蛋浜哄伐涓嬬墖鐩存帴杩涚墖");
+        } else {
+            log.info("璇ョ幓鐠冨昂瀵搁潪浜哄伐涓嬬墖");
+            //鑾峰彇璇ョ幓鐠冪殑娴佺▼鍗℃槸鍚﹀凡缁戝畾鏋跺瓙
+            DownWorkstation one;
+            if (glassInfo.getCombine() != 0) {
+                one = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>()
+                        .eq(DownWorkstation::getFlowCardId, glassInfo.getFlowCardId()));
+            } else {
+                one = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>()
+                        .eq(DownWorkstation::getLayer, glassInfo.getLayer())
+                        .eq(DownWorkstation::getFlowCardId, glassInfo.getFlowCardId()));
+            }
+
+            //鏄惁宸茬粡缁戝畾   true锛氬凡缁戝畾    false:鏈粦瀹�
+            Boolean isBind = Boolean.FALSE;
+            if (null != one) {
+                log.info("璇ユ祦绋嬪崱宸茬粦瀹氭灦瀛�");
+                isBind = Boolean.TRUE;
+                checkFlag = multilayerCheck(glassInfo, isBind);
+            }
+            if (!checkFlag && !isBind) {
+                log.info("璇ョ幓鐠冪殑娴佺▼鍗℃湭缁戝畾鏋跺瓙锛岃幏鍙栨槸鍚︽湁绌烘灦瀛�");
+                List<DownWorkstation> list = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>()
+                        .and(on -> on.isNull(DownWorkstation::getFlowCardId).or().eq(DownWorkstation::getFlowCardId, "")).orderByDesc(DownWorkstation::getWorkstationId));
+                if (CollectionUtils.isNotEmpty(list)) {
+                    log.info("鏈夌┖鏋跺瓙,灏嗘祦绋嬪崱涓庢灦瀛愬ソ缁戝畾锛屾墽琛岃繘鐗囦换鍔� 缁撴潫");
+                    //缁戝畾娴佺▼鍗�
+                    if (glassInfo.getCombine() == 0) {
+                        downWorkstationService.updateFlowCardIdAndCount(glassInfo.getFlowCardId(), list.get(0).getWorkstationId(), glassInfo.getLayer());
+                    } else {
+                        downWorkstationService.updateFlowCardIdAndCount(glassInfo.getFlowCardId(), list.get(0).getWorkstationId(), 0);
+                    }
+//                      downWorkstationService.updateFlowCardIdAndCount(glassInfo.getFlowCardId(), list.get(0).getId(), glassInfo.getLayer());
+                    checkFlag = Boolean.TRUE;
+                }
+            }
+            if (!checkFlag) {
+                log.info("鏃犵┖鏋跺瓙,鑾峰彇宸茬粦瀹氭灦瀛愮殑娴佺▼鍗′俊鎭�,鏌ョ湅鐜荤拑淇℃伅鏄惁鍙瀵硅皟");
+                List<DownGlassInfoDTO> downGlassInfoDTOList = downGlassInfoService.queryWorkStationIsIn(Const.WORK_STATION_ALL, Boolean.FALSE);
+                log.info("鑾峰彇鏋跺瓙涓婂凡缁戝畾娴佺▼鍗¤惤鏋剁殑鏁伴噺鍙婃湭钀芥灦鐨勭幓鐠冩暟鎹細{}", downGlassInfoDTOList);
+                if (CollectionUtils.isEmpty(downGlassInfoDTOList)) {
+                    log.info("宸茬粦瀹氭祦绋嬪崱鍧囨棤鏈惤鏋剁幓鐠冿紝璇峰強鏃跺鐞嗘灦瀛愪笂鐨勭幓鐠冿紝娓呴櫎娴佺▼鍗�,鎵ц杩涚墖浠诲姟");
+                } else {
+                    //鏇挎崲鐜荤拑淇℃伅
+                    endLoop:
+                    for (DownGlassInfoDTO e : downGlassInfoDTOList) {
+                        List<GlassInfo> glassInfoList = e.getGlassInfoList();
+                        List<GlassInfo> glassInfoTempList = glassInfoList.stream().filter(item -> item.getWidth() == glassInfo.getWidth() && item.getHeight() == glassInfo.getHeight()
+                                && item.getThickness() == glassInfo.getThickness() && item.getFilmsid().equals(glassInfo.getFilmsid())).collect(Collectors.toList());
+                        if (CollectionUtils.isNotEmpty(glassInfoTempList)) {
+                            for (GlassInfo item : glassInfoTempList) {
+                                //鐜荤拑鏄惁涓哄灞傦細1銆佸厛鑾峰彇褰撳墠娴佺▼鍗¤惤鏋舵渶澶氱殑灞傛暟锛屽鏋滀负绌猴紝琛ㄦ槑鏈粦瀹氭祦绋嬪崱锛屾湭钀芥灦锛岀劧鍚庢寜鐓ф槸鍚﹀彲缁戝畾鏋跺瓙鍐冲畾鏄惁鏇挎崲銆傦紙鍙拷鐣ヤ笉璁★紝鏈牎楠屼粎鍦ㄥ墠涓�娆¤皟鐢ㄨ捣浣滅敤锛�
+//                                          2銆佸垽鏂惤鏋舵渶澶氱殑灞傛暟鏄惁涓哄綋鍓嶆浛鎹㈢幓鐠冪殑灞傛暟锛屾槸  鍒欒蛋鏇挎崲閫昏緫杩斿洖true
+//                                          3銆佷笉鏄渶澶氱殑灞傛暟锛岃幏鍙栬惤鏋舵渶澶氬眰鏁扮殑鐩稿悓娆″簭鐨勭幓鐠冨昂瀵镐笌褰撳墠鏇挎崲鐜荤拑鐨勫昂瀵告瘮杈冿紝鐩稿悓璧版浛鎹紝鍚﹀垯缁х画寰幆
+//                                          4銆佸崟灞傜幓鐠冪洿鎺ヨ蛋鏇挎崲
+                                checkFlag = multilayerCheck(item, Boolean.FALSE);
+                                if (checkFlag) {
+                                    //鐜荤拑鏇挎崲 浠呮浛鎹㈡祦绋嬪崱id鍙婂眰鏁�
+                                    String tempFlowCardId = item.getFlowCardId();
+                                    Integer tempLayer = item.getLayer();
+                                    String flowCardId = glassInfo.getFlowCardId();
+                                    Integer layer = glassInfo.getLayer();
+                                    log.info("鏇挎崲娴佺▼鍗′俊鎭�,褰撳墠鐜荤拑淇℃伅:{}鐨勬祦绋嬪崱鍙穥}鍙婂眰鏁皗},鏇挎崲鍚庣幓鐠冧俊鎭�:{}鐨勬祦绋嬪崱鍙穥}鍙婂眰鏁皗}",
+                                            item, glassInfo, flowCardId, layer, tempFlowCardId, tempLayer);
+                                    glassInfo.setFlowCardId(tempFlowCardId);
+                                    glassInfo.setLayer(tempLayer);
+                                    glassInfoService.updateById(glassInfo);
+                                    item.setFlowCardId(flowCardId);
+                                    item.setLayer(layer);
+                                    glassInfoService.updateById(item);
+                                    break endLoop;
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        //灏嗕换鍔℃彃鍏ョ悊鐗囩璇︽儏琛�
+        DownStorageCageDetails downStorageCageDetails = new DownStorageCageDetails();
+        BeanUtils.copyProperties(glassInfo, downStorageCageDetails);
+        //褰撻渶瑕佸悎骞惰惤鏋舵椂涓嶇粦瀹氬眰鍙�
+        if (glassInfo.getCombine() != 0) {
+            downStorageCageDetails.setLayer(0);
+        }
+        downStorageCageDetails.setState(Const.GLASS_STATE_IN);
+        downStorageCageDetails.setSlot(nearestEmpty.getSlot());
+        downStorageCageDetails.setDeviceId(nearestEmpty.getDeviceId());
+        downStorageCageDetailsService.save(downStorageCageDetails);
+        //        鐢熸垚杩涚墖浠诲姟
+        initDownGlassTask(glassInfo, 0, nearestEmpty.getSlot(), Const.GLASS_CACHE_TYPE_IN);
+        //鍒犻櫎鐞嗙墖绗艰〃鎷胯蛋/鐮存崯鏁版嵁鏁版嵁
+        damageService.deleteByGlassId(glassInfo.getGlassId());
+    }
+
+    public Boolean outTo(String glassStatus06, String out08Glassstate, String glassStatus11, String
+            glassStatus13, String glassId, String currentSlot) {
+        if ("2".equals(glassStatus06) && "2".equals(glassStatus11) && "2".equals(glassStatus13)) {
+            log.info("G06銆丟11銆丟13鍒嗗埆涓簕},{}銆亄}闈炶嚜鍔ㄧ姸鎬侊紝鏃犳硶鍑虹墖", glassStatus06, glassStatus11, glassStatus13);
+            return Boolean.FALSE;
+        }
+        List<DownStorageCageDetails> tempList = downStorageCageDetailsService.list(new LambdaQueryWrapper<DownStorageCageDetails>()
+                .eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN));
+        log.info("鍑虹墖1銆佺鍐呯殑鐜荤拑淇℃伅鏈夛細{}", tempList);
+        //鑾峰彇寰呰繘鐗囩幓鐠�
+        DownStorageCageDetails cageDetails = new DownStorageCageDetails();
+        if (StringUtils.isNotBlank(glassId)) {
+            GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
+            BeanUtils.copyProperties(glassInfo, cageDetails);
+            //褰撻渶瑕佸悎骞惰惤鏋舵椂涓嶇粦瀹氬眰鍙�
+            if (glassInfo.getCombine() != 0) {
+                cageDetails.setLayer(0);
+            }
+            //鑾峰彇褰撳墠绗煎瓙绌烘牸淇℃伅
+            DownStorageCage empty = downStorageCageService.selectCacheEmpty(Integer.parseInt(currentSlot), Boolean.TRUE);
+            cageDetails.setSlot(empty.getSlot());
+            cageDetails.setDeviceId(empty.getDeviceId());
+            tempList.add(cageDetails);
+        }
+        log.info("鍑虹墖2锛氱鍐呯幓鐠冪殑鏁版嵁(鍖呮嫭寰呰繘鐗�)鏈夛細{}", tempList);
+        if (CollectionUtils.isEmpty(tempList)) {
+            log.info("绗煎唴娌℃湁鐜荤拑,鏃犳硶鎵ц鍑虹墖");
+            return Boolean.FALSE;
+        }
+        //浼樺厛璧�08鐗囧彴鐨勭幓鐠冿細璧颁汉宸ヤ笅鐗囨垨鑰�2鍙锋満姊拌噦
+        //1銆�08鍙板繖纰岋紝浠呰蛋1鍙锋満姊拌噦
+        //2銆�08鍙扮┖闂诧紝鍏堣蛋鎵斿伐涓嬬墖鎴�2鍙锋満姊拌噦锛屾棤鐜荤拑鍑虹墖 鍦ㄨ蛋1鍙锋満姊拌噦
+        //鏈烘鑷傝绂佺敤鐨勬儏鍐典笅涓嶈兘缁х画鍚戠鐢ㄧ殑鏈烘鑷傛斁鐜荤拑
+        Boolean flag08 = "1".equals(out08Glassstate) ? Boolean.TRUE : Boolean.FALSE;
+        flag08 = true;
+        if (!flag08) {
+            generateTaskByShelf(glassStatus06, glassStatus11, flag08, glassStatus13, tempList, cageDetails, glassId);
+        } else {
+            if (!generateTaskByShelf(glassStatus06, glassStatus11, flag08, glassStatus13, tempList, cageDetails, glassId)) {
+                return generateTaskByShelf(glassStatus06, glassStatus11, !flag08, glassStatus13, tempList, cageDetails, glassId);
+            }
+        }
+        return Boolean.TRUE;
+    }
+
+    private Boolean multilayerCheck(GlassInfo glassInfo, boolean isBind) {
+        //鏌ヨ璇ユ祦绋嬪崱鏄惁涓哄灞�
+        if (glassInfo.getTotalLayer() > 1) {
+            log.info("鎸夌収娴佺▼鍗¤幏鍙栧綋鍓嶆祦绋嬪崱鍚勫眰宸茶惤鏋舵暟閲�");
+            DownGlassInfoDTO downGlassInfoDTO = downGlassInfoService.queryDownGlassMaxLayer(glassInfo.getFlowCardId());
+            if (null == downGlassInfoDTO) {
+                if (isBind) {
+                    return Boolean.TRUE;
+                } else {
+                    log.info("鏋跺瓙宸茬粡鍗犳弧锛屽灞傜幓鐠冩棤娉曟壘鍒板搴旂殑鏍煎瓙锛岄渶鎵ц鏇挎崲鐜荤拑鐨勬搷浣�");
+                    return Boolean.FALSE;
+                }
+            }
+            if (downGlassInfoDTO.getLayer().equals(glassInfo.getLayer())) {
+                log.info("褰撳墠鐜荤拑鐨勬祦绋嬪湪鏋跺瓙涓婅惤鏋舵渶澶� 鐩存帴杩涚墖");
+                return Boolean.TRUE;
+            }
+            Integer sequence = downGlassInfoService.queryMaxSequence(glassInfo.getFlowCardId(), glassInfo.getLayer());
+            log.info("鑾峰彇褰撳墠鐜荤拑闇�瑕佹斁鐨勬搴忥細绗煎唴鍚屾祦绋� 鍚屽眰鏁扮殑閫氳揪娆″簭+1:{}", sequence);
+            DownGlassInfo downGlassInfo = downGlassInfoService.getOne(new LambdaQueryWrapper<DownGlassInfo>()
+                    .eq(DownGlassInfo::getFlowCardId, downGlassInfoDTO.getFlowCardId())
+                    .eq(DownGlassInfo::getLayer, downGlassInfoDTO.getLayer()).eq(DownGlassInfo::getSequence, sequence));
+            log.info("鎷垮綋鍓嶇増搴忚幏鍙栫幓鐠冧俊鎭瘂}锛屾寜鐓ф搴忓垽鏂綋鍓嶇幓鐠冩槸鍚﹀昂瀵稿搴旂殑涓婏紙涓庢暟閲忔渶澶氱殑娆″簭姣旇緝锛夈��", downGlassInfo);
+            if (null != downGlassInfoDTO && downGlassInfo.getWidth() == glassInfo.getWidth() && downGlassInfo.getHeight() == glassInfo.getHeight()) {
+                log.info("鐩稿悓娆″簭鐜荤拑瀵瑰簲涓婏紝鍙墽琛岃繘鐗囦换鍔�");
+                return Boolean.TRUE;
+            } else {
+                log.info("鍚屾搴忕幓鐠冨搴斾笉涓婏紝闇�鎵ц鏇挎崲鐜荤拑鐨勬搷浣�");
+                return Boolean.FALSE;
+            }
+        } else {
+            log.info("闈炲灞傜幓鐠冿紝鐩存帴杩涚墖");
+            return Boolean.TRUE;
+        }
+    }
+
+    private Boolean generateTaskByShelf(String glassStatus06, String glassStatus11, Boolean flag08, String
+            glassStatus13, List<DownStorageCageDetails> tempList, DownStorageCageDetails cageDetails, String glassId) {
+        //鑾峰彇2涓満姊拌噦鑼冨洿鍐呯殑鏋跺瓙缁戝畾鐨勬祦绋嬪崱淇℃伅
+        List<Integer> workList = new ArrayList();
+        if (flag08) {
+            if (!"2".equals(glassStatus11)) {
+                List<Integer> wroklistOne = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>()
+                        .eq(DownWorkstation::getEnableState, Const.SLOT_ON).in(DownWorkstation::getWorkstationId, Const.G11_WORK_STATION))
+                        .stream()
+                        .map(DownWorkstation::getWorkstationId)
+                        .collect(Collectors.toList());
+                workList.addAll(wroklistOne);
+            }
+        } else {
+            if (!"2".equals(glassStatus06)) {
+                List<Integer> wroklistTwo = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>()
+                        .eq(DownWorkstation::getEnableState, Const.SLOT_ON).in(DownWorkstation::getWorkstationId, Const.G06_WORK_STATION))
+                        .stream()
+                        .map(DownWorkstation::getWorkstationId)
+                        .collect(Collectors.toList());
+                workList.addAll(wroklistTwo);
+            }
+        }
+        List<Integer> workStationAll = Arrays.asList(1, 2, 3, 4, 5, 6);
+        //鑾峰彇闈炴湰娆¤惤鏋剁殑鏋跺瓙淇℃伅
+        List<Integer> offWorkStationList = workStationAll.stream().filter(e -> !workList.contains(e)).collect(Collectors.toList());
+        List<DownStorageCageDetails> list = new ArrayList();
+        //鏄惁鏈夌┖鏋跺瓙 true锛氭湁   false:鏃�
+        Boolean isEmptyShelf = Boolean.FALSE;
+        //瀵圭鍐呯幓鐠冭繘琛岃繃婊わ紝浠呭嚭绗﹀悎閫昏緫鐨勭幓鐠�
+        if (CollectionUtils.isNotEmpty(workList)) {
+            List<DownWorkstation> downWorkstationList = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>()
+                    .eq(DownWorkstation::getEnableState, Const.SLOT_ON).in(DownWorkstation::getWorkstationId, workList));
+            if (CollectionUtils.isEmpty(downWorkstationList)) {
+                log.info("绗煎瓙琚鐢紝鏃犳硶璧版満姊拌噦涓嬬墖");
+                //璧颁汉宸ヤ笅鐗�
+                if (flag08 && !"2".equals(glassStatus13)) {
+                    list = tempList.stream().filter(item -> {
+                        double firstLength = Math.max(item.getWidth(), item.getHeight());
+                        double secondLength = Math.min(item.getWidth(), item.getHeight());
+                        return firstLength > maxWidth || secondLength > maxHeight;
+                    }).collect(Collectors.toList());
+                }
+            } else {
+                //鑾峰彇鍙惤鏋剁殑鐨勬灦瀛愪俊鎭紙鍖呮嫭绌烘灦瀛愶級
+                //浠呰幏鍙栫┖鏋跺瓙淇℃伅
+                List<DownWorkstation> workstationsIsNotBind = downWorkstationList.stream().filter(item -> StringUtils.isBlank(item.getFlowCardId())).collect(Collectors.toList());
+                //灏嗘灦瀛愮殑娴佺▼鍗″彿鍙婂眰鏁颁綔涓簁ey  涓嶅瓨鍦ㄧ┖鏋跺瓙鐨勬儏鍐�
+                if (CollectionUtils.isEmpty(workstationsIsNotBind)) {
+                    log.info("涓嶅瓨鍦ㄦ湭缁戝畾娴佺▼鍗℃灦瀛�");
+                    //绛涢�夊嚭瀵瑰簲鏋跺瓙宸茬粦瀹氭祦绋嬪崱鍙笅鐗囩殑鐜荤拑
+                    Map<String, List<DownWorkstation>> listMap = downWorkstationList.stream()
+                            .filter(item -> StringUtils.isNotBlank(item.getFlowCardId())).collect(Collectors.groupingBy(item -> item.getFlowCardId() + ":" + item.getLayer()));
+                    //杩囨护绛涢�夎幏鍙栨灦瀛愪笂瀵瑰簲娴佺▼鍗�+灞傛暟鐨勭瀛愬唴鐨勭幓鐠冧俊鎭�
+
+                    list = tempList.stream().filter(item -> listMap.containsKey(item.getFlowCardId() + ":" + item.getLayer())).collect(Collectors.toList());
+                    if (CollectionUtils.isEmpty(list) && flag08 && !"2".equals(glassStatus13)) {
+                        list = tempList.stream().filter(item -> {
+                            double firstLength = Math.max(item.getWidth(), item.getHeight());
+                            double secondLength = Math.min(item.getWidth(), item.getHeight());
+                            return firstLength > maxWidth || secondLength > maxHeight;
+                        }).collect(Collectors.toList());
+                    }
+                } else {
+                    log.info("瀛樺湪鏈粦瀹氭祦绋嬪崱鏋跺瓙锛岀洿鎺ヨ幏鍙栫鍐呮墍鏈夌幓鐠�,涓旀湭缁戝畾鏋跺瓙鐨勭幓鐠冧俊鎭紙閮藉彲浠ュ嚭鐨勭幓鐠冿級");
+                    //鑾峰彇绂佺敤鍙婇潪鏈満姊拌噦鐨勬灦瀛愮殑娴佺▼鍙峰強灞傛暟瀵瑰簲鐨勭幓鐠冧俊鎭�
+                    List<DownWorkstation> downWorkstationOffList = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>()
+                            .and(i -> i.in(DownWorkstation::getWorkstationId, offWorkStationList).or().eq(DownWorkstation::getEnableState, Const.SLOT_OFF)));
+                    //鑾峰彇琚鐢ㄧ殑娴佺▼鍗′俊鎭� 涓虹┖锛氬皢杩斿洖绗煎唴鐨勬墍鏈夌幓鐠冧俊鎭�
+                    if (CollectionUtils.isEmpty(downWorkstationOffList)) {
+                        list = tempList;
+                    } else {
+                        //绗煎唴瀛樺湪鏃犳硶鍑虹墖鐨勭幓鐠冧俊鎭紝杩囨护鏃犳硶鍑虹墖鐨勭幓鐠冧俊鎭紝浠呰幏鍙栧彲鍑虹墖鐨勭幓鐠冧俊鎭�   鏃犳硶鍑虹墖鐨勭幓鐠冧负锛氭湭缁戝畾鏋跺瓙銆佺粦瀹氭灦瀛愯绂佺敤銆侀潪鏈満姊拌噦瀵瑰簲鐨勬灦瀛�
+                        Map<String, List<DownWorkstation>> listOffMap = downWorkstationOffList.stream().filter(item -> StringUtils.isNotBlank(item.getFlowCardId())).collect(Collectors.groupingBy(item -> item.getFlowCardId() + ":" + item.getLayer()));
+                        list = tempList.stream().filter(item -> !listOffMap.containsKey(item.getFlowCardId() + ":" + item.getLayer())).collect(Collectors.toList());
+                    }
+                    //绌烘灦瀛愯〃绀虹疆涓簍rue
+                    isEmptyShelf = Boolean.TRUE;
+                }
+            }
+        } else {
+            if (flag08 && !"2".equals(glassStatus13)) {
+                //鐩存帴璧颁汉宸ヤ笅鐗�
+                list = tempList.stream().filter(item -> {
+                    double firstLength = Math.max(item.getWidth(), item.getHeight());
+                    double secondLength = Math.min(item.getWidth(), item.getHeight());
+                    return firstLength > maxWidth || secondLength > maxHeight;
+                }).collect(Collectors.toList());
+            }
+        }
+        if (CollectionUtils.isEmpty(list)) {
+            log.info("绗煎唴鐜荤拑鏃犳硶鎵ц鍑虹墖");
+            return Boolean.FALSE;
+        }
+        //鑾峰彇鍏蜂綋鍑洪偅涓�鐗囩幓鐠�
+        //tao:浜哄伐--> 鎵�鏈夋灦瀛愰兘鏈粦瀹氭椂杩涜缁戝畾 --->鏈夋湭缁戝畾鏋跺瓙鏃惰繘琛岀粦瀹� --->缁戝畾杩囨祦绋嬪崱鐨勭幓鐠�-->鐜荤拑娴佺▼鍗″灞�--->鐜荤拑娴佺▼鍗″崟灞�
+        String tempGlassId = null;
+        Boolean isNeedBind = Boolean.FALSE;
+
+        for (DownStorageCageDetails item : list) {
+            double firstLength = Math.max(item.getWidth(), item.getHeight());
+            double secondLength = Math.min(item.getWidth(), item.getHeight());
+            if (firstLength > maxWidth || secondLength > maxHeight) {
+                if (flag08 && !"2".equals(glassStatus13)) {
+                    log.info("鐜荤拑瀹藉害鎴栭珮搴﹁秴鍑洪槇鍊硷紝鎵ц浜哄伐涓嬬墖");
+                    tempGlassId = item.getGlassId();
+                    break;
+                }
+            }
+        }
+        loop:
+        if (StringUtils.isBlank(tempGlassId)) {
+            //鑾峰彇姝e湪钀芥灦鐨勭粦瀹氭祦绋嬪崱鐨勪俊鎭�(娴佺▼鍗°�佸眰鏁般�佽惤鏋舵暟閲�)
+            //钀芥灦鐜荤拑鏁颁负0锛屽嵆浣跨粦瀹氫簡娴佺▼鍗★紝涔熸棤娉曟壘鍒板搴旂殑鏋跺瓙淇℃伅锛屽彧鑳介噸鏂扮粦瀹�
+            List<DownGlassInfoDTO> downGlassInfoDTOList = downGlassInfoService.queryWorkStationFlowCard(workList);
+            List<String> downGlassFlowList = downGlassInfoDTOList.stream().map(item -> item.getFlowCardId() + ":" + item.getLayer()).collect(Collectors.toList());
+            if (CollectionUtils.isEmpty(downGlassFlowList)) {
+                //鏋跺瓙閮芥湭缁戝畾娴佺▼鍗★紝鍑虹鍐呭瓙鏁伴噺鏈�澶氬昂瀵告渶澶х殑鐜荤拑id,鏃�  鍒欒繑鍥炴壂鎻忔壂鍒扮殑鐜荤拑id杩涜鍑虹墖
+                tempGlassId = downStorageCageDetailsService.getGlassInfoMaxCount(glassId, offWorkStationList);
+                isNeedBind = Boolean.TRUE;
+                break loop;
+            }
+            //灏嗙瀛愬唴鐨勭幓鐠冭繘琛岃繃婊わ紝浠呰幏鍙栨棤娉曡惤鏋剁殑娴佺▼鍗$幓鐠�
+            //tao:褰撴湁绌烘灦鏃朵紭鍏堝绗煎唴鍙嚭鐗囦笖鏈粦鏋跺瓙鐨勭幓鐠冭繘鍑虹粦鏋跺苟鍑虹墖
+            List<DownStorageCageDetails> noDownLoadList = list.stream().filter(item -> !downGlassFlowList.contains(item.getFlowCardId() + ":" + item.getLayer()))
+                    .collect(Collectors.toList());
+            if (CollectionUtils.isNotEmpty(noDownLoadList)) {
+                //鏄惁鏈夌┖鏋跺瓙
+//                List<DownWorkstation> emptyShelfList = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>()
+//                        .isNull(DownWorkstation::getFlowCardId));
+                if (isEmptyShelf) {
+                    //鏋跺瓙閮芥湭缁戝畾娴佺▼鍗★紝鍑虹鍐呭瓙鏁伴噺鏈�澶氬昂瀵告渶澶х殑鐜荤拑id,鏃�  鍒欒繑鍥炴壂鎻忔壂鍒扮殑鐜荤拑id杩涜鍑虹墖
+                    tempGlassId = downStorageCageDetailsService.getGlassInfoMaxCount(glassId, offWorkStationList);
+                    isNeedBind = Boolean.TRUE;
+                    break loop;
+                }
+            }
+            //灏嗙瀛愬唴鐨勭幓鐠冭繘琛岃繃婊わ紝浠呰幏鍙栧彲钀芥灦鐨勬祦绋嬪崱鐜荤拑
+            List<DownStorageCageDetails> downLoadList = list.stream().filter(item -> downGlassFlowList.contains(item.getFlowCardId() + ":" + item.getLayer())).collect(Collectors.toList());
+            if (CollectionUtils.isEmpty(downLoadList)) {
+                //涓嶆墽琛屽嚭鐗囦换鍔★紝绗煎唴娌℃湁鍚堥�傜殑鍑虹墖鐜荤拑
+                return Boolean.FALSE;
+            }
+            //灏嗙鍐呯幓鐠冪殑娴佺▼鍗�+灞傚彿 鍜岃惤鏋剁殑娴佺▼鍗� 鍘婚噸锛屽緱鍑哄睍绀烘棤娉曡惤鏋剁殑鐜荤拑锛屽垽鏂幓鐠冩暟鏄惁瓒呰繃闃堝��
+            //绗煎唴鐜荤拑鏄惁鍙惤鏋�:绗煎唴鏄惁鏈夐渶瑕佷腑绌�
+            List<DownStorageCageDetails> multiLayerList = list.stream().filter(item -> item.getTotalLayer() >= 2).collect(Collectors.toList());
+            if (CollectionUtils.isNotEmpty(multiLayerList)) {
+                for (DownStorageCageDetails item : multiLayerList) {
+                    DownGlassInfoDTO downGlassInfoDTO = downGlassInfoService.queryDownGlassMaxLayer(item.getFlowCardId());
+                    if (null == downGlassInfoDTO) {
+//                    鍘嗗彶钀芥灦鐜荤拑鎸夌収鐩稿叧娴佺▼鍗″彇鏁版嵁搴撴湭鎵惧埌鏈�澶氱幓鐠冧俊鎭紝琛ㄦ槑褰撳墠娴佺▼鍗′笅鐨勬湁灞傜殑鐜荤拑鍧囨湭钀芥灦锛岀洿鎺ュ彲鍑哄綋鍓嶇幓鐠�
+                        tempGlassId = item.getGlassId();
+                        log.info("褰撳墠娴佺▼鍗′笉瀛樺湪钀芥灦鐨勭幓鐠冿紝鍙洿鎺ュ嚭鐗囪惤鏋讹紝鐜荤拑id:{}", tempGlassId);
+                        break loop;
+                    }
+                    if (downGlassInfoDTO.getLayer().equals(downGlassInfoDTO.getLayer())) {
+                        tempGlassId = item.getGlassId();
+                        log.info("褰撳墠鐜荤拑鐨勬祦绋嬪湪鏋跺瓙涓婅惤鏋舵渶澶�,鐩存帴鍑虹墖锛岀幓鐠僫d:{}", tempGlassId);
+                        break loop;
+                    }
+                    Integer sequence = downGlassInfoService.queryMaxSequence(item.getFlowCardId(), item.getLayer());
+                    log.info("鑾峰彇褰撳墠鐜荤拑闇�瑕佹斁鐨勬搴忥細绗煎唴鍚屾祦绋� 鍚屽眰鏁扮殑钀芥灦娆″簭+1:{}", sequence);
+                    DownGlassInfo downGlassInfo = downGlassInfoService.getOne(new LambdaQueryWrapper<DownGlassInfo>()
+                            .eq(DownGlassInfo::getFlowCardId, downGlassInfoDTO.getFlowCardId())
+                            .eq(DownGlassInfo::getLayer, downGlassInfoDTO.getLayer()).eq(DownGlassInfo::getSequence, sequence));
+                    if (null != downGlassInfoDTO && downGlassInfo.getWidth() == item.getWidth() && downGlassInfo.getHeight() == item.getHeight()) {
+                        tempGlassId = item.getGlassId();
+                        log.info("鐩稿悓娆″簭鐜荤拑瀵瑰簲涓婏紝鍙墽琛岃繘鐗囦换鍔★紝鐜荤拑id:{}", tempGlassId);
+                        break loop;
+                    }
+                }
+            }
+
+            Map<String, List<DownStorageCageDetails>> singleLayerMap = list.stream().filter(item -> item.getTotalLayer() == 1)
+                    .collect(Collectors.groupingBy(item -> item.getFlowCardId() + item.getLayer(), Collectors.toList()));
+            if (StringUtils.isBlank(tempGlassId)) {
+                if (CollectionUtils.isNotEmpty(singleLayerMap)) {
+                    //鑾峰彇宸茶惤鏋舵祦绋嬪崱淇℃伅锛屾寜钀芥灦鏁伴噺鎺掑簭
+                    for (DownGlassInfoDTO e : downGlassInfoDTOList) {
+                        List<DownStorageCageDetails> downStorageCageDetails = singleLayerMap.get(e.getFlowCardId() + e.getLayer());
+                        if (CollectionUtils.isNotEmpty(downStorageCageDetails)) {
+                            tempGlassId = downStorageCageDetails.get(0).getGlassId();
+                            break;
+
+                        }
+                    }
+                }
+            }
+        }
+        if (StringUtils.isBlank(tempGlassId)) {
+            log.info("娌℃湁鎵惧埌鍙互涓嬬墖鐨勭殑鐜荤拑锛岀粨鏉熶换鍔�");
+            return Boolean.FALSE;
+        } else {
+            //鎸夌収鍑虹墖鐨勭幓鐠僫d鏇存柊绗煎唴鐨勭幓鐠冪姸鎬佷负宸插嚭鐗�
+            return generateDownGlassOutTask(tempGlassId, Const.GLASS_CACHE_TYPE_OUT, isNeedBind, cageDetails, workList);
+        }
+    }
+
+    public Boolean generateDownGlassOutTask(String glassId, Integer taskType, Boolean
+            isNeedBind, DownStorageCageDetails cageDetails, List<Integer> workList) {
+        //鎸夌幓鐠僫d鑾峰彇鐜荤拑淇℃伅
+        DownStorageCageDetails downStorageCageDetails = null;
+        if (glassId.equals(cageDetails.getGlassId())) {
+            downStorageCageDetails = cageDetails;
+            taskType = 3;
+            //灏嗕笅鐗囩幓鐠冨瓨鍏ョ瀛愯鎯呬俊鎭〃涓�
+            //灏嗕换鍔℃彃鍏ョ悊鐗囩璇︽儏琛�
+            downStorageCageDetails.setState(Const.GLASS_STATE_OUT);
+            downStorageCageDetailsService.save(downStorageCageDetails);
+        } else {
+            downStorageCageDetails = downStorageCageDetailsService.getOne(new LambdaQueryWrapper<DownStorageCageDetails>()
+                    .eq(DownStorageCageDetails::getGlassId, glassId).eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN));
+            if (downStorageCageDetailsService.update(new LambdaUpdateWrapper<DownStorageCageDetails>()
+                    .set(DownStorageCageDetails::getState, Const.GLASS_STATE_OUT).eq(DownStorageCageDetails::getGlassId, glassId))) {
+                log.info("鏇存柊璇︽儏琛ㄥ唴鐨勭姸鎬佹垚鍔�");
+//                return Boolean.TRUE;
+            } else {
+                log.info("鏇存柊璇︽儏琛ㄥ唴鐨勭姸鎬佸け璐�");
+                return Boolean.FALSE;
+            }
+        }
+
+        Integer endCell = null;
+        if (isNeedBind) {
+            //鑾峰彇绌烘灦瀛愪俊鎭紝灏嗙┖鏋跺瓙淇℃伅缁戝畾娴佺▼鍗�
+            DownWorkstation emptyDownWorkstation = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>()
+                    .and(on -> on.isNull(DownWorkstation::getFlowCardId).or().eq(DownWorkstation::getFlowCardId, "")).in(DownWorkstation::getWorkstationId, workList).orderByDesc(DownWorkstation::getWorkstationId).last("limit 1"));
+            if (null != emptyDownWorkstation) {
+                log.info("鑾峰彇鍒扮┖鏋跺瓙淇℃伅锛岀粦瀹氭祦绋嬪崱");
+                downWorkstationService.updateFlowCardIdAndCount(downStorageCageDetails.getFlowCardId(), emptyDownWorkstation.getWorkstationId(), downStorageCageDetails.getLayer());
+//                downWorkstationService.updateFlowCardIdAndCount(downStorageCageDetails.getFlowCardId(), emptyDownWorkstation.getId(), downStorageCageDetails.getLayer());
+                endCell = emptyDownWorkstation.getWorkstationId();
+            } else {
+                //todo:澧炲姞铏氭嫙宸ヤ綅,缁戝畾娴佺▼鍗�
+//                downWorkstationService.insertDownWorkstation();
+//                endCell = Const.G13_WORK_STATION;
+//                downWorkstationService.updateFlowCardIdAndCount(downStorageCageDetails.getFlowCardId(), emptyDownWorkstation.getId(), downStorageCageDetails.getLayer());
+                log.info("娌℃湁绌烘灦瀛愪俊鎭紝鏃犳硶缁戝畾娴佺▼鍗�");
+                return Boolean.FALSE;
+            }
+        } else {
+            double firstLength = Math.max(downStorageCageDetails.getWidth(), downStorageCageDetails.getHeight());
+            double secondLength = Math.min(downStorageCageDetails.getWidth(), downStorageCageDetails.getHeight());
+            if (firstLength > maxWidth || secondLength > maxHeight) {
+                endCell = Const.G13_WORK_STATION;
+            } else {
+                DownWorkstation workstation;
+                workstation = downWorkstationService.getOne(new LambdaUpdateWrapper<DownWorkstation>()
+                        .eq(DownWorkstation::getFlowCardId, downStorageCageDetails.getFlowCardId()).eq(DownWorkstation::getLayer, downStorageCageDetails.getLayer()));
+                endCell = workstation.getWorkstationId();
+            }
+        }
+        //鏇存柊钀芥灦鐜荤拑鏁伴噺
+        if (endCell == Const.G13_WORK_STATION) {
+            downWorkstationService.update(new UpdateWrapper<DownWorkstation>().eq("flow_card_id", downStorageCageDetails.getFlowCardId())
+                    .eq("layer", downStorageCageDetails.getLayer()).setSql("other_number = other_number +1"));
+        } else {
+            downWorkstationService.update(new UpdateWrapper<DownWorkstation>().eq("flow_card_id", downStorageCageDetails.getFlowCardId())
+                    .eq("layer", downStorageCageDetails.getLayer()).setSql("racks_number = racks_number +1"));
+        }
+
+        //鐢熸垚浠诲姟淇℃伅
+        DownGlassInfo downGlassInfo = new DownGlassInfo();
+        BeanUtils.copyProperties(downStorageCageDetails, downGlassInfo);
+        //钀芥灦鐗囧簭
+        LambdaQueryWrapper<DownGlassInfo> wrapper = new LambdaQueryWrapper<DownGlassInfo>();
+        wrapper.eq(DownGlassInfo::getFlowCardId, downGlassInfo.getFlowCardId())
+                .orderByDesc(DownGlassInfo::getSequence)
+                .last("limit 1");
+        if (downStorageCageDetails.getLayer() != 0) {
+            wrapper.eq(DownGlassInfo::getLayer, downGlassInfo.getLayer());
+        }
+//        downGlassInfo.setSequence(downGlassInfoService.queryMaxSequence(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer()));
+        int k = 0;
+        DownGlassInfo downGlassInfo1 = downGlassInfoService.getOne(wrapper);
+        if (downGlassInfo1 != null) {
+            k = 1;
+        } else {
+            k = 1;
+        }
+        downGlassInfo.setSequence(k);
+        downGlassInfo.setWorkStationId(endCell);
+        downGlassInfo.setGmtCreate(new Date());
+        downGlassInfoService.save(downGlassInfo);
+        //鐢熸垚浠诲姟淇℃伅
+        GlassInfo glassInfo = new GlassInfo();
+        BeanUtils.copyProperties(downStorageCageDetails, glassInfo);
+        //鍒犻櫎鐞嗙墖绗艰〃鎷胯蛋/鐮存崯鏁版嵁鏁版嵁
+        damageService.deleteByGlassId(glassInfo.getGlassId());
+        return initDownGlassTask(glassInfo, downStorageCageDetails.getSlot(), endCell, taskType);
+    }
+
+    public Boolean initDownGlassTask(GlassInfo glassInfo, Integer startCell, Integer endCell, Integer taskType) {
+        log.info("鐜荤拑{}鐢熸垚杩涚墖浠诲姟", glassInfo.getGlassId());
+        DownGlassTask downGlassTask = new DownGlassTask();
+        downGlassTask.setStartCell(startCell);
+        downGlassTask.setGlassId(glassInfo.getGlassId());
+        downGlassTask.setEndCell(endCell);
+        downGlassTask.setTaskType(taskType);
+        downGlassTask.setWidth((int) glassInfo.getWidth());
+        downGlassTask.setHeight((int) glassInfo.getHeight());
+        downGlassTask.setFlowCardId(glassInfo.getFlowCardId());
+        downGlassTask.setLayer(glassInfo.getLayer());
+        downGlassTask.setTaskStatus(0);
+        downGlassTask.setCreateTime(new Date());
+        downGlassTaskService.save(downGlassTask);
+        //娣诲姞鎶ュ伐鏁版嵁
+        Damage damage = new Damage();
+        damage.setGlassId(glassInfo.getGlassId());
+        damage.setWorkingProcedure("閽㈠寲");
+        damage.setLine(4001);
+        damage.setType(1);
+        damage.setRemark("閽㈠寲鍚庡崸寮忕悊鐗�");
+        damageService.insertDamage(damage);
+        //鍚憄lc鍙戦�佸懡浠�
+        return sendMessageToPlc((int) glassInfo.getWidth(), (int) glassInfo.getHeight(), (int) glassInfo.getThickness(),
+                startCell, endCell, taskType);
+    }
+
+    private Boolean sendMessageToPlc(int width, int height, int thickness, int startCell, int endCell,
+                                     int taskType) {
+        S7control s7control = S7object.getinstance().plccontrol;
+        PlcParameterObject plcMesObject = S7object.getinstance().PlcMesObject;
+        s7control.writeWord(plcMesObject.getPlcParameter("Glass_width").getAddress(), width);
+        s7control.writeWord(plcMesObject.getPlcParameter("Glass_height").getAddress(), height);
+        s7control.writeWord(plcMesObject.getPlcParameter("Glass_thickness").getAddress(), thickness);
+        s7control.writeWord(plcMesObject.getPlcParameter("Start_cell").getAddress(), startCell);
+        s7control.writeWord(plcMesObject.getPlcParameter("End_cell").getAddress(), endCell);
+        s7control.writeWord(plcMesObject.getPlcParameter("task_type").getAddress(), taskType);
+        s7control.writeWord(plcMesObject.getPlcParameter("confirmationWord").getAddress(), 1);
+        return Boolean.TRUE;
+    }
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
new file mode 100644
index 0000000..d034898
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
@@ -0,0 +1,237 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import cn.smallbun.screw.core.util.CollectionUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.mes.common.config.Const;
+import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.entity.DownGlassTask;
+import com.mes.downglassinfo.entity.request.DownGlassInfoRequest;
+import com.mes.downglassinfo.service.DownGlassInfoService;
+import com.mes.downglassinfo.service.DownGlassTaskService;
+import com.mes.downstorage.service.DownStorageCageService;
+import com.mes.downworkstation.entity.DownWorkstation;
+import com.mes.downworkstation.service.DownWorkstationService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.tools.DateUtil;
+import com.mes.tools.WebSocketServer;
+import com.mes.utils.RedisUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.Socket;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Slf4j
+@Component
+public class Downpush {
+
+    @Autowired
+    private DownWorkstationService downWorkstationService;
+    @Autowired
+    private DownStorageCageService downStorageCageService;
+    @Autowired
+    private DownGlassInfoService downGlassInfoService;
+    @Autowired
+    private DownGlassTaskService downGlassTaskService;
+    @Autowired
+    private GlassInfoService glassInfoService;
+
+    @Value("${mes.scan.ip}")
+    private String scanIp;
+
+    @Value("${mes.scan.port}")
+    private Integer scanPort;
+
+    @Autowired
+    private RedisUtil redisUtil;
+
+    @Scheduled(fixedDelay = 2000)
+    public void sendDownWorkstations() {
+        log.info("鍙戦�佸伐浣嶇幓鐠冧俊鎭�");
+        JSONObject jsonObject = new JSONObject();
+
+        List<DownWorkstation> data = downWorkstationService.list();
+        jsonObject.append("params", data);
+        log.info(jsonObject.toString());
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("unloadglass");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null && webserver.session.isOpen()) {
+                    log.info("宸插彂閫�");
+                    webserver.sendMessage(jsonObject.toString());
+                }
+            }
+        }
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void sendGlassInfoData() {
+        log.info("鍙戦�佸伐浣嶆樉绀哄浘淇℃伅1");
+        JSONObject jsonObject2 = new JSONObject();
+        List<Map<String, Object>> glassinfodata = downWorkstationService.getTotalGlassDimensionsByWorkstation(1, 3);
+        jsonObject2.append("glassinfo", glassinfodata);
+        log.info(jsonObject2.toString());
+        ArrayList<WebSocketServer> sendwServer2 = WebSocketServer.sessionMap.get("unloadglass2");
+        if (sendwServer2 != null) {
+            for (WebSocketServer webserver : sendwServer2) {
+                if (webserver != null && webserver.session.isOpen()) {
+                    webserver.sendMessage(jsonObject2.toString());
+                }
+            }
+        }
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void sendGlassInfoData2() {
+        log.info("鍙戦�佸伐浣嶆樉绀哄浘淇℃伅2");
+        JSONObject jsonObject3 = new JSONObject();
+        List<Map<String, Object>> glassinfodata2 = downWorkstationService.getTotalGlassDimensionsByWorkstation(4, 6);
+        jsonObject3.append("glassinfo2", glassinfodata2);
+        log.info(jsonObject3.toString());
+        ArrayList<WebSocketServer> sendwServer3 = WebSocketServer.sessionMap.get("unloadglass3");
+        if (sendwServer3 != null) {
+            for (WebSocketServer webserver : sendwServer3) {
+                if (webserver != null && webserver.session.isOpen()) {
+                    webserver.sendMessage(jsonObject3.toString());
+                }
+            }
+        }
+    }
+
+    @Scheduled(fixedDelay = 2000)
+    public void sendDownStorageCages() {
+        log.info("鍙戦�佺紦瀛樼幓鐠冧俊鎭�");
+        JSONObject jsonObject4 = new JSONObject();
+        List<Map<String, Object>> list = downStorageCageService.selectDownStorageCages();
+        jsonObject4.append("params2", list);
+        log.info(jsonObject4.toString());
+        ArrayList<WebSocketServer> sendwServer4 = WebSocketServer.sessionMap.get("downcache");
+        if (sendwServer4 != null) {
+            for (WebSocketServer webserver : sendwServer4) {
+                if (webserver != null && webserver.session.isOpen()) {
+                    webserver.sendMessage(jsonObject4.toString());
+                }
+            }
+        }
+    }
+
+    @Scheduled(fixedDelay = 2000)
+    public void sendDownGlassInfo() {
+        DownGlassInfoRequest request = redisUtil.getCacheObject("downGlassRequest");
+        if (null == request) {
+            request = new DownGlassInfoRequest();
+        }
+        if (request.getBeginDate() == null) {
+            request.setBeginDate(DateUtil.getBeginDate());
+            request.setEndDate(DateUtil.getEndDate());
+        }
+        log.info("鍙戦�佸綋鍓嶆鍦ㄦ墽琛屽伐绋嬪凡钀芥灦鐨勭幓鐠冧俊鎭�");
+        LambdaQueryWrapper<DownGlassInfo> wrapper = new LambdaQueryWrapper<DownGlassInfo>()
+                .between(null != request.getBeginDate(), DownGlassInfo::getGmtCreate, request.getBeginDate(), request.getEndDate())
+                .eq(StringUtils.isNotBlank(request.getEngineerId()), DownGlassInfo::getEngineerId, request.getEngineerId());
+        if (null == request.getWorkStationId() || 0 == request.getWorkStationId()) {
+            wrapper.in(DownGlassInfo::getWorkStationId, Const.WORK_STATION_ALL);
+        } else {
+            wrapper.eq(DownGlassInfo::getWorkStationId, request.getWorkStationId());
+        }
+        List<DownGlassInfo> downGlassInfos = downGlassInfoService.list(wrapper);
+//        Map<Integer, List<DownGlassInfo>> listMap = downGlassInfos.stream().collect(Collectors.groupingBy(DownGlassInfo::getWorkStationId));
+        List<Object> engineerIdListTemp = downGlassInfoService.listObjs(new QueryWrapper<DownGlassInfo>().select("distinct engineer_id"));
+        List<String> engineerIdList = engineerIdListTemp.stream().map(String::valueOf).collect(Collectors.toList());
+        JSONObject jsonObject4 = new JSONObject();
+        jsonObject4.append("downGlassInfos", downGlassInfos);
+        jsonObject4.append("engineerIdList", engineerIdList);
+
+        //鎵撳嵃寮�鍏�
+        boolean autoPrint = false;
+        if (redisUtil.getCacheObject("autoPrint") == null) {
+            redisUtil.setCacheObject("autoPrint", false);
+        } else {
+            autoPrint = redisUtil.getCacheObject("autoPrint");
+        }
+        jsonObject4.append("autoPrint", autoPrint);
+        //浜哄伐涓嬬墖浣嶇疆鏈�鍚庝竴鐗�
+        DownGlassTask takeGlass = downGlassTaskService.getOne(
+                new QueryWrapper<DownGlassTask>()
+                        .select("Top 1 *")
+                        .eq("end_cell", Const.G13_WORK_STATION)
+                        .lt("task_status", Const.UNLOAD_GLASS_DOWN)
+                        .orderByAsc("id")
+        );
+        if(takeGlass!=null){
+            jsonObject4.append("takeGlass", takeGlass);
+        }
+
+        ArrayList<WebSocketServer> sendwServer4 = WebSocketServer.sessionMap.get("unloadglass");
+        if (sendwServer4 != null) {
+            for (WebSocketServer webserver : sendwServer4) {
+                if (webserver != null && webserver.session.isOpen()) {
+                    webserver.sendMessage(jsonObject4.toString());
+                }
+            }
+        }
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void isRun() {
+        JSONObject jsonObject = new JSONObject();
+        //姝e湪杩涜鐨勪换鍔�
+        List<DownWorkstation> downWorkstation = downWorkstationService.getoneDownWorkstations(1, 6);
+        jsonObject.append("downWorkstation", downWorkstation);
+        List<DownGlassTask> downGlassTask = downGlassTaskService.selectOutTaskCache();
+        jsonObject.append("downGlassTask", downGlassTask);
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("unLoadGlassIsRun");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                } else {
+                    log.info("unLoadGlassIsRun is closed");
+                }
+            }
+        }
+    }
+
+    @Scheduled(fixedDelay = Long.MAX_VALUE)
+    public void scanCodeTask() {
+        log.info("鎵弿浠诲姟宸插惎鍔�");
+        while (true) {
+            JSONObject jsonObject = new JSONObject();
+            try (Socket socket = new Socket(scanIp, scanPort);
+                 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()))) {
+                // 鎺ユ敹鏈嶅姟鍣ㄥ搷搴�
+                log.info("绛夊緟鎵爜涓�......");
+                String glassId = in.readLine();
+                log.info("鎵弿鍒扮殑鐜荤拑id锛歿}", glassId);
+                List<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("unloadglass");
+                if (CollectionUtils.isNotEmpty(sendwServer)) {
+                    //鎸夌収鐜荤拑id鑾峰彇鐜荤拑淇℃伅杩斿洖缁欏墠绔晫闈紝鍏蜂綋闇�瑕佸摢浜涙暟鎹緟纭
+                    GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
+                            .eq(GlassInfo::getGlassId, glassId).last("limit 1"));
+                    if (null == glassInfo) {
+                        log.info("鎸夌収鐜荤拑id锛歿}锛屾棤娉曟壘鍒扮幓鐠冧俊鎭�", glassId);
+                    } else {
+                        for (WebSocketServer webserver : sendwServer) {
+                                jsonObject.append("scanGlass", glassInfo);
+                                webserver.sendMessage(jsonObject.toString());
+                        }
+                    }
+                }
+            } catch (Exception exception) {
+                log.info("璇诲彇寮傚父锛屽師鍥犱负{}", exception.getMessage());
+            }
+        }
+    }
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/Configuration.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/Configuration.java
new file mode 100644
index 0000000..319a5d4
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/Configuration.java
@@ -0,0 +1,46 @@
+package com.mes.tools;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+/**
+ * @author SNG-012
+ * <p>
+ * Configuration 绫荤敤浜庡姞杞介厤缃枃浠跺苟鎻愪緵璁块棶閰嶇疆椤圭殑鏂规硶銆�
+ */
+public class Configuration {
+
+    /**
+     * // Properties 瀵硅薄锛岀敤浜庡瓨鍌ㄩ厤缃枃浠朵腑鐨勯敭鍊煎銆�
+     */
+    private Properties properties;
+
+    /**
+     * @param fileName
+     * @throws IOException // 鏋勯�犲嚱鏁帮紝鏍规嵁浼犲叆鐨勬枃浠跺悕鍔犺浇閰嶇疆鏂囦欢銆�
+     */
+
+    public Configuration(String fileName) throws IOException {
+        // 浣跨敤绫诲姞杞藉櫒鑾峰彇璧勬簮鏂囦欢鐨勮緭鍏ユ祦銆�
+        InputStream inputStream = getClass().getClassLoader().getResourceAsStream(fileName);
+        // 濡傛灉杈撳叆娴佷负null锛岃〃绀烘湭鎵惧埌鏂囦欢锛屾姏鍑篎ileNotFoundException銆�
+        if (inputStream == null) {
+            throw new FileNotFoundException("Property file '" + fileName + "' not found in the classpath");
+        }
+        // 瀹炰緥鍖朠roperties瀵硅薄銆�
+        properties = new Properties();
+        // 浠庤緭鍏ユ祦鍔犺浇閰嶇疆椤广��
+        properties.load(inputStream);
+    }
+
+    /**
+     * @param key
+     * @return // 鏍规嵁閰嶇疆椤圭殑閿幏鍙栧叾瀵瑰簲鐨勫�笺��
+     */
+
+    public String getProperty(String key) {
+        return properties.getProperty(key);
+    }
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/ExcelToJsonConverter.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/ExcelToJsonConverter.java
new file mode 100644
index 0000000..d5cc9c8
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/ExcelToJsonConverter.java
@@ -0,0 +1,107 @@
+package com.mes.tools;
+
+import com.google.gson.Gson;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+
+public class ExcelToJsonConverter {
+
+    public static void main(String[] args) {
+        String excelFilePath = "src/main/resources/JsonFile/PlcdownGlass.xlsx";
+        String sheetName = "Sheet1";
+        int addressColumnIndex = 0;
+        int nameColumnIndex = 1;
+
+        //int unitColumnIndex = 2;
+        String outputFilePath = "src/main/resources/JsonFile/PlcdownGlass.json";
+
+        try (Workbook workbook = new XSSFWorkbook(new FileInputStream(excelFilePath))) {
+            Sheet sheet = workbook.getSheet(sheetName);
+
+            List<LinkedHashMap<String, Object>> jsonList = new ArrayList<>();
+
+            Iterator<Row> rowIterator = sheet.iterator();
+            // Skip the header row
+            if (rowIterator.hasNext()) {
+                rowIterator.next();
+            }
+
+            int plcAddressLength = 0; // 璁板綍鎵�鏈� addressLenght 鐨勫拰
+            int addressIndex = 0; // 鑷鐨勫湴鍧�绱㈠紩
+            while (rowIterator.hasNext()) {
+                Row row = rowIterator.next();
+
+                Cell nameCell = row.getCell(nameColumnIndex);
+                Cell addressCell = row.getCell(addressColumnIndex);
+                //  Cell unitCell = row.getCell(unitColumnIndex);
+
+                String name = nameCell.getStringCellValue();
+                String address = addressCell.getStringCellValue();
+                // String unit = unitCell.getStringCellValue();
+
+                //  String addressIndex = extractAddressIndex(address);
+
+                LinkedHashMap<String, Object> jsonObject = new LinkedHashMap<>();
+                jsonObject.put("codeId", name);
+                jsonObject.put("addressIndex", addressIndex);
+
+                int addressLength = 0;
+                if (address.contains("~")) {
+                    addressLength = 14;
+                } else {
+                    addressLength = 2;
+                }
+                // jsonObject.put("addressLenght", String.valueOf(addressLength));
+
+                //jsonObject.put("unit", unit);
+
+                plcAddressLength += addressLength;
+
+                jsonList.add(jsonObject);
+                addressIndex++;
+            }
+
+            LinkedHashMap<String, Object> resultObject = new LinkedHashMap<>();
+            resultObject.put("plcAddressBegin", "DB100.0");
+            resultObject.put("plcAddressLenght", String.valueOf(plcAddressLength));
+            resultObject.put("dataType", "word");
+           // resultObject.put("dataType", "bit");
+            resultObject.put("parameteInfor", jsonList);
+
+            Gson gson = new Gson();
+            String jsonOutput = gson.toJson(resultObject);
+
+            try (FileWriter fileWriter = new FileWriter(outputFilePath)) {
+                fileWriter.write(jsonOutput);
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+
+    private static String extractAddressIndex(String address) {
+        // Assuming the address format is "DB103.DBW0" or "DB103.DBB100~DBB113"
+        if (address.startsWith("DB") && address.contains(".DBW")) {
+            int startIndex = address.indexOf(".DBW") + 4;
+            int endIndex = address.length();
+            return address.substring(startIndex, endIndex);
+        } else if (address.startsWith("DB") && address.contains(".DBB")) {
+            int startIndex2 = address.indexOf(".DBB") + 4;
+            int endIndex2 = address.indexOf("~");
+            return address.substring(startIndex2, endIndex2);
+        }
+        return "";
+    }
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.xlsx b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.xlsx
new file mode 100644
index 0000000..dd72649
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcdownGlass.xlsx
Binary files differ
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-cz.yml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-cz.yml
new file mode 100644
index 0000000..fde9c18
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-cz.yml
@@ -0,0 +1,30 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.1.199:3306/hangzhoumes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://192.168.10.2:1433;databasename=hangzhoumes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+        pp:
+          url: jdbc:mysql://192.168.1.199:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-dev.yml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..965f1fe
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-dev.yml
@@ -0,0 +1,30 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+        pp:
+          url: jdbc:mysql://127.0.0.1:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..51ab798
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-prod.yml
@@ -0,0 +1,30 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://10.153.19.150:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://10.153.19.150:1433;databasename=north_glass_mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+        pp:
+          url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 10.153.19.150:8849
+  redis:
+    database: 0
+    host: 10.153.19.150
+    port: 6379
+    password: 123456
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-yw.yml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-yw.yml
new file mode 100644
index 0000000..6a3cd3e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application-yw.yml
@@ -0,0 +1,25 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.2.100:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://192.168.2.100:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 192.168.2.100:8848
+  redis:
+    database: 0
+    host: 192.168.2.100
+    port: 6379
+    password: 123456
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml
new file mode 100644
index 0000000..90ac9a6
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml
@@ -0,0 +1,36 @@
+server:
+  port: 10017
+
+spring:
+  profiles:
+    active: prod
+  application:
+    name: unLoadGlass
+  liquibase:
+    enabled: false
+  task:
+    scheduling:
+      pool:
+        size: 10
+      thread-name-prefix: task-unLoad
+
+
+mybatis-plus:
+  mapper-locations: classpath*:mapper/*.xml
+#  configuration:
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+
+mes:
+  maxWidth: 2500    #涓嬬墖鐨勬渶澶у搴�
+  maxHeight: 2000   #涓嬬墖鐨勬渶澶ч珮搴�
+  minWidth: 400    #涓嬬墖鐨勬渶灏忓搴�
+  minHeight: 400   #涓嬬墖鐨勬渶灏忛珮搴�
+  throughWidth: 3000
+  throughHeight: 2500
+  threshold: 5      #涓嬬墖鐨勬渶澶ч槇鍊�
+  scan:
+    ip: 192.168.30.199
+    port: 5000
+kangaroohy:
+  milo:
+    enabled: false
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/logback-spring.xml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..3f79b5c
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/logback-spring.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="10 seconds">
+    <!-- logger涓婁笅鏂囧悕绉帮紙鏍规嵁涓氬姟淇敼锛� -->
+    <contextName>unLoadGlass</contextName>
+
+    <!-- 瀹氫箟浜嗕竴涓悕涓簊erverName鐨勫睘鎬э紝瀹冪殑鍊兼潵鑷簬logging.file.name锛屽鏋滄病鏈夋壘鍒拌灞炴�ч粯璁や负MyServerName锛堟牴鎹笟鍔′慨鏀癸級 -->
+    <springProperty name="serverName" source="logging.file.name" defaultValue="unLoadGlass"/>
+    <springProperty name="logging.path" source="logging.file.path" defaultValue="././logs/"/>
+
+    <!-- 褰╄壊鏃ュ織渚濊禆鐨勬覆鏌撶被 -->
+    <!-- 瀹氫箟浜嗕竴涓悕涓篶lr鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.ColorConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗘棩蹇楄緭鍑轰腑鐨勬枃鏈潃鑹诧紝浠ヤ究鏇村鏄撳湴鍖哄垎涓嶅悓鐨勬棩蹇楃骇鍒垨鍏朵粬淇℃伅 -->
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
+    <!-- WhitespaceThrowableProxyConverter鍜孍xtendedWhitespaceThrowableProxyConverter閮芥槸鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず鐨勭被銆傚畠浠箣闂寸殑鍖哄埆鍦ㄤ簬锛孍xtendedWhitespaceThrowableProxyConverter鍦ㄨ緭鍑哄紓甯镐俊鎭椂浼氬寘鍚洿澶氱殑璇︾粏淇℃伅锛屼緥濡傚紓甯哥殑绫诲悕銆佹柟娉曞悕鍜岃鍙风瓑 -->
+    <!-- 瀹氫箟浜嗕竴涓悕涓簑ex鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <conversionRule conversionWord="wex"
+                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
+    <!-- 瀹氫箟浜嗕竴涓悕涓簑Ex鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <conversionRule conversionWord="wEx"
+                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
+
+    <!-- 褰╄壊鏃ュ織鏍煎紡 -->
+    <!-- value鍊兼槸鏃ュ織杈撳嚭妯℃澘锛� :-鏄睘鎬у悕鍜屽叾榛樿鍊间箣闂寸殑鍒嗛殧绗︼紝浣滅敤涓�:鐩稿悓 -->
+    <!-- 瀹氫箟鏃ュ織杈撳嚭鏍煎紡鐨勮浆鎹㈣鍒欙紝%d{yyyy-MM-dd HH:mm:ss.SSS}琛ㄧず鏃ユ湡鍜屾椂闂达紝%clr琛ㄧず灏嗚緭鍑烘枃鏈潃鑹诧紝{faint}琛ㄧず浣跨敤娣¤壊 -->
+    <!-- %5p琛ㄧず鏃ュ織绾у埆杈撳嚭鍙冲榻愶紝宸﹁竟浠ョ┖鏍煎~鍏� -->
+    <!-- ${PID:- }琛ㄧず杩涚▼ID锛�%clr琛ㄧず灏嗚緭鍑烘枃鏈潃鑹诧紝{magenta}琛ㄧず浣跨敤娲嬬孩鑹� -->
+    <!-- 琛ㄧず涓�涓垎闅旂 -->
+    <!-- %t锛氭樉绀轰骇鐢熻鏃ュ織鐨勭嚎绋嬪悕锛�%15锛氳嫢瀛楃闀垮害灏忎簬15锛屽垯宸﹁竟鐢ㄧ┖鏍煎~鍏咃紱%.15锛氳嫢瀛楃闀垮害瓒呰繃15锛屾埅鍘诲浣欏瓧绗� -->
+    <!-- %-40锛氳嫢瀛楃闀垮害灏忎簬40锛屽垯鍙宠竟鐢ㄧ┖鏍煎~鍏咃紱%.40锛氳嫢瀛楃闀垮害瓒呰繃40锛屾埅鍘诲浣欏瓧绗︼紱logger{39}瀵瑰簲鐨勬槸鈥渓ogging.WARNING鈥濈骇鍒�傚叿浣撴潵璇达紝Python鐨刲ogging妯″潡瀹氫箟浜嗕互涓嬪嚑涓骇鍒紙浠庝綆鍒伴珮锛夛細NOTSET銆丏EBUG銆両NFO銆乄ARNING銆丒RROR銆丆RITICAL銆傚洜姝わ紝logger{39}琛ㄧず鐨勬槸WARNING绾у埆锛屽嵆鏃ュ織璁板綍鍣ㄤ細璁板綍鎵�鏈塛ARNING绾у埆鍙婁互涓婄殑鏃ュ織淇℃伅 -->
+    <!-- %m琛ㄧず鏃ュ織娑堟伅锛�%n琛ㄧず鎹㈣绗︼紱${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}琛ㄧず寮傚父淇℃伅銆傚鏋滄棩蹇楄緭鍑轰腑鍖呭惈寮傚父淇℃伅锛岃繖涓鍒欏皢浼氬皢鍏惰浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <property name="CONSOLE_LOG_PATTERN"
+              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+
+    <!--1. 杈撳嚭鍒版帶鍒跺彴-->
+    <!-- 瀹氫箟鎺у埗鍙版棩蹇楄緭鍑虹殑appender锛宑lass="ch.qos.logback.core.ConsoleAppender"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凜onsoleAppender绫绘潵杈撳嚭鏃ュ織鍒版帶鍒跺彴 -->
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <!--姝ゆ棩蹇梐ppender鏄负寮�鍙戜娇鐢紝鍙厤缃渶搴曠骇鍒紝鎺у埗鍙拌緭鍑虹殑鏃ュ織绾у埆鏄ぇ浜庢垨绛変簬姝ょ骇鍒殑鏃ュ織淇℃伅-->
+        <!-- 瀹氫箟鏃ュ織杈撳嚭绾у埆鐨勮繃婊ゅ櫒锛宑lass="ch.qos.logback.classic.filter.ThresholdFilter"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凾hresholdFilter绫绘潵杩囨护鏃ュ織杈撳嚭锛�<level>debug</level>琛ㄧず鍙緭鍑篸ebug绾у埆鍙婁互涓婄殑鏃ュ織 -->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>debug</level>
+        </filter>
+        <encoder>
+            <!-- ${CONSOLE_LOG_PATTERN}琛ㄧず鎺у埗鍙版棩蹇楄緭鍑烘牸寮忥紝UTF-8琛ㄧず缂栫爜鏍煎紡 -->
+            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
+            <!-- 璁剧疆瀛楃闆� -->
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+    <!--2. 杈撳嚭鍒版枃妗�-->
+    <!-- 2.1 level涓� DEBUG 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <!-- 瀹氫箟鏂囦欢鏃ュ織杈撳嚭鐨刟ppender锛宑lass="ch.qos.logback.core.rolling.RollingFileAppender"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凴ollingFileAppender绫绘潵杈撳嚭鏃ュ織鍒版枃浠� -->
+    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_debug.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <!-- 瀹氫箟鏃ュ織鏂囦欢婊氬姩绛栫暐鐨勬爣绛撅紝class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凾imeBasedRollingPolicy绫绘潵瀹氫箟鏃ュ織鏂囦欢鐨勬粴鍔ㄧ瓥鐣� -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 鏃ュ織褰掓。 -->
+            <!-- 瀹氫箟鏃ュ織鏂囦欢鍚嶇殑妯″紡銆傚湪杩欎釜妯″紡涓紝${logging.path}琛ㄧず鏃ュ織鏂囦欢鐨勮矾寰勶紝%d{yyyy-MM-dd}琛ㄧず鏃ユ湡鏍煎紡锛�%i琛ㄧず鏂囦欢绱㈠紩 -->
+            <fileNamePattern>${logging.path}/${serverName}/web-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <!-- 瀹氫箟鏃ュ織鏂囦欢婊氬姩绛栫暐鐨勬爣绛撅紝class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凷izeAndTimeBasedFNATP绫绘潵瀹氫箟鏃ュ織鏂囦欢鐨勬粴鍔ㄧ瓥鐣ワ紝<maxFileSize>100MB</maxFileSize>琛ㄧず鏃ュ織鏂囦欢鐨勬渶澶уぇ灏忎负100MB銆傝繖涓粴鍔ㄧ瓥鐣ラ�氬父鐢ㄤ簬鎸夌収鏃堕棿鍜屾枃浠跺ぇ灏忔粴鍔ㄦ棩蹇楁枃浠讹紝浠ヤ究鏇村ソ鍦扮鐞嗘棩蹇楁枃浠剁殑澶у皬鍜屾暟閲� -->
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍debug绾у埆鐨� -->
+        <!-- 瀹氫箟鏃ュ織杈撳嚭绾у埆鐨勮繃婊ゅ櫒銆傚湪杩欎釜杩囨护鍣ㄤ腑锛宑lass="ch.qos.logback.classic.filter.LevelFilter"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凩evelFilter绫绘潵杩囨护鏃ュ織杈撳嚭锛�<level>debug</level>琛ㄧず鍙緭鍑篸ebug绾у埆鍙婁互涓婄殑鏃ュ織 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>debug</level>
+            <!-- <onMatch>ACCEPT</onMatch>琛ㄧず濡傛灉鏃ュ織浜嬩欢涓庤繃婊ゅ櫒鍖归厤锛屽垯鎺ュ彈璇ヤ簨浠讹紝<onMismatch>DENY</onMismatch>琛ㄧず濡傛灉鏃ュ織浜嬩欢涓庤繃婊ゅ櫒涓嶅尮閰嶏紝鍒欐嫆缁濊浜嬩欢 -->
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.2 level涓� INFO 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_info.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 澶╁ぉ鏃ュ織褰掓。璺緞浠ュ強鏍煎紡 -->
+            <fileNamePattern>${logging.path}/${serverName}/web-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍info绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>info</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.3 level涓� WARN 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_warn.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 姝ゅ璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logging.path}/${serverName}/web-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍warn绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>warn</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.4 level涓� ERROR 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_error.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 姝ゅ璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logging.path}/${serverName}/web-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍ERROR绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!--     4.1 寮�鍙戠幆澧�:鎵撳嵃鎺у埗鍙�-->
+    <!-- 鐢ㄤ簬鍦⊿pring Boot搴旂敤绋嬪簭涓厤缃棩蹇楄褰曠殑鏍囩銆傚湪杩欎釜鏍囩涓紝name="dev"琛ㄧず杩欎釜閰嶇疆鏂囦欢鍙湪dev鐜涓敓鏁堬紝<logger name="com.myClass.controller" level="debug"/>琛ㄧず涓篶om.myClass.controller锛堟牴鎹笟鍔′慨鏀癸級杩欎釜鍖呬笅鐨勭被閰嶇疆鏃ュ織杈撳嚭绾у埆涓篸ebug -->
+    <!--    <springProfile name="dev">-->
+    <!--        <logger name="com.myClass.controller" level="debug"/>-->
+    <!--    </springProfile>-->
+    <!-- 鐢ㄤ簬閰嶇疆鏃ュ織杈撳嚭鐨勬爣绛俱�傚湪杩欎釜鏍囩涓紝level="info"琛ㄧず鏃ュ織杈撳嚭绾у埆涓篿nfo锛�<appender-ref ref="CONSOLE"/>銆�<appender-ref ref="DEBUG_FILE"/>銆�<appender-ref ref="INFO_FILE"/>銆�<appender-ref ref="WARN_FILE"/>銆�<appender-ref ref="ERROR_FILE"/>琛ㄧず灏嗘棩蹇楄緭鍑哄埌涓嶅悓鐨刟ppender涓紝鍒嗗埆涓烘帶鍒跺彴銆乨ebug鏂囦欢銆乮nfo鏂囦欢銆亀arn鏂囦欢鍜宔rror鏂囦欢 -->
+    <root level="info">
+        <appender-ref ref="CONSOLE"/>
+        <appender-ref ref="INFO_FILE"/>
+        <appender-ref ref="WARN_FILE"/>
+        <appender-ref ref="ERROR_FILE"/>
+    </root>
+</configuration>
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
new file mode 100644
index 0000000..41072b0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.downglassinfo.mapper.DownGlassInfoMapper">
+
+    <resultMap id="downGlassInfoDTO" type="com.mes.downworkstation.entity.dto.DownGlassInfoDTO">
+        <result column="flow_card_id" property="flowCardId"/>
+        <result column="layer" property="layer"/>
+        <result column="count" property="count"/>
+    </resultMap>
+    <resultMap id="downGlassInfo" type="com.mes.downworkstation.entity.dto.DownGlassInfoDTO">
+        <result column="flow_card_id" property="flowCardId"/>
+        <result column="layer" property="layer"/>
+        <result column="racks_number" property="racksNumber"/>
+        <collection property="glassInfoList" ofType="com.mes.glassinfo.entity.GlassInfo">
+            <id column="id" property="id"/>
+            <result column="flow_card_id" property="flowCardId"/>
+            <result column="glass_type" property="glassType"/>
+            <result column="width" property="width"/>
+            <result column="height" property="height"/>
+            <result column="thickness" property="thickness"/>
+            <result column="filmsid" property="filmsid"/>
+            <result column="total_layer" property="totalLayer"/>
+            <result column="layer" property="layer"/>
+        </collection>
+    </resultMap>
+
+    <select id="queryDownGlassMaxLayer" resultMap="downGlassInfoDTO">
+        SELECT flow_card_id,
+               layer,
+               COUNT(layer) AS count
+        FROM
+            down_glass_info
+        WHERE
+            flow_card_id = #{flowCardId}
+        GROUP BY
+            flow_card_id,
+            layer
+        order by count desc limit 1
+    </select>
+    <select id="queryMaxSequence" resultType="java.lang.Integer">
+        SELECT COALESCE(max(sequence) + 1, 1) as sequence
+        FROM down_glass_info
+        WHERE flow_card_id = #{flowCardId}
+          AND layer = #{layer}
+    </select>
+
+    <select id="queryWorkStationIsIn" resultMap="downGlassInfo">
+        SELECT
+        T.FLOW_CARD_ID,
+        T.LAYER,
+        T.RACKS_NUMBER
+        <if test="!isDownload">
+            ,T1.*
+        </if>
+        FROM
+        DOWN_WORKSTATION T
+        INNER JOIN GLASS_INFO T1 ON T.FLOW_CARD_ID = T1.FLOW_CARD_ID
+        AND T.LAYER = T1.LAYER
+        LEFT JOIN DOWN_GLASS_INFO T2 ON T1.GLASS_ID = T2.GLASS_ID
+        <where>
+            t.workstation_id in
+            <foreach collection="workList" item="item" open='(' close=')' separator=','>
+                #{item}
+            </foreach>
+            <if test="!isDownload">
+                AND T2.GLASS_ID IS NULL
+            </if>
+            <if test="isDownload">
+                AND T2.GLASS_ID IS not NULL
+            </if>
+
+        </where>
+        ORDER BY
+        T.RACKS_NUMBER DESC,
+        T1.TEMPERING_LAYOUT_ID,
+        T1.TEMPERING_FEED_SEQUENCE DESC
+    </select>
+    <select id="queryWorkStationFlowCard" resultMap="downGlassInfo">
+        SELECT
+        T.FLOW_CARD_ID,
+        T.LAYER,
+        T.RACKS_NUMBER
+        FROM
+        DOWN_WORKSTATION T
+        where
+        (t.flow_card_id is not null and t.flow_card_id != '')
+        and t.workstation_id in
+        <foreach collection="workList" item="item" open='(' close=')' separator=','>
+            #{item}
+        </foreach>
+        ORDER BY T.RACKS_NUMBER DESC
+    </select>
+
+    <select id="selectFlowCard" resultType="java.util.Map">
+        select fc.order_number,
+               concat(round(ogd.child_width), "*", round(ogd.child_height))   as child_width,
+               od.quantity,
+               round(ogd.total_area, 2)                                       as total_area,
+               od.perimeter,
+               od.bend_radius,
+               concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
+               od.other_columns,
+               round(ogd.child_width)                                         as width,
+               round(ogd.child_height)                                        as height,
+               pd.separation,
+               fc.technology_number
+        from pp.flow_card as fc
+                 left join sd.order_glass_detail as ogd
+                           on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+                              fc.technology_number = ogd.technology_number
+                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+                 left join sd.product_detail as pd
+                           on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
+        where fc.process_id = #{processId}
+          and position(fc.technology_number in #{technologyNumber})
+        group by fc.process_id, fc.order_number, fc.technology_number
+        order by IF(sort != NULL || sort != '', sort, fc.order_number)
+
+    </select>
+
+    <select id="selectProject" resultType="java.util.Map">
+        select o.customer_name,
+               o.project,
+               (select process
+                from sd.order_glass_detail
+                where order_id = fc.order_id
+                  and order_number = fc.order_number
+                  and technology_number = fc.technology_number) as process,
+               od.edging_type,
+               (select glass_child
+                from sd.order_glass_detail
+                where order_id = fc.order_id
+                  and order_number = fc.order_number
+                  and technology_number = fc.technology_number) as glass_child,
+               od.product_name,
+               o.processing_note,
+               fc.process_id,
+               SUM(od.quantity)                                 as quantity,
+               round(SUM(ogd.total_area), 2)                    as gross_area,
+               sum(od.weight)                                   as weight,
+               1                                                as technologyNumber,
+               concat(fc.process_id, '/', 1)                    as processIdNumber,
+               concat('瀵瑰簲鎴戝徃鍗曞彿', o.batch)                        AS otherRemarks
+        from pp.flow_card as fc
+                 left join sd.order_glass_detail as ogd
+                           on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+                              fc.technology_number = ogd.technology_number
+                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+                 left join sd.`order` as o on o.order_id = fc.order_id
+                 left join sd.product as p on p.id = od.product_id
+                 left join (select ogd.order_id,
+                                   ogd.order_number,
+                                   ogd.technology_number,
+                                   ogd.glass_child,
+                                   GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+                            from sd.order_glass_detail as ogd
+                            where ogd.order_id = left (#{processId}
+                                , 10)
+                              and position (ogd.technology_number in #{technologyNumber})
+                            GROUP BY order_id, order_number) as ogdc
+                           on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
+                              ogdc.technology_number = ogd.technology_number
+        where fc.process_id = #{processId}
+          and position(fc.technology_number in #{technologyNumber})
+        group by fc.process_id
+    </select>
+
+    <select id="downGlassLabelPrint" resultType="java.util.Map">
+        select a.flow_card_id,
+               a.layer,
+               a.width,
+               a.height,
+               a.filmsid,
+               a.thickness,
+               a.glass_type,
+               COUNT(*) AS quantity,
+               b.tempering_layout_id,
+               b.tempering_feed_sequence
+        from down_glass_info a
+                 inner join glass_info b on a.glass_id = b.glass_id
+        where a.flow_card_id = #{processId}
+          and a.layer = #{technologyNumber}
+        group by a.flow_card_id, a.layer, a.width, a.height, a.filmsid, a.thickness, a.glass_type, a.id
+        order by a.id
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownStorageCageDetailsMapper.xml
new file mode 100644
index 0000000..5d6f3ef
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownStorageCageDetailsMapper.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.downstorage.mapper.DownStorageCageDetailsMapper">
+
+    <resultMap id="downStorageCageDetails" type="com.mes.downstorage.entity.DownStorageCageDetails">
+        <id column="id" property="id"/>
+        <result column="slot" property="slot"/>
+        <result column="glass_id" property="glassId"/>
+        <result column="sequence" property="sequence"/>
+        <result column="filmsid" property="filmsid"/>
+        <result column="flow_card_id" property="flowCardId"/>
+        <result column="glass_type" property="glassType"/>
+        <result column="width" property="width"/>
+        <result column="height" property="height"/>
+        <result column="thickness" property="thickness"/>
+        <result column="tempering_layout_id" property="temperingLayoutId"/>
+        <result column="tempering_feed_sequence" property="temperingFeedSequence"/>
+        <result column="state" property="state"/>
+        <result column="gap" property="gap"/>
+        <result column="total_layer" property="totalLayer"/>
+        <result column="layer" property="layer"/>
+    </resultMap>
+
+    <select id="getGlassInfoMaxCount" resultMap="downStorageCageDetails">
+        SELECT *
+        FROM DOWN_STORAGE_CAGE_DETAILS
+        WHERE (FLOW_CARD_ID, LAYER) = (SELECT FLOW_CARD_ID, LAYER
+        FROM DOWN_STORAGE_CAGE_DETAILS
+        WHERE STATE = 100
+        and (FLOW_CARD_ID, LAYER) not in (
+        select FLOW_CARD_ID, LAYER from down_workstation where flow_card_id is not null and workstation_id in
+        <foreach collection="workList" item="item" open='(' close=')' separator=','>
+            #{item}
+        </foreach>
+        )
+        GROUP BY FLOW_CARD_ID, LAYER
+        ORDER BY COUNT(FLOW_CARD_ID) DESC
+        LIMIT 1 )
+        AND STATE = 100
+        ORDER BY
+        WIDTH DESC,
+        HEIGHT DESC
+        LIMIT 1
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java
new file mode 100644
index 0000000..4c38ae0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java
@@ -0,0 +1,239 @@
+package mes;
+
+import com.mes.UnLoadGlassApplication;
+import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.service.DownGlassInfoService;
+import com.mes.downglassinfo.service.DownGlassTaskService;
+import com.mes.downglassinfo.service.impl.DownGlassInfoServiceImpl;
+import com.mes.downglassinfo.service.impl.DownGlassTaskServiceImpl;
+import com.mes.downstorage.entity.DownStorageCage;
+import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.downstorage.service.DownStorageCageDetailsService;
+import com.mes.downstorage.service.DownStorageCageService;
+import com.mes.downstorage.service.impl.DownStorageCageDetailsServiceImpl;
+import com.mes.downstorage.service.impl.DownStorageCageServiceImpl;
+
+import com.mes.downworkstation.entity.DownWorkstation;
+import com.mes.downworkstation.service.DownWorkstationService;
+import com.mes.downworkstation.service.impl.DownWorkstationServiceImpl;
+import com.mes.glassinfo.service.impl.GlassInfoServiceImpl;
+import com.mes.job.DownLoadCacheGlassTask;
+import com.mes.utils.Result;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.annotation.Bean;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/3/27 16:37
+ * @Description:
+ */
+@Slf4j
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = UnLoadGlassApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+
+public class UnloadGlassModuleApplicationTest {
+
+    @Autowired
+    DownStorageCageServiceImpl downStorageCageServiceImpl;
+    @Autowired
+    DownGlassTaskServiceImpl downGlassTaskServiceImpl;
+    @Autowired
+    DownGlassInfoServiceImpl downGlassInfoServiceImpl;
+    @Autowired
+    DownStorageCageDetailsServiceImpl downStorageCageDetailsServiceImpl;
+    @Autowired
+    DownStorageCageDetailsService downStorageCageDetailsService;
+    @Autowired
+    DownWorkstationServiceImpl downWorkstationServiceImpl;
+    @Autowired
+    GlassInfoServiceImpl glassInfoServiceImpl;
+    @Autowired
+    DownWorkstationService downWorkstationService;
+    @Autowired
+    DownStorageCageService downStorageCageService;
+    @Autowired
+    DownGlassTaskService downGlassTaskService;
+    @Autowired
+    DownGlassInfoService downGlassInfoService;
+
+
+
+
+    @Test
+    public void testFindPath() {
+        log.info("瀹屾暣璺緞锛歿}", Arrays.asList("123"));
+    }
+
+    @Test
+    public void testCacheGlass() {
+        //List<Map<String, Object>> map = downStorageCageServiceImpl.selectDownStorageCages();
+      //  log.info("绗煎唴淇℃伅锛歿}", Arrays.asList(map));
+        downStorageCageServiceImpl.updateDownStorageCageDetails(1,null);
+    }
+
+    @Test
+    public void testselectCacheEmpty() {
+       // List<DownStorageCageDetails> map = downStorageCageDetailsServiceImpl.getCacheLeisure();
+       // log.info("绗煎唴绌烘牸锛歿}", Arrays.asList(map));
+    }
+
+
+    @Test
+    public void testgetCacheOut() {
+       // List<DownStorageCageDetails> map = downStorageCageDetailsServiceImpl.getCacheOut(1, 5);
+      //  log.info("鏍规嵁浼犲叆鐨勫伐浣嶆煡璇㈢鍚堟寜鐓ч『搴忓拰澶у皬鍑虹墖鐨勫皬鐗囷細{}", Arrays.asList(map));
+    }
+
+
+    @Test
+    public void testupdateFlowCardIdAndCount() {
+        log.info("缁戝畾娴佺▼鍗″彿鍜屾暟閲�");
+        downWorkstationServiceImpl.updateFlowCardIdAndCount("NG24060401A020", 1, 2);
+
+    }
+
+    @Test
+    public void testplc() {
+        log.info("娴嬭瘯");
+        glassInfoServiceImpl.getGlassInfoCountByFlowCardId("NG24030702A01",1);
+
+    }
+
+
+
+    @Test
+    public void testin2() {
+        log.info("娴嬭瘯杩涚墖");
+        //downStorageCageDetailsServiceImpl.getIsExistIntoCacheByflowcardid("NG2023005",500);
+
+    }
+
+
+    @Test
+    public void selectCacheEmpty() {
+        log.info("娴嬭瘯杩涚墖");
+        //downStorageCageDetailsServiceImpl.getCacheLeisure();
+
+    }
+
+//    @Test
+//    public void CacheEmpty() {
+//        log.info("娴嬭瘯鍑虹墖");
+//        downStorageCageDetailsService.CacheOut(1,2);
+//
+//    }
+
+
+
+    @Test
+    public void CacheEmpty1() {
+        log.info("娴嬭瘯鍑虹墖");
+        downStorageCageDetailsServiceImpl.CacheOut1(1,6);
+
+    }
+
+
+
+
+    @Test
+    public void getTotalGlassDimensionsByWorkstation() {
+        log.info("宸ヤ綅鏄剧ず");
+        downWorkstationService.getTotalGlassDimensionsByWorkstation(1,3);
+
+    }
+
+
+    @Test
+    public void getMaxSequenceByFlowCardId() {
+        log.info("鏈�澶у簭鍙�");
+
+        downGlassInfoServiceImpl.getMaxSequenceByFlowCardId("NG2023005",1);
+    }
+
+    @Test
+    public void updateTaskStateToZero() {
+        log.info("鏇存柊鐘舵��0");
+
+        downGlassTaskServiceImpl.updateTaskState("3");
+    }
+
+
+    @Test
+    public void selectCacheEmpty2() {
+
+
+        downStorageCageServiceImpl.selectCacheEmpty();
+    }
+
+    @Test
+    public void getFlowCardId() {
+
+        glassInfoServiceImpl.getFlowCardId();
+
+    }
+
+    @Test
+    public void getUnloadingTaskState() {
+
+
+        downGlassInfoService.generateOutGlassTask("NG24031401A01-4-3-1-3");
+        //downGlassTaskService.getUnloadingTaskState();
+    }
+
+    @Test
+    public void updateDownWorkstationstate() {
+
+        DownWorkstation downWorkstation=  new DownWorkstation();
+
+        downWorkstation.setId(1);
+        downWorkstation.setEnableState(0);
+        downWorkstationServiceImpl.updateDownWorkstationstate(downWorkstation);
+    }
+
+
+    @Test
+    public void updateDownstate() {
+
+        DownStorageCage downStorageCage=  new DownStorageCage();
+
+        downStorageCage.setId(1);
+        downStorageCage.setEnableState(0);
+        downStorageCageServiceImpl.updateDownStorageCage(downStorageCage);
+    }
+
+
+ /*   @Test
+    public void updateDownStorageCage() {
+
+
+        DownStorageCage downStorageCage=  new DownStorageCage();
+        downStorageCage.setEnableState(0);
+        downStorageCage.setId(1);
+        downStorageCageService.updateDownStorageCage(downStorageCage);
+
+    }*/
+
+    @Test
+    public void downGlassPrint() {
+        DownGlassInfo downGlassInfo=new DownGlassInfo();
+        downGlassInfo.setFlowCardId("NG24070506A001");
+        downGlassInfo.setLayer(1);
+        downGlassInfoService.downGlassPrint(downGlassInfo);
+    }
+
+
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/pom.xml b/hangzhoumesParent/moduleService/hollowGlassModule/pom.xml
new file mode 100644
index 0000000..d6c101e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/pom.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>moduleService</artifactId>
+        <groupId>com.mes</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>hollowGlass</artifactId>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/HollowGlassApplication.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/HollowGlassApplication.java
new file mode 100644
index 0000000..d981d97
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/HollowGlassApplication.java
@@ -0,0 +1,27 @@
+package com.mes;
+
+import lombok.extern.slf4j.Slf4j;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/11/28 14:21
+ * @Description:
+ */
+@Slf4j
+@SpringBootApplication
+@EnableSwagger2WebMvc
+@EnableDiscoveryClient
+@MapperScan(basePackages = "com.mes.*.mapper")
+@EnableScheduling
+public class HollowGlassApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(HollowGlassApplication.class, args);
+    }
+}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowBigStorageCageController.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowBigStorageCageController.java
new file mode 100644
index 0000000..6e8e85c
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowBigStorageCageController.java
@@ -0,0 +1,43 @@
+package com.mes.hollow.controller;
+
+
+import com.mes.hollow.entity.dto.HollowBigStorageAndDetailsDTO;
+import com.mes.hollow.entity.vo.HollowBigStorageDetailsQueryVO;
+import com.mes.hollow.service.HollowBigStorageCageService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * (HollowBigStorageCage)琛ㄦ帶鍒跺眰
+ *
+ * @author makejava
+ * @since 2024-11-21 09:22:39
+ */
+@Api(tags = "涓┖鐞嗙墖绗艰鎯�")
+@RestController
+@RequestMapping("hollowBigStorageCage")
+public class HollowBigStorageCageController {
+    @Resource
+    HollowBigStorageCageService hollowBigStorageCageService;
+
+    @ApiOperation("鎸夌収鏌ヨ鏉′欢锛堣澶噄d銆佹祦绋嬪崱銆佽啘绯伙級鑾峰彇璁惧瀵瑰簲鐨勭瀛愮幓鐠冧俊鎭�")
+    @PostMapping("/queryHollowBigStorageCageDetail")
+    public Result<List<HollowBigStorageAndDetailsDTO>> queryHollowBigStorageCageDetail(@RequestBody HollowBigStorageDetailsQueryVO query) {
+        return Result.build(200, "鏌ヨ鎴愬姛", hollowBigStorageCageService.queryHollowBigStorageCageDetail(query));
+    }
+
+    @ApiOperation("澶嶄綅锛氶噸缃悊鐗囩鍩虹淇℃伅1銆佹竻闄ょ鍐呯姸鎬佷负0鐨勮剰鏁版嵁;2灏嗙┖鏍煎瓙鐨勫昂瀵哥疆涓哄垵濮嬪昂瀵� 3銆佸皢涓嶅湪绗煎唴鐨勬祦绋嬪崱鐨勫叧绯昏〃閲嶇疆")
+    @PostMapping("/resetCage")
+    public Result<Boolean> resetCage() {
+        return Result.build(200, "閲嶇疆鎴愬姛", hollowBigStorageCageService.resetCage());
+    }
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowBigStorageCageDetailsController.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowBigStorageCageDetailsController.java
new file mode 100644
index 0000000..e52515e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowBigStorageCageDetailsController.java
@@ -0,0 +1,58 @@
+package com.mes.hollow.controller;
+
+
+import com.mes.hollow.entity.HollowBigStorageCageDetails;
+import com.mes.hollow.entity.dto.HollowBigStorageAndDetailsDTO;
+import com.mes.hollow.service.HollowBigStorageCageDetailsService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * (HollowBigStorageCageDetails)琛ㄦ帶鍒跺眰
+ *
+ * @author makejava
+ * @since 2024-11-21 09:23:12
+ */
+@Api(tags = "涓┖鐞嗙墖绗煎瓙璇︽儏")
+@RestController
+@RequestMapping("hollowBigStorageCageDetails")
+public class HollowBigStorageCageDetailsController {
+
+    @Autowired
+    private HollowBigStorageCageDetailsService hollowBigStorageCageDetailsService;
+
+    @ApiOperation("鐞嗙墖绗艰鎯呮坊鍔�")
+    @PostMapping("/insertHollowBigStorageCageDetails")
+    public Result<List<HollowBigStorageAndDetailsDTO>> insertHollowBigStorageCageDetails(@RequestBody HollowBigStorageCageDetails details) {
+        hollowBigStorageCageDetailsService.insertHollowBigStorageCageDetails(details);
+        return Result.build(200, "娣诲姞鎴愬姛", null);
+    }
+
+    @ApiOperation("鐞嗙墖绗艰鎯呭垹闄�")
+    @PostMapping("/deleteHollowBigStorageCageDetails")
+    public Result<List<HollowBigStorageAndDetailsDTO>> deleteHollowBigStorageCageDetails(String glassId, Integer deviceId, Integer slot) {
+        hollowBigStorageCageDetailsService.deleteHollowBigStorageCageDetails(glassId, deviceId, slot);
+        return Result.build(200, "鍒犻櫎鎴愬姛", null);
+    }
+
+    @ApiOperation("鐞嗙墖绗肩鍐呯幓鐠冪牬鎹�0/鎷胯蛋1")
+    @PostMapping("/damageHollowBigStorageCageDetails")
+    public Result<List<HollowBigStorageAndDetailsDTO>> damageHollowBigStorageCageDetails(String glassId, Integer deviceId, Integer slot, int state) {
+        hollowBigStorageCageDetailsService.damageHollowBigStorageCageDetails(glassId, deviceId, slot, state);
+        return Result.build(200, "鐮存崯/鎷胯蛋鎴愬姛", null);
+    }
+
+    @ApiOperation("涓┖鐞嗙墖绗兼牸瀛愮鐢�/鍚敤")
+    @GetMapping("/updateHollowStorageCageDisabled")
+    public Result updateHollowStorageCageDisabled(int slot, int enableState) {
+        hollowBigStorageCageDetailsService.updateHollowStorageCageDisabled(slot, enableState);
+        return Result.build(200, "鍚敤/绂佺敤鎴愬姛", 1);
+    }
+
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowFormulaDetailsController.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowFormulaDetailsController.java
new file mode 100644
index 0000000..7989831
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowFormulaDetailsController.java
@@ -0,0 +1,73 @@
+package com.mes.hollow.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.mes.hollow.entity.HollowFormulaDetails;
+import com.mes.hollow.service.HollowFormulaDetailsService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * (HollowFormulaDetails)琛ㄦ帶鍒跺眰
+ *
+ * @author makejava
+ * @since 2024-12-27 13:34:59
+ */
+@Api(tags = "涓┖閰嶆柟璇︽儏淇℃伅")
+@RestController
+@RequestMapping("hollowFormulaDetails")
+public class HollowFormulaDetailsController {
+    /**
+     * 鏈嶅姟瀵硅薄
+     */
+    @Resource
+    private HollowFormulaDetailsService hollowFormulaDetailsService;
+
+    @ApiOperation("鑾峰彇閰嶆柟淇℃伅锛堝垎椤碉級")
+    @PostMapping("/pageFormulaDetails")
+    public Result<Page<HollowFormulaDetails>> pageFormulaDetails(Integer pageNo, Integer pageSize, String keyword) {
+        Page<HollowFormulaDetails> page = new Page<>(pageNo, pageSize);
+        LambdaQueryWrapper<HollowFormulaDetails> wrapper = new LambdaQueryWrapper<HollowFormulaDetails>().like(StringUtils.isNotBlank(keyword)
+                , HollowFormulaDetails::getFormulaName, keyword);
+        return Result.success(hollowFormulaDetailsService.page(page, wrapper));
+    }
+
+    @ApiOperation("鑾峰彇閰嶆柟淇℃伅锛堝垪琛級")
+    @PostMapping("/listFormulaDetails")
+    public Result<List<HollowFormulaDetails>> listFormulaDetails(String keyword) {
+        LambdaQueryWrapper<HollowFormulaDetails> wrapper = new LambdaQueryWrapper<HollowFormulaDetails>().like(StringUtils.isNotBlank(keyword)
+                , HollowFormulaDetails::getFormulaName, keyword);
+        return Result.success(hollowFormulaDetailsService.list(wrapper));
+    }
+
+    @ApiOperation("閫氳繃涓婚敭鏌ヨ鍗曟潯鏁版嵁")
+    @GetMapping("/getFormulaDetailsById")
+    public Result getFormulaDetailsById(Long id) {
+        return Result.success(hollowFormulaDetailsService.getById(id));
+    }
+
+    @ApiOperation("鏂板鏁版嵁")
+    @PostMapping("/saveFormulaDetails")
+    public Result saveFormulaDetails(@RequestBody HollowFormulaDetails hollowFormulaDetails) {
+        return Result.success(hollowFormulaDetailsService.save(hollowFormulaDetails));
+    }
+
+    @ApiOperation("淇敼鏁版嵁")
+    @PostMapping("updateFormulaDetails")
+    public Result updateFormulaDetails(@RequestBody HollowFormulaDetails hollowFormulaDetails) {
+        return Result.success(this.hollowFormulaDetailsService.updateById(hollowFormulaDetails));
+    }
+
+    @ApiOperation("鍒犻櫎鏁版嵁")
+    @PostMapping("deleteFormulaDetails")
+    public Result deleteFormulaDetails(@RequestParam("idList") List<Long> idList) {
+        return Result.success(this.hollowFormulaDetailsService.removeByIds(idList));
+    }
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowGlassOutRelationInfoController.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowGlassOutRelationInfoController.java
new file mode 100644
index 0000000..8bdeda7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowGlassOutRelationInfoController.java
@@ -0,0 +1,114 @@
+package com.mes.hollow.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.mes.hollow.entity.HollowGlassOutRelationInfo;
+import com.mes.hollow.entity.request.HollowHistoryTaskRequest;
+import com.mes.hollow.entity.request.HollowTaskRequest;
+import com.mes.hollow.service.HollowGlassOutRelationInfoService;
+import com.mes.hollowqueue.entity.HollowGlassQueueInfo;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * (HollowGlassOutRelationInfo)琛ㄦ帶鍒跺眰
+ *
+ * @author makejava
+ * @since 2024-11-30 13:57:28
+ */
+@Api(tags = "涓┖浠诲姟鍏崇郴")
+@RestController
+@RequestMapping("hollowGlassOutRelationInfo")
+public class HollowGlassOutRelationInfoController {
+
+    @Resource
+    HollowGlassOutRelationInfoService hollowGlassOutRelationInfoService;
+
+    @ApiOperation("棰嗗彇浠诲姟")
+    @PostMapping("/receiveTask")
+    public Result<HollowGlassOutRelationInfo> receiveTask(HollowTaskRequest request) {
+        HollowGlassOutRelationInfo hollowGlassOutRelationInfo = hollowGlassOutRelationInfoService.receiveTask(request);
+        if (null == hollowGlassOutRelationInfo) {
+            return Result.error(500, "褰撳墠娴佺▼鍗℃湁鏈畬鎴愮殑浠诲姟锛岃鍏堢‘淇濅换鍔″畬鎴愬悗锛屽啀娆¢鍙栦换鍔�");
+        } else {
+            return Result.success(hollowGlassOutRelationInfo);
+        }
+    }
+
+    @ApiOperation("寮哄埗鍑虹墖")
+    @PostMapping("/forceOutGlass")
+    public Result<HollowGlassOutRelationInfo> forceOutGlass(HollowTaskRequest request) {
+        HollowGlassOutRelationInfo hollowGlassOutRelationInfo = hollowGlassOutRelationInfoService.forceOutGlass(request);
+        if (null == hollowGlassOutRelationInfo) {
+            return Result.error(500, "褰撳墠娴佺▼鍗℃湁鏈畬鎴愮殑浠诲姟锛岃鍏堢‘淇濅换鍔″畬鎴愬悗锛屽啀娆″己鍒舵墽琛屼换鍔�");
+        } else {
+            return Result.success(hollowGlassOutRelationInfo);
+        }
+    }
+
+    @ApiOperation("娴佺▼鍗′换鍔″垪琛�")
+    @PostMapping("/hollowTaskList")
+    public Result<List<String>> hollowTaskList(int cell) {
+        return Result.build(200, "娴佺▼鍗′换鍔″垪琛ㄦ煡璇㈡垚鍔�", hollowGlassOutRelationInfoService.hollowTaskList(cell));
+    }
+
+    @ApiOperation("棰勮鎸囧畾浠诲姟淇℃伅")
+    @PostMapping("/appointHollowTaskDetails")
+    public Result<List<HollowGlassQueueInfo>> appointHollowTaskDetails(String flowCardId, int cell) {
+        return Result.build(200, "棰勮鎸囧畾浠诲姟淇℃伅鎴愬姛", hollowGlassOutRelationInfoService.appointHollowTaskDetails(flowCardId, cell));
+    }
+
+    @ApiOperation("鍒犻櫎鎸囧畾浠诲姟淇℃伅")
+    @PostMapping("/deleteHollowTaskDetails")
+    public Result<Boolean> deleteHollowTaskDetails(String flowCardId, int cell) {
+        return Result.build(200, "棰勮鎸囧畾浠诲姟淇℃伅鎴愬姛", hollowGlassOutRelationInfoService.deleteHollowTaskDetails(flowCardId, cell));
+    }
+
+    @ApiOperation("寮�濮嬩换鍔�")
+    @PostMapping("/startTask")
+    public Result<Boolean> startTask(String flowCardId, int cell) {
+        return Result.build(200, "寮�濮嬩换鍔℃垚鍔�", hollowGlassOutRelationInfoService.startTask(flowCardId, cell));
+    }
+
+    @ApiOperation("鏆傚仠浠诲姟")
+    @PostMapping("/pauseTask")
+    public Result<Boolean> pauseTask(String flowCardId, int cell) {
+        return Result.build(200, "鏆傚仠浠诲姟鎴愬姛", hollowGlassOutRelationInfoService.pauseTask(flowCardId, cell));
+    }
+
+    @ApiOperation("缁撴潫浠诲姟")
+    @PostMapping("/finishTask")
+    public Result<Boolean> finishTask(String flowCardId, int cell) {
+        return Result.build(200, "缁撴潫浠诲姟鎴愬姛", hollowGlassOutRelationInfoService.finishTask(flowCardId, cell));
+    }
+
+    @ApiOperation("鏄惁璋冨害寮�鍏�")
+    @PostMapping("/dispatchHollowSwitch")
+    public Result<Boolean> dispatchHollowSwitch(Boolean flag) {
+        return Result.build(200, "淇敼鎴愬姛", hollowGlassOutRelationInfoService.dispatchHollowSwitch(flag));
+    }
+
+    @ApiOperation("鎵嬪姩鐢熸垚鏉庤禌鍏嬫枃浠�")
+    @PostMapping("/generateHollowLisecFile")
+    public Result<String> generateHollowLisecFile(String flowCardId, int cell, int isForce) throws IOException {
+        return Result.build(200, "淇敼鎴愬姛", hollowGlassOutRelationInfoService.generateHollowLisecFile(flowCardId, cell, isForce, 1));
+    }
+
+    @ApiOperation("鑾峰彇涓┖浠诲姟闃熷垪")
+    @PostMapping("/queryHollowHistoryTask")
+    public Result<Page<HollowGlassOutRelationInfo>> queryHollowHistoryTask(@RequestBody @Validated HollowHistoryTaskRequest request) {
+        return Result.build(200, "淇敼鎴愬姛", hollowGlassOutRelationInfoService.queryHollowHistoryTask(request));
+    }
+
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowGlassRelationInfoController.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowGlassRelationInfoController.java
new file mode 100644
index 0000000..ec2e005
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowGlassRelationInfoController.java
@@ -0,0 +1,56 @@
+package com.mes.hollow.controller;
+
+
+import com.mes.hollow.entity.dto.LackDetailsDTO;
+import com.mes.hollow.entity.vo.HollowAllFlowCardVO;
+import com.mes.hollow.entity.vo.HollowBigStorageDetailsQueryVO;
+import com.mes.hollow.service.HollowGlassRelationInfoService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * (HollowGlassRelationInfo)琛ㄦ帶鍒跺眰
+ *
+ * @author makejava
+ * @since 2024-11-23 15:59:27
+ */
+@Api(tags = "娴佺▼鍗″叧绯�")
+@RestController
+@RequestMapping("hollowGlassRelationInfo")
+public class HollowGlassRelationInfoController {
+
+    @Resource
+    HollowGlassRelationInfoService hollowGlassRelationInfoService;
+
+    @ApiOperation("鐣岄潰鐐瑰嚮鍒涘缓浠诲姟锛氭煡璇腑绌烘墍鏈夋祦绋嬪崱瀵瑰簲鐨勭幓鐠冧俊鎭�")
+    @PostMapping("/queryHollowAllFlowCard")
+    public Result<List<HollowAllFlowCardVO>> queryHollowAllFlowCard(@RequestBody HollowBigStorageDetailsQueryVO query) {
+        List<HollowAllFlowCardVO> hollowAllFlowCardVOList = hollowGlassRelationInfoService.queryHollowAllFlowCard(query);
+        return Result.success(hollowAllFlowCardVOList);
+    }
+
+    @ApiOperation("鏌ヨ鎸囧畾娴佺▼鍗″強灞傛暟鐨勭己鐗囪鎯�")
+    @PostMapping("/queryLackByFlowCard")
+    public Result<Map<Integer, List<LackDetailsDTO>> > queryLackByFlowCard(String flowCardId) {
+        Map<Integer, List<LackDetailsDTO>>  lackDetailsList = hollowGlassRelationInfoService.queryLackByFlowCard(flowCardId);
+        return Result.success(lackDetailsList);
+    }
+
+//    @ApiOperation("鏌ヨ鎸囧畾娴佺▼鍗″強灞傛暟鐨勭己鐗囪鎯�")
+//    @PostMapping("/queryLackByFlowCard")
+//    public Result<List<LackDetailsDTO>> queryLackByFlowCard(String flowCardId) {
+//        List<LackDetailsDTO> lackDetailsList = hollowGlassRelationInfoService.queryLackByFlowCard(flowCardId);
+//        return Result.success(lackDetailsList);
+//    }
+
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCage.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCage.java
new file mode 100644
index 0000000..7da587d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCage.java
@@ -0,0 +1,55 @@
+package com.mes.hollow.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * (HollowBigStorageCage)琛ㄥ疄浣撶被
+ *
+ * @author makejava
+ * @since 2024-11-21 09:22:45
+ */
+@Data
+public class HollowBigStorageCage {
+    /**
+     * /*澶х悊鐗囩琛╥d
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * /*璁惧id
+     */
+    private Integer deviceId;
+    /**
+     * /*鏍呮牸鍙�
+     */
+    private Integer slot;
+    /**
+     * /*鏈�灏忓帤搴�
+     */
+    private Integer minThickness;
+    /**
+     * /*鏈�澶у帤搴�
+     */
+    private Integer maxThickness;
+    /**
+     * /*鍚敤鐘舵��
+     */
+    private Integer enableState;
+    /**
+     * /*鍓╀綑瀹藉害
+     */
+    private Integer remainWidth;
+
+    @ApiModelProperty(hidden = true)
+    @TableField(exist = false)
+    private List<HollowBigStorageCageDetails> hollowBigStorageCageDetails;
+
+
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCageDetails.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCageDetails.java
new file mode 100644
index 0000000..6b88d16
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCageDetails.java
@@ -0,0 +1,72 @@
+package com.mes.hollow.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.mes.base.entity.HollowBigStorageCageBaseInfo;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * (HollowBigStorageCageDetails)琛ㄥ疄浣撶被
+ *
+ * @author makejava
+ * @since 2024-11-21 09:23:12
+ */
+@Data
+public class HollowBigStorageCageDetails extends HollowBigStorageCageBaseInfo {
+    /**
+     * /*澶х悊鐗囩璇︽儏琛╥d
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * 璁惧id
+     */
+    private Integer deviceId;
+    /**
+     * /*铏氭嫙鏍煎瓙
+     */
+    private Integer virtualSlot;
+    /**
+     * /*灏忕墖鍦ㄦ牸鍐呯殑椤哄簭
+     */
+    private Integer sequence;
+    /**
+     * /*娴佺▼鍗″彿
+     */
+    private String flowCardId;
+    /**
+     * /*鐜荤拑绫诲瀷
+     */
+    private Integer glassType;
+    /**
+     * 鑶滅郴
+     */
+    private String filmsId;
+    /**
+     * /*鐘舵��
+     */
+    private Integer state;
+    /**
+     * /*鐜荤拑闂撮殭
+     */
+    private Integer gap;
+
+    private String engineerId;
+    /**
+     * /*灞傚彿
+     */
+    private Integer totalLayer;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+    /**
+     * 鏇存柊鏃堕棿
+     */
+    private Date updateTime;
+
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowFormulaDetails.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowFormulaDetails.java
new file mode 100644
index 0000000..2291580
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowFormulaDetails.java
@@ -0,0 +1,88 @@
+package com.mes.hollow.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * (HollowFormulaDetails)琛ㄥ疄浣撶被
+ *
+ * @author makejava
+ * @since 2024-12-27 13:35:03
+ */
+@Data
+public class HollowFormulaDetails {
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    @ApiModelProperty(value = "閰嶆柟鍚� 930 931")
+    private String formulaName;
+    @ApiModelProperty(value = "闄よ啘鏂瑰紡 930 931")
+    private Integer filmRemove;
+    @ApiModelProperty(value = "涓婁晶闄よ啘閲� 930 931")
+    private Integer topRemove;
+    @ApiModelProperty(value = "涓嬩晶闄よ啘閲� 930 931")
+    private Integer bottomRemove;
+    @ApiModelProperty(value = "宸︿晶闄よ啘閲� 930 931")
+    private Integer leftRemove;
+    @ApiModelProperty(value = "鍙充晶闄よ啘閲� 930 931")
+    private Integer rightRemove;
+    /**
+     * 鍒嗗壊绾�
+     */
+    @ApiModelProperty(value = "闂撮殧鏉�1浠g爜 930涓撶敤")
+    private String frameOne;
+    @ApiModelProperty(value = "闂撮殧鏉�2浠g爜 930涓撶敤")
+    private String frameTwo;
+    @ApiModelProperty(value = "闂撮殧鏉�3浠g爜 930涓撶敤")
+    private String frameThree;
+    @ApiModelProperty(value = "闂撮殧鏉�4浠g爜 930涓撶敤")
+    private String frameFour;
+    @ApiModelProperty(value = "瀵嗗皝宓屽叆 930涓撶敤")
+    private String sealInsert;
+    @ApiModelProperty(value = "姘斾綋1(0鏃� 1鏈�) 930涓撶敤")
+    private String casOne;
+    @ApiModelProperty(value = "姘斾綋2(0鏃� 1鏈�) 930涓撶敤")
+    private String casTwo;
+    @ApiModelProperty(value = "姘斾綋3(0鏃� 1鏈�) 930涓撶敤")
+    private String casThree;
+    @ApiModelProperty(value = "姘斾綋4(0鏃� 1鏈�) 930涓撶敤")
+    private String casFour;
+    @ApiModelProperty(value = "闂撮殧妗嗙被鍨�1锛坱ps鑳朵负05 閾濋棿闅旀潯01锛� 930涓撶敤")
+    private String intervalFrameTypeOne;
+    @ApiModelProperty(value = "闂撮殧妗嗗搴�1 930涓撶敤")
+    private String intervalFrameWidthOne;
+    @ApiModelProperty(value = "闂撮殧妗嗛珮搴�1 930涓撶敤")
+    private String intervalFrameHeightOne;
+    @ApiModelProperty(value = "闂撮殧妗嗙被鍨�2锛坱ps鑳朵负05 閾濋棿闅旀潯01锛� 930涓撶敤")
+    private String intervalFrameTypeTwo;
+    @ApiModelProperty(value = "闂撮殧妗嗗搴�2 930涓撶敤")
+    private String intervalFrameWidthTwo;
+    @ApiModelProperty(value = "闂撮殧妗嗛珮搴�2 930涓撶敤")
+    private String intervalFrameHeightTwo;
+    @ApiModelProperty(value = "闂撮殧妗嗙被鍨�3锛坱ps鑳朵负05 閾濋棿闅旀潯01锛� 930涓撶敤")
+    private String intervalFrameTypeThree;
+    @ApiModelProperty(value = "闂撮殧妗嗗搴�3 930涓撶敤")
+    private String intervalFrameWidthThree;
+    @ApiModelProperty(value = "闂撮殧妗嗛珮搴�3 930涓撶敤")
+    private String intervalFrameHeightThree;
+    @ApiModelProperty(value = "闂撮殧妗嗙被鍨�4锛坱ps鑳朵负05 閾濋棿闅旀潯01锛� 930涓撶敤")
+    private String intervalFrameTypeFour;
+    @ApiModelProperty(value = "闂撮殧妗嗗搴�4 930涓撶敤")
+    private String intervalFrameWidthFour;
+    @ApiModelProperty(value = "闂撮殧妗嗛珮搴�4 930涓撶敤")
+    private String intervalFrameHeightFour;
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+    /**
+     * 鏇存柊鏃堕棿
+     */
+    private Date updateTime;
+
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowGlassOutRelationInfo.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowGlassOutRelationInfo.java
new file mode 100644
index 0000000..b9e803e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowGlassOutRelationInfo.java
@@ -0,0 +1,68 @@
+package com.mes.hollow.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * (HollowGlassOutRelationInfo)琛ㄥ疄浣撶被
+ *
+ * @author makejava
+ * @since 2024-11-30 13:57:29
+ */
+@Data
+public class HollowGlassOutRelationInfo {
+    /**
+     * /*涓┖鐜荤拑鍏崇郴琛╥d
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * /*娴佺▼鍗�
+     */
+    private String flowCardId;
+    /**
+     * /*鎬诲眰鏁�
+     */
+    private Integer totalLayer;
+    /**
+     * /*璺嚎
+     */
+    private Integer cell;
+    /**
+     * /*鐘舵��0鏂板 1鎵ц涓� 2鏆傚仠 3缁撴潫
+     */
+    private Integer state;
+    /**
+     * 鎬婚厤瀵规暟閲�
+     */
+    private Integer totalPairQuantity;
+    /**
+     * 宸插畬鎴愰厤瀵规暟閲�
+     */
+    private Integer pairQuantity;
+
+    /**
+     * 鏄惁寮哄埗
+     */
+    private Integer isForce;
+
+    /**
+     * 鏄惁寮哄埗
+     */
+    private Long formulaId;
+    /**
+     * /*鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+    /**
+     * /*鏇存柊鏃堕棿
+     */
+    private Date updateTime;
+
+
+}
+
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowGlassRelationInfo.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowGlassRelationInfo.java
new file mode 100644
index 0000000..39648e8
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowGlassRelationInfo.java
@@ -0,0 +1,95 @@
+package com.mes.hollow.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+/**
+ * (HollowGlassRelationInfo)琛ㄥ疄浣撶被
+ *
+ * @author makejava
+ * @since 2024-11-23 15:59:29
+ */
+@Data
+public class HollowGlassRelationInfo {
+    /**
+     * /*涓┖鐜荤拑鍏崇郴琛╥d
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    private String engineerId;
+
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+
+    /**
+     * 閽㈠寲鐗堝浘鐗囧簭
+     */
+    private Integer temperingFeedSequence;
+
+    /**
+     * /*鐜荤拑ID
+     */
+    private String glassId;
+    /**
+     * /*娴佺▼鍗�
+     */
+    private String flowCardId;
+
+    /**
+     * 鑶滅郴
+     */
+    private String filmsId;
+
+    /**
+     * 瀹藉害
+     */
+    private double width;
+
+    /**
+     * 楂樺害
+     */
+    private double height;
+
+    /**
+     * /*鍘氬害
+     */
+    private Double thickness;
+    /**
+     * /*鎬诲眰鏁�
+     */
+    private Integer totalLayer;
+    /**
+     * /*灞傛暟
+     */
+    private Integer layer;
+    /**
+     * /*铏氭嫙鏍煎瓙鍙�
+     */
+    private Integer virtualSlot;
+    /**
+     * /*涓┖鏍煎瓙娆″簭
+     */
+    private Integer slotSequence;
+    /**
+     * /*涓┖鎬绘搴�
+     */
+    private Integer hollowSequence;
+    /**
+     * /*涓┖鎬绘搴�
+     */
+    private Integer orderSort;
+    /**
+     * /*鐘舵�侊細琛ㄧず閰嶅鐨勭幓鐠冩槸鍚﹁繘绗硷紝0鏈繘绗� 1宸插崰鐢� 2杩涚瀹屾垚
+     */
+    private Integer state;
+
+
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/BigStorageSequenceDTO.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/BigStorageSequenceDTO.java
new file mode 100644
index 0000000..151d858
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/BigStorageSequenceDTO.java
@@ -0,0 +1,17 @@
+package com.mes.hollow.entity.dto;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/11/25 18:53
+ * @Description:
+ */
+@Data
+public class BigStorageSequenceDTO {
+
+    private Integer slot;
+    private Integer maxSequence;
+    private Integer minSequence;
+
+}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/FlowCardGlassInfoDTO.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/FlowCardGlassInfoDTO.java
new file mode 100644
index 0000000..4c50e7d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/FlowCardGlassInfoDTO.java
@@ -0,0 +1,61 @@
+package com.mes.hollow.entity.dto;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/11/30 13:34
+ * @Description:
+ */
+@Data
+public class FlowCardGlassInfoDTO {
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    private String engineerId;
+    /**
+     * 娴佺▼鍗�
+     */
+    private String flowCardId;
+    /**
+     * 浜у搧鍚嶇О
+     */
+    private String productName;
+    /**
+     * 鑶滅郴
+     */
+    private String filmsId;
+    /**
+     * 鍘氬害
+     */
+    private int thickness;
+    /**
+     * 灞傚彿
+     */
+    private int layer;
+    /**
+     * 灞傚彿
+     */
+    private int sumCount;
+    /**
+     * 閰嶅鏁伴噺
+     */
+    private int pairCount;
+    /**
+     * 瀹為檯鏁伴噺
+     */
+    private int realCount;
+    /**
+     * 鐮存崯鏁伴噺
+     */
+    private int damageCount;
+    /**
+     * 缂哄皯鏁伴噺
+     */
+    private int lackCount;
+    /**
+     * 鍗犵敤鏍煎瓙
+     */
+    private int slotCount;
+}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/FlowCardVirtualSlotDTO.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/FlowCardVirtualSlotDTO.java
new file mode 100644
index 0000000..84670d9
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/FlowCardVirtualSlotDTO.java
@@ -0,0 +1,25 @@
+package com.mes.hollow.entity.dto;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/11/30 16:10
+ * @Description:
+ */
+@Data
+public class FlowCardVirtualSlotDTO {
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String flowCardId;
+    /**
+     * 灞傚彿
+     */
+    private Integer layer;
+    /**
+     * /*铏氭嫙鏍煎瓙
+     */
+    private Integer virtualSlot;
+}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/HollowBigStorageAndDetailsDTO.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/HollowBigStorageAndDetailsDTO.java
new file mode 100644
index 0000000..48381de
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/HollowBigStorageAndDetailsDTO.java
@@ -0,0 +1,18 @@
+package com.mes.hollow.entity.dto;
+
+import com.mes.hollow.entity.HollowBigStorageCage;
+import com.mes.hollow.entity.HollowBigStorageCageDetails;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/6/11 16:45
+ * @Description:
+ */
+@Data
+public class HollowBigStorageAndDetailsDTO extends HollowBigStorageCage {
+
+    private List<HollowBigStorageCageDetails> hollowBigStorageCageDetails;
+}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/HollowBigStorageDTO.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/HollowBigStorageDTO.java
new file mode 100644
index 0000000..343c97a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/HollowBigStorageDTO.java
@@ -0,0 +1,31 @@
+package com.mes.hollow.entity.dto;
+
+import com.mes.hollow.entity.HollowGlassRelationInfo;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/11/27 11:36
+ * @Description:
+ */
+@Data
+public class HollowBigStorageDTO extends HollowGlassRelationInfo {
+    /**
+     * 鏍煎瓙鍙�
+     */
+    private Integer slot;
+    /**
+     * 鍓╀綑瀹藉害
+     */
+    private Integer remainWidth;
+
+    /**
+     * 鐜荤拑鏁伴噺
+     */
+    private Integer glassCount;
+
+    /**
+     * 绗煎瓙鍙�
+     */
+    private Integer deviceId;
+}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/HollowGlassDetailsDTO.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/HollowGlassDetailsDTO.java
new file mode 100644
index 0000000..f4347e1
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/HollowGlassDetailsDTO.java
@@ -0,0 +1,50 @@
+package com.mes.hollow.entity.dto;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/11/28 23:35
+ * @Description:
+ */
+@Data
+public class HollowGlassDetailsDTO {
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String flowCardId;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private Integer orderSort;
+    /**
+     * 瀹藉害
+     */
+    private double width;
+
+    /**
+     * 楂樺害
+     */
+    private double height;
+
+    /**
+     * /*鍘氬害
+     */
+    private double thickness;
+    /**
+     * /*灞傛暟
+     */
+    private Integer layer;
+
+    /**
+     * 鏁伴噺
+     */
+    private Integer quantity;
+
+    /**
+     * /*涓┖鎬绘搴�
+     */
+    private Integer hollowSequence;
+}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LackDetailsDTO.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LackDetailsDTO.java
new file mode 100644
index 0000000..03b3924
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LackDetailsDTO.java
@@ -0,0 +1,53 @@
+package com.mes.hollow.entity.dto;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/11/25 18:53
+ * @Description:
+ */
+@Data
+public class LackDetailsDTO {
+
+    /**
+     * 娴佺▼鍗�
+     */
+    private String flowCardId;
+    /**
+     * 娴佺▼鍗�
+     */
+    private int layer;
+    /**
+     * 鑶滅郴
+     */
+    private String filmsId;
+    /**
+     * 瀹藉害
+     */
+    private double width;
+
+    /**
+     * 楂樺害
+     */
+    private double height;
+
+    /**
+     * /*鍘氬害
+     */
+    private Double thickness;
+    /**
+     * /*鎬荤墖鏁�
+     */
+    private Integer totalCount;
+    /**
+     * /*缂哄皯鐗囨暟
+     */
+    private Integer lackCount;
+    /**
+     * /*鐮存崯鐗囨暟
+     */
+    private Integer damageCount;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowDetails.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowDetails.java
new file mode 100644
index 0000000..accae5f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowDetails.java
@@ -0,0 +1,54 @@
+package com.mes.hollow.entity.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/12/30 17:40
+ * @Description:
+ */
+@Data
+public class LisecHollowDetails {
+
+    private String relRecType = "<REL>";
+    //鐗堟湰鍙�	03.00
+    private String relNumber = "03.00";
+    //鍏朵粬鐗堟湰淇℃伅
+    private String relInfo;
+
+    private String bthRecType = "<BTH>";
+    //鎵规淇℃伅
+    private String bathInfo;
+    //璧峰鏉″舰鐮侊紙浠呴�傜敤浜庡敮涓�鏉″舰鐮侊級	鑷劧鏁� 鍚庡彴锛氶殢鏈�6浣嶆暟瀛�
+    private String bcdStart;
+    //瀹屾暣鎵规鍙凤紙鍚庝笁浣嶄笌鏂囦欢鍚庣紑蹇呴』鐩稿悓锛�	鑷劧鏁帮紝鍚庝笁浣嶄笌鏂囦欢鍚庣紑蹇呴』鐩稿悓 鍚庡彴锛氶殢鏈�8浣嶆暟瀛�
+    private String batchNo;
+    //
+    private String ordRecType = "<ORD>";
+    //鍞竴璁㈠崟鍙�	鑷劧鏁帮紝寤鸿鍙傝�僂RP绯荤粺涓笌娴佺▼鍗″彿鐩稿搴旂殑璁㈠崟鍙� 鍚庡彴锛氳鍗曞彿NG24111491C002鎴彇 24111491
+    private String ord;
+    //瀹㈡埛缂栧彿	鍚庡彴锛歴d搴� order琛�
+    private String custNum;
+    //瀹㈡埛鍚嶇О	鍚庡彴锛歴d搴� order琛�
+    private String custNam;
+    //璁㈠崟闄勫姞淇℃伅1
+    private String text1;
+    //璁㈠崟闄勫姞淇℃伅2
+    private String text2;
+    //璁㈠崟闄勫姞淇℃伅3
+    private String text3;
+    //璁㈠崟闄勫姞淇℃伅4
+    private String text4;
+    //璁㈠崟闄勫姞淇℃伅5
+    private String text5;
+    //鐢熶骇鏃ユ湡	鍙互浣跨敤鐜荤拑绂诲紑鐞嗙墖绯荤粺鐨勬棩鏈� 绗竴娆℃姤宸ユ椂闂�
+    private String proDate;
+    //浜よ揣鏃ユ湡	寤鸿鍙傝�僂RP绯荤粺涓鍗曠殑浜よ揣鏃ユ湡 sd搴� order琛�
+    private String delDate;
+    //浜よ揣鍖哄煙
+    private String delArea;
+    //涓┖鐜荤拑淇℃伅
+    List<LisecHollowGlassAndFrameDetails> glassAndFrameList;
+}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowFrameDetails.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowFrameDetails.java
new file mode 100644
index 0000000..a33ee8b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowFrameDetails.java
@@ -0,0 +1,38 @@
+package com.mes.hollow.entity.dto;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/12/30 17:40
+ * @Description:
+ */
+@Data
+public class LisecHollowFrameDetails {
+
+    public LisecHollowFrameDetails(String recType, String type, String width, String height) {
+        this.recType = recType;
+        this.type = type;
+        this.width = width;
+        this.height = height;
+    }
+
+    private String recType;
+    //椤圭洰鏁伴噺鎸囨暟锛堝鏋滄墍鏈夎褰曠浉鍚岋紝鍒欎负0锛�	鐢�0濉厖鍗冲彲
+    private String itemInx = "0";
+    //鎻忚堪	浠绘剰瀛楃濉厖
+    private String descript = "1";
+    //妗嗘灦绫诲瀷锛�0閾� 1閽� 2涓嶉攬閽� 3濉戞枡 4瓒呴棿闅斿櫒 5tps 6t鍨嬪灚鐗� 7duralite 8duraseal 9鐟炲+鑿� 10iet 11gss 12triseal 13鑸掔 14chromatech  锛�	闂撮殧妗嗙被鍨嬶紝TPS鑳朵负05锛岄摑闂撮殧鏉′负01
+    private String type;
+    //棰滆壊	鐢�0濉厖鍗冲彲
+    private String color = "0";
+    //瀹藉害 mm*10	闂撮殧妗嗗搴�
+    private String width;
+    //楂樺害 mm*10	闂撮殧妗嗛珮搴�
+    private String height;
+    //韬唤鏍囪瘑
+    private String ident = "";
+    //鏉″舰鐮�
+    private String frameBcd = "";
+
+}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowGlassAndFrameDetails.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowGlassAndFrameDetails.java
new file mode 100644
index 0000000..214c086
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowGlassAndFrameDetails.java
@@ -0,0 +1,72 @@
+package com.mes.hollow.entity.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/12/30 17:40
+ * @Description:
+ */
+@Data
+public class LisecHollowGlassAndFrameDetails {
+
+    private String recType = "<POS>";
+    //椤圭洰缂栧彿(姣忎釜璁㈠崟鐨刬tem_num蹇呴』鏄敮涓�鐨� = 璁板綍)	鍙互浣跨敤00001锛�00002...鐨勭疮鍔犳帓搴忔柟寮�	鍚庡彴锛氭寜瀵规暟渚濇鍔�
+    private String itemNum;
+    //璇嗗埆鍙�	鑷劧鏁�	鍚庡彴锛氬悓姝ラ」鐩紪鍙�
+    private String idNum;
+    //鏉″舰鐮佺紪鍙凤細浠呮潯褰㈢爜缂栧彿鐨勬渶鍚�3/4浣嶆暟瀛楋紙鎬昏6/7浣嶆暟瀛楋級锛屽墠涓変綅鏁板瓧鐢辨壒鍙风粰鍑�	鑷劧鏁�	鍚庡彴锛氭潯褰㈢爜鍚庝笁浣�
+    private String barcode;
+    //鏁伴噺	璇ラ」鐩�/灏哄鐨勭幓鐠冩暟閲�
+    private String qty = "00001";
+    //瀹藉害 mm*10
+    private String width;
+    //楂樺害 mm*10
+    private String height;
+    //鐜荤拑1浠g爜	鑷劧鏁�
+    private String glass1;
+    //闂撮殧鐗�1浠g爜	鑷劧鏁�	鐣岄潰锛氶棿闅旂増瀵瑰簲缂栧彿瀛楀吀
+    private String frame1;
+    //鐜荤拑2浠g爜	鑷劧鏁�
+    private String glass2;
+    //闂撮殧鐗�2浠g爜		鐣岄潰锛氶棿闅旂増瀵瑰簲缂栧彿瀛楀吀
+    private String frame2;
+    //鐜荤拑3浠g爜
+    private String glass3;
+    //闂撮殧鐗�3浠g爜		鐣岄潰锛氶棿闅旂増瀵瑰簲缂栧彿瀛楀吀
+    private String frame3;
+    //鐜荤拑4浠g爜
+    private String glass4;
+    //闂撮殧鐗�4浠g爜		鐣岄潰锛氶棿闅旂増瀵瑰簲缂栧彿瀛楀吀
+    private String frame4;
+    //鐜荤拑5浠g爜
+    private String glass5;
+    //瀵嗗皝宓屽叆mm*10	寤鸿涓庡鎴峰崗鍟嗭紝宓屽叆浣嶄笌鐜荤拑鍘氬害鍙婅兌鍘氬害鏈夊叧锛屼笉鍚岀敤鎴峰璇ュ�兼湁涓嶅悓瑕佹眰	鐣岄潰锛氬瘑灏佸祵鍏�
+    private String inset;
+    //妗嗘灦鏂囨湰缂栧彿	鑷劧鏁�
+    private String frameTxt;
+    //姘斾綋1绫诲瀷缂栫爜	鑻ユ棤闇�鍏呮皵鍙~000000000	鐣岄潰锛氭皵浣撶被鍨嬬紪鍙峰瓧鍏�
+    private String gasCode1;
+    //姘斾綋2绫诲瀷缂栫爜		鐣岄潰锛氭皵浣撶被鍨嬬紪鍙峰瓧鍏�
+    private String gasCode2;
+    //姘斾綋3绫诲瀷缂栫爜		鐣岄潰锛氭皵浣撶被鍨嬬紪鍙峰瓧鍏�
+    private String gasCode3;
+    //姘斾綋4绫诲瀷缂栫爜		鐣岄潰锛氭皵浣撶被鍨嬬紪鍙峰瓧鍏�
+    private String gasCode4;
+    //瀵嗗皝鏉愭枡浠g爜	鐢�0濉厖鍗冲彲
+    private String sealType = "0";
+    //鍏冧欢绐楀彛绫诲瀷缂栧彿锛�0鍥哄畾 1閫氶鍙o級	鐢�0濉厖鍗冲彲
+    private String frahType = "0";
+    //绐楀彛楂樺害mm*10	鐢�0濉厖鍗冲彲
+    private String frahHoe = "0";
+    //鏁翠釜鍗曞厓鏍肩獥鍙f柟鍚戯紙0鏃犲浘妗� 1姘村钩鍥炬 2鍨傜洿鍥炬锛�	鐢�0濉厖鍗冲彲
+    private String pattDir = "0";
+    //椤圭洰浣跨敤鎯呭喌锛�0 dgu鍗曚綅  1銆�2銆�3銆�4 LAM DGU锛�	鐢�0濉厖鍗冲彲
+    private String dguPane = "0";
+
+    List<LisecHollowGlassDetails> glassList;
+    List<LisecHollowFrameDetails> frameList;
+
+}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowGlassDetails.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowGlassDetails.java
new file mode 100644
index 0000000..a5c9d89
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowGlassDetails.java
@@ -0,0 +1,38 @@
+package com.mes.hollow.entity.dto;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/12/30 17:40
+ * @Description:
+ */
+@Data
+public class LisecHollowGlassDetails {
+    //
+    private String recType;
+    //椤圭洰鏁伴噺鎸囨暟锛堝鏋滄墍鏈夎褰曠浉鍚岋紝鍒欎负0锛�	鐢�0濉厖鍗冲彲
+    private String itemInx = "0";
+    //鐜荤拑鎻忚堪	浠绘剰瀛楃濉厖
+    private String descript = "8-0";
+    //鐜荤拑琛ㄩ潰绫诲瀷锛�0娴姩 1杞秱灞� 2鍥炬 3纭秱灞傦級	涓庣幓鐠冭〃闈㈢被鍨嬫湁鍏筹紝濉�0-5涔嬮棿鐨勫父鏁� 鐢�0濉厖鍗冲彲
+    private String surface = "0";
+    //鍘氬害 mm*10
+    private String thickness;
+    //娑傚眰鐨勪晶闈�/鍥炬鍖朌GU(0 鏃犻潰渚� 1姝i潰渚� 2鑳岄潰渚�)	鐢�0濉厖鍗冲彲
+    private String faceSide = "0";
+    //韬唤鏍囪瘑	鐢�1濉厖鍗冲彲
+    private String ident = "1";
+    //鐜荤拑鏉縓鐨勫浘妗堟柟鍚戯紙0鏃犲浘妗� 1姘村钩鍥炬 2鍨傜洿鍥炬锛�	鐢�0濉厖鍗冲彲
+    private String pattDir = "0";
+    //绐楁牸鏍囪瘑锛堟潯褰㈢爜锛�	鑷劧鏁� 鏉″舰鐮�
+    private String paneBcd = "0";
+    //绐楁牸缂栧彿	鐢�0濉厖鍗冲彲
+    private String prodPane;
+    //缁勪欢缂栧彿	鐢�0濉厖鍗冲彲
+    private String prodComp = "0";
+    //    绫诲埆缂栧彿 鏉愭枡绫诲瀷锛�0鏈畾涔� 1娴瓙 2灞傚帇 3闃插脊 4澧為煣 5娴囩鏍戣剛/闃茬伀瑁呯疆锛�
+    private String gategory = "0";
+
+
+}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/OrderDTO.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/OrderDTO.java
new file mode 100644
index 0000000..3fb9134
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/OrderDTO.java
@@ -0,0 +1,185 @@
+package com.mes.hollow.entity.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/1/3 9:36
+ * @Description:
+ */
+@Data
+public class OrderDTO {
+
+    /**
+     * <璁㈠崟琛�>
+     */
+    private Integer id;
+    /**
+     * 璁㈠崟Id
+     */
+    private String orderId;
+    /**
+     * 椤圭洰鍚嶇О
+     */
+    private String project;
+    /**
+     * 瀹㈡埛Id
+     */
+    private Long customerId;
+    /**
+     * 瀹㈡埛鍚嶇О
+     */
+    private String customerName;
+    /**
+     * 璁㈠崟绫诲瀷
+     */
+    private String orderType;
+    /**
+     * 璁㈠崟鍒嗙被
+     */
+    private String orderClassify;
+    /**
+     * 鍟嗘爣閫夐」
+     */
+    private String icon;
+    /**
+     * 鍖呰鏂瑰紡
+     */
+    private String packType;
+    /**
+     * 閫佽揣鏃堕棿
+     */
+    private Date deliveryDate;
+    /**
+     * 鎵规
+     */
+    private String batch;
+    /**
+     * 璁$畻鏂瑰紡
+     */
+    private Integer calculateType;
+    /**
+     * 閿�鍞汉鍛業d
+     */
+    private String salesmanId;
+    /**
+     * 閿�鍞汉
+     */
+    private String salesman;
+    /**
+     * 閾濇潯鏂瑰紡
+     */
+    private String alType;
+    /**
+     * 閲戦
+     */
+    private Double money;
+    /**
+     * 鍚堝悓缂栧彿
+     */
+    private String contractId;
+    /**
+     * 瀹㈡埛鎵规
+     */
+    private String customerBatch;
+    /**
+     * 鑱旂郴浜�
+     */
+    private String contacts;
+    /**
+     * 鑱旂郴鐢佃瘽
+     */
+    private String contactNumber;
+    /**
+     * 閫佽揣鍦板潃
+     */
+    private String deliveryAddress;
+    /**
+     * 鍏朵粬閲戦
+     */
+    private Double otherMoney;
+    /**
+     * 鍏朵粬閲戦澶囨敞
+     */
+    private String otherMoneyRemarks;
+    /**
+     * 璁㈠崟鍔犲伐澶囨敞
+     */
+    private String processingNote;
+    /**
+     * 鍏朵粬澶囨敞
+     */
+    private String otherRemarks;
+    /**
+     * 闈㈢Н
+     */
+    private Double area;
+    /**
+     * 鏁伴噺
+     */
+    private Long quantity;
+    /**
+     * 鍛ㄩ暱
+     */
+    private String perimeter;
+    /**
+     * 瀹℃牳浜篿d
+     */
+    private String verifierId;
+    /**
+     * 瀹℃牳浜�
+     */
+    private String verifier;
+    /**
+     * 鍒涘缓浜篿d
+     */
+    private String creatorId;
+    /**
+     * 鍒涘缓浜�
+     */
+    private String creator;
+    /**
+     * 涓嬪崟
+     */
+    private Integer createOrder;
+    /**
+     * 宸ヨ壓瀹℃牳
+     */
+    private Integer processReview;
+    /**
+     * 璁㈠崟瀹℃牳
+     */
+    private Integer orderReview;
+    /**
+     * 鐢熶骇璁㈠崟
+     */
+    private Integer productionOrder;
+    /**
+     * 娴佺▼鍗�
+     */
+    private Integer processingCard;
+    /**
+     * 鍏ュ簱
+     * 鏈叆搴撶姸鎬�0锛屾湭瀹屽叏鍏ュ簱鐘舵��1锛屽畬鍏ㄥ叆搴撶姸鎬�2
+     */
+    private Integer warehousing;
+    /**
+     * 鍙戣揣
+     */
+    private Integer delivery;
+    /**
+     * 鎵撳嵃娆℃暟
+     */
+    private Integer printingNumber;
+    /**
+     * 鍒涘缓鏃ユ湡
+     */
+    private Date createTime;
+    /**
+     * 淇敼鏃堕棿
+     */
+    private Date updateTime;
+
+}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/UpdateHollowBigStorageCageDTO.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/UpdateHollowBigStorageCageDTO.java
new file mode 100644
index 0000000..e0c9392
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/UpdateHollowBigStorageCageDTO.java
@@ -0,0 +1,16 @@
+package com.mes.hollow.entity.dto;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/7/26 9:05
+ * @Description:
+ */
+@Data
+public class UpdateHollowBigStorageCageDTO {
+
+    private String glassId;
+
+    private int targetSlot;
+}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/request/HollowHistoryTaskRequest.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/request/HollowHistoryTaskRequest.java
new file mode 100644
index 0000000..cf446bf
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/request/HollowHistoryTaskRequest.java
@@ -0,0 +1,48 @@
+package com.mes.hollow.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.mes.base.entity.PageRequest;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/3/11 14:15
+ * @Description:
+ */
+@ApiModel(description = "涓┖鍘嗗彶浠诲姟璇锋眰")
+@Data
+public class HollowHistoryTaskRequest extends PageRequest {
+
+    @ApiModelProperty(value = "绾胯矾鎸夌収瀹為檯鐣岄潰榛樿 璺嚎锛�930锛堟潕璧涘厠锛岀晫闈㈤渶瑕佽緭鍏ョ浉鍏虫暟鎹級 931")
+    private int cell;
+
+    @ApiModelProperty(value = "娴佺▼鍗�")
+    private String flowCardId;
+
+    @ApiModelProperty(value = "鏄惁寮哄埗 0闈炲己鍒� 1寮哄埗")
+    private List<Integer>isForceList;
+
+    @ApiModelProperty(value = "鐘舵��0鏂板 1鎵ц涓� 2鏆傚仠 3缁撴潫")
+    private List<Integer> stateList;
+    /**
+     * 寮�濮嬫椂闂�
+     */
+    @ApiModelProperty(value = "寮�濮嬫椂闂�", position = 6)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date beginDate;
+
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @ApiModelProperty(value = "缁撴潫鏃堕棿", position = 7)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endDate;
+}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/request/HollowTaskRequest.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/request/HollowTaskRequest.java
new file mode 100644
index 0000000..9fdd7da
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/request/HollowTaskRequest.java
@@ -0,0 +1,28 @@
+package com.mes.hollow.entity.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/12/26 20:40
+ * @Description:
+ */
+@ApiModel(description = "涓┖浠诲姟淇℃伅琛�")
+@Data
+public class HollowTaskRequest {
+
+    @ApiModelProperty(value = "娴佺▼鍗�")
+    private String flowCardId;
+    @ApiModelProperty(value = "璺嚎锛�930锛堟潕璧涘厠锛岀晫闈㈤渶瑕佽緭鍏ョ浉鍏虫暟鎹級 931")
+    private int cell;
+    @ApiModelProperty(value = "閰嶅鏁伴噺")
+    private int totalPairQuantity;
+    @ApiModelProperty(value = "閰嶆柟id")
+    private Long formulaId;
+
+
+}
+
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/vo/HollowAllFlowCardVO.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/vo/HollowAllFlowCardVO.java
new file mode 100644
index 0000000..54001ec
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/vo/HollowAllFlowCardVO.java
@@ -0,0 +1,32 @@
+package com.mes.hollow.entity.vo;
+
+import com.mes.hollow.entity.dto.FlowCardGlassInfoDTO;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/4/9 16:26
+ * @Description:
+ */
+@Data
+public class HollowAllFlowCardVO {
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String FlowCardId;
+    /**
+     * 浜у搧鍚嶇О
+     */
+    private String ProductName;
+    /**
+     * 鏄惁鐩撮��
+     */
+    private Boolean isThroughSlot;
+
+    /**
+     * 娴佺▼鍗℃暟鎹�
+     */
+    private List<FlowCardGlassInfoDTO> flowCardGlassInfoDTOList;
+}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/vo/HollowBigStorageDetailsQueryVO.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/vo/HollowBigStorageDetailsQueryVO.java
new file mode 100644
index 0000000..5685241
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/vo/HollowBigStorageDetailsQueryVO.java
@@ -0,0 +1,29 @@
+package com.mes.hollow.entity.vo;
+
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/12/23 10:48
+ * @Description:
+ */
+@Data
+public class HollowBigStorageDetailsQueryVO {
+    /**
+     * 璁惧id
+     */
+    private Integer deviceId;
+    /**
+     * 娴佺▼鍗�
+     */
+    private String flowCardId;
+    /**
+     * 鑶滅郴
+     */
+    private String filmsId;
+    /**
+     * 鍘氬害
+     */
+    private int thickness;
+
+}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/vo/HollowGlassFormulaVO.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/vo/HollowGlassFormulaVO.java
new file mode 100644
index 0000000..9cd6c2b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/vo/HollowGlassFormulaVO.java
@@ -0,0 +1,28 @@
+package com.mes.hollow.entity.vo;
+
+import com.mes.hollow.entity.HollowFormulaDetails;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/12/30 15:34
+ * @Description:
+ */
+@Data
+public class HollowGlassFormulaVO extends HollowFormulaDetails {
+
+    /**
+     * 瀹藉害
+     */
+    private double width;
+
+    /**
+     * 楂樺害
+     */
+    private double height;
+
+    /**
+     * /*鍘氬害
+     */
+    private Double thickness;
+}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowBigStorageCageDetailsMapper.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowBigStorageCageDetailsMapper.java
new file mode 100644
index 0000000..4c07501
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowBigStorageCageDetailsMapper.java
@@ -0,0 +1,42 @@
+package com.mes.hollow.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.base.entity.vo.BigStorageVO;
+import com.mes.hollow.entity.HollowBigStorageCageDetails;
+import com.mes.hollow.entity.dto.BigStorageSequenceDTO;
+import com.mes.hollow.entity.dto.FlowCardGlassInfoDTO;
+import com.mes.hollow.entity.dto.FlowCardVirtualSlotDTO;
+import com.mes.hollow.entity.dto.UpdateHollowBigStorageCageDTO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * (HollowBigStorageCageDetails)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author makejava
+ * @since 2024-11-21 09:23:12
+ */
+public interface HollowBigStorageCageDetailsMapper extends BaseMapper<HollowBigStorageCageDetails> {
+
+    void updateBySlot(@Param("list") List<UpdateHollowBigStorageCageDTO> storageCageDTOList, @Param("state") Integer state);
+
+    List<FlowCardGlassInfoDTO> hollowIsAll(@Param("flowCardId") String flowCardId, @Param("totalLayer") int totalLayer, @Param("flag") Boolean flag);
+
+    List<FlowCardVirtualSlotDTO> queryIsAllNeedDispatchVirtualSlot();
+
+    List<BigStorageSequenceDTO> queryNeedDispatchSlot(FlowCardVirtualSlotDTO flowCardVirtualSlotDTO);
+
+    List<HollowBigStorageCageDetails> queryOutGlassList(@Param("flowCardId") String flowCardId, @Param("cell") int cell);
+
+    List<BigStorageVO> queryHollowbigStorageCageDetail();
+
+    List<HollowBigStorageCageDetails> querySlotMaxSequence(@Param("flowCardId") String flowCardId, @Param("totalLayer") Integer totalLayer, @Param("layer") Integer layer, @Param("virtualSlot") Integer virtualSlot);
+
+    void updateDeviceIdBySlot(@Param("list") List<Integer> slotList);
+
+    List<HollowBigStorageCageDetails> queryPairGlassList(@Param("flowCardId")String flowCardId, @Param("totalLayer")Integer totalLayer, @Param("totalPairQuantity")Integer totalPairQuantity,@Param("isOut") Integer isOut);
+
+    List<FlowCardVirtualSlotDTO> queryFlowCardIdsAndLayer();
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowBigStorageCageMapper.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowBigStorageCageMapper.java
new file mode 100644
index 0000000..d6ec7c7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowBigStorageCageMapper.java
@@ -0,0 +1,15 @@
+package com.mes.hollow.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.mes.hollow.entity.HollowBigStorageCage;
+
+/**
+ * (HollowBigStorageCage)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author makejava
+ * @since 2024-11-21 09:22:40
+ */
+public interface HollowBigStorageCageMapper extends MPJBaseMapper<HollowBigStorageCage> {
+
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowFormulaDetailsMapper.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowFormulaDetailsMapper.java
new file mode 100644
index 0000000..6fce722
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowFormulaDetailsMapper.java
@@ -0,0 +1,18 @@
+package com.mes.hollow.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.hollow.entity.HollowFormulaDetails;
+import com.mes.hollow.entity.vo.HollowGlassFormulaVO;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * (HollowFormulaDetails)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author makejava
+ * @since 2024-12-27 13:34:59
+ */
+public interface HollowFormulaDetailsMapper extends BaseMapper<HollowFormulaDetails> {
+
+    HollowGlassFormulaVO queryFormulaDetailsByGlassId(@Param("glassId") String glassId, @Param("flowCardId") String flowCardId, @Param("cell") Integer cell);
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowGlassOutRelationInfoMapper.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowGlassOutRelationInfoMapper.java
new file mode 100644
index 0000000..3ac8c38
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowGlassOutRelationInfoMapper.java
@@ -0,0 +1,23 @@
+package com.mes.hollow.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.hollow.entity.HollowGlassOutRelationInfo;
+import com.mes.hollow.entity.dto.OrderDTO;
+import com.mes.largenscreen.entity.PieChartVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * (HollowGlassOutRelationInfo)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author makejava
+ * @since 2024-11-30 13:57:28
+ */
+public interface HollowGlassOutRelationInfoMapper extends BaseMapper<HollowGlassOutRelationInfo> {
+
+    OrderDTO queryOrderByFlowCardId(@Param("flowCardId") String flowCardId);
+
+    List<PieChartVO> queryPieChart();
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowGlassRelationInfoMapper.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowGlassRelationInfoMapper.java
new file mode 100644
index 0000000..0367c10
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowGlassRelationInfoMapper.java
@@ -0,0 +1,39 @@
+package com.mes.hollow.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.hollow.entity.HollowGlassRelationInfo;
+import com.mes.hollow.entity.dto.HollowGlassDetailsDTO;
+import com.mes.hollow.entity.dto.LackDetailsDTO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * (HollowGlassRelationInfo)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author makejava
+ * @since 2024-11-23 15:59:29
+ */
+public interface HollowGlassRelationInfoMapper extends BaseMapper<HollowGlassRelationInfo> {
+
+
+    List<HollowGlassDetailsDTO> queryFlowCardIdMaxLayerGlassInfo(@Param("flowCardId") String flowCardId, @Param("totalLayer") int totalLayer);
+
+
+    List<HollowGlassDetailsDTO> queryFlowCardIdLayerGlassInfo(@Param("flowCardId") String flowCardId, @Param("totalLayer") int totalLayer, @Param("layer") int layer);
+
+    List<LackDetailsDTO> queryLackByFlowCard(String flowCardId);
+
+    int queryLayerByFlowCardId(@Param("flowCardId") String flowCardId);
+
+    void clearDirtyFlowCardData(@Param("flowCardId") String flowCardId, @Param("layer") int layer);
+
+    /**
+     * 鎸夌収娴佺▼鍗¤幏鍙栦骇鍝佸悕绉�
+     *
+     * @param flowCardId
+     * @return
+     */
+    String queryProductNameByFlowCardId(@Param("flowCardId") String flowCardId);
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowBigStorageCageDetailsService.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowBigStorageCageDetailsService.java
new file mode 100644
index 0000000..a7513c7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowBigStorageCageDetailsService.java
@@ -0,0 +1,70 @@
+package com.mes.hollow.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.base.entity.vo.BigStorageVO;
+import com.mes.hollow.entity.HollowBigStorageCageDetails;
+import com.mes.hollow.entity.dto.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * (HollowBigStorageCageDetails)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author makejava
+ * @since 2024-11-21 09:23:12
+ */
+public interface HollowBigStorageCageDetailsService extends IService<HollowBigStorageCageDetails> {
+
+    void updateBySlot(List<UpdateHollowBigStorageCageDTO> storageCageDTOList, Integer glassStateIn);
+
+    List<FlowCardGlassInfoDTO> hollowIsAll(String flow_card_id, Integer totalLayer, Boolean flag);
+
+
+    List<FlowCardVirtualSlotDTO> queryIsAllNeedDispatchVirtualSlot();
+
+    List<BigStorageSequenceDTO> queryNeedDispatchSlot(FlowCardVirtualSlotDTO flowCardVirtualSlotDTO);
+
+    List<HollowBigStorageCageDetails> queryOutGlassList(String flowCardId, int cell);
+
+    Map<Integer, List<BigStorageVO>> queryHollowbigStorageCageDetail();
+
+    /**
+     * 鍙栧嚭姣忕粍鐜荤拑鍗犵敤绗煎瓙鐨勬牸瀛愬苟璁$畻鏍煎瓙鍐呯殑鏈�澶х粍搴忓彿
+     *
+     * @param flowCardId
+     * @param totalLayer
+     * @param layer
+     * @param virtualSlot
+     * @return
+     */
+    List<HollowBigStorageCageDetails> querySlotMaxSequence(String flowCardId, Integer totalLayer, Integer layer, Integer virtualSlot);
+
+    List<HollowBigStorageAndDetailsDTO> insertHollowBigStorageCageDetails(HollowBigStorageCageDetails bigStorageCageDetails);
+
+    List<HollowBigStorageAndDetailsDTO> deleteHollowBigStorageCageDetails(String glassId, Integer deviceId, Integer slot);
+
+    List<HollowBigStorageAndDetailsDTO> damageHollowBigStorageCageDetails(String glassId, Integer deviceId, Integer slot, int state);
+
+    void updateDeviceIdBySlot(List<Integer> slotList);
+
+    /**
+     * 鑾峰彇绗煎瓙鍐呭凡閰嶅鐨勭幓鐠冧俊鎭�
+     * @param flowCardId
+     * @param totalLayer
+     * @param totalPairQuantity
+     * @return
+     */
+    List<HollowBigStorageCageDetails> queryPairGlassList(String flowCardId, Integer totalLayer, Integer totalPairQuantity,Integer isOut);
+
+    /**
+     * 鏇存柊鐞嗙墖绗兼牸瀛愮姸鎬�
+     * @param slot
+     * @param enableState
+     * @return
+     */
+    Boolean updateHollowStorageCageDisabled(int slot, int enableState);
+
+    List<FlowCardVirtualSlotDTO> queryFlowCardIdsAndLayer();
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowBigStorageCageService.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowBigStorageCageService.java
new file mode 100644
index 0000000..d86c2d8
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowBigStorageCageService.java
@@ -0,0 +1,31 @@
+package com.mes.hollow.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.hollow.entity.HollowBigStorageCage;
+import com.mes.hollow.entity.dto.HollowBigStorageAndDetailsDTO;
+import com.mes.hollow.entity.vo.HollowBigStorageDetailsQueryVO;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * (HollowBigStorageCage)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author makejava
+ * @since 2024-11-21 09:22:45
+ */
+public interface HollowBigStorageCageService extends IService<HollowBigStorageCage> {
+
+    List<HollowBigStorageAndDetailsDTO> queryHollowBigStorageCageDetail(HollowBigStorageDetailsQueryVO query);
+
+    Map<Integer, List<HollowBigStorageCage>> queryHollowbigStorageCageDetail();
+
+    List<Map<String, Object>> selectBigStorageCageUsage();
+
+    /**
+     * 澶嶄綅锛氶噸缃悊鐗囩鍩虹淇℃伅1銆佹竻闄ょ鍐呯姸鎬佷负0鐨勮剰鏁版嵁;2灏嗙┖鏍煎瓙鐨勫昂瀵哥疆涓哄垵濮嬪昂瀵� 3銆佸皢涓嶅湪绗煎唴鐨勬祦绋嬪崱鐨勫叧绯昏〃閲嶇疆
+     * @return
+     */
+    Boolean resetCage();
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowFormulaDetailsService.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowFormulaDetailsService.java
new file mode 100644
index 0000000..7c5a4c6
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowFormulaDetailsService.java
@@ -0,0 +1,17 @@
+package com.mes.hollow.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.hollow.entity.HollowFormulaDetails;
+import com.mes.hollow.entity.vo.HollowGlassFormulaVO;
+
+/**
+ * (HollowFormulaDetails)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author makejava
+ * @since 2024-12-27 13:35:03
+ */
+public interface HollowFormulaDetailsService extends IService<HollowFormulaDetails> {
+
+    HollowGlassFormulaVO queryFormulaDetailsByGlassId(String glassId, String flowCardId, Integer cell);
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowGlassOutRelationInfoService.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowGlassOutRelationInfoService.java
new file mode 100644
index 0000000..398d723
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowGlassOutRelationInfoService.java
@@ -0,0 +1,46 @@
+package com.mes.hollow.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.hollow.entity.HollowGlassOutRelationInfo;
+import com.mes.hollow.entity.request.HollowHistoryTaskRequest;
+import com.mes.hollow.entity.request.HollowTaskRequest;
+import com.mes.hollowqueue.entity.HollowGlassQueueInfo;
+import com.mes.largenscreen.entity.PieChartVO;
+
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * (HollowGlassOutRelationInfo)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author makejava
+ * @since 2024-11-30 13:57:29
+ */
+public interface HollowGlassOutRelationInfoService extends IService<HollowGlassOutRelationInfo> {
+
+    HollowGlassOutRelationInfo receiveTask(HollowTaskRequest request);
+
+    HollowGlassOutRelationInfo forceOutGlass(HollowTaskRequest request);
+
+    Boolean dispatchHollowSwitch(Boolean flag);
+
+    List<String> hollowTaskList(int cell);
+
+    List<HollowGlassQueueInfo> appointHollowTaskDetails(String flowCardId, int cell);
+
+    Boolean startTask(String flowCardId, int cell);
+
+    Boolean pauseTask(String flowCardId, int cell);
+
+    Boolean finishTask(String flowCardId, int cell);
+
+    Boolean deleteHollowTaskDetails(String flowCardId, int cell);
+
+    String generateHollowLisecFile(String flowCardId, int cell, int isForce, int isOut) throws IOException;
+
+    Page<HollowGlassOutRelationInfo> queryHollowHistoryTask(HollowHistoryTaskRequest request);
+
+    List<PieChartVO> queryPieChart();
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowGlassRelationInfoService.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowGlassRelationInfoService.java
new file mode 100644
index 0000000..7427f19
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowGlassRelationInfoService.java
@@ -0,0 +1,43 @@
+package com.mes.hollow.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.hollow.entity.HollowGlassRelationInfo;
+import com.mes.hollow.entity.dto.FlowCardGlassInfoDTO;
+import com.mes.hollow.entity.dto.HollowBigStorageDTO;
+import com.mes.hollow.entity.dto.LackDetailsDTO;
+import com.mes.hollow.entity.vo.HollowAllFlowCardVO;
+import com.mes.hollow.entity.vo.HollowBigStorageDetailsQueryVO;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * (HollowGlassRelationInfo)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author makejava
+ * @since 2024-11-23 15:59:30
+ */
+public interface HollowGlassRelationInfoService extends IService<HollowGlassRelationInfo> {
+    /**
+     * 鎸夌収鐜荤拑id鑾峰彇涓┖鐩爣鏍煎瓙
+     *
+     * @return
+     */
+    HollowBigStorageDTO queryHollowTargetSlot(String flowCardId, double width, double height, int totalLayer, int layer);
+
+    /**
+     * 鐢熸垚涓┖鐜荤拑淇℃伅
+     */
+    void generateHollowGlassInfo(String flowCardId, int totalLayer, int layer);
+
+    List<HollowAllFlowCardVO> queryHollowAllFlowCard(HollowBigStorageDetailsQueryVO query);
+
+    List<FlowCardGlassInfoDTO> queryHollowAllFlowCardSummary(HollowBigStorageDetailsQueryVO query);
+
+    Map<Integer, List<LackDetailsDTO>> queryLackByFlowCard(String flowCardId);
+
+    int queryLayerByFlowCardId(String flowCardId);
+//    List<LackDetailsDTO> queryLackByFlowCard(String flowCardId);
+
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageDetailsServiceImpl.java
new file mode 100644
index 0000000..9d0a71c
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageDetailsServiceImpl.java
@@ -0,0 +1,172 @@
+package com.mes.hollow.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.base.entity.vo.BigStorageVO;
+import com.mes.common.config.Const;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.hollow.entity.HollowBigStorageCage;
+import com.mes.hollow.entity.HollowBigStorageCageDetails;
+import com.mes.hollow.entity.HollowGlassRelationInfo;
+import com.mes.hollow.entity.dto.*;
+import com.mes.hollow.entity.vo.HollowBigStorageDetailsQueryVO;
+import com.mes.hollow.mapper.HollowBigStorageCageDetailsMapper;
+import com.mes.hollow.service.HollowBigStorageCageDetailsService;
+import com.mes.hollow.service.HollowBigStorageCageService;
+import com.mes.hollow.service.HollowGlassRelationInfoService;
+import com.mes.job.OpcPlcStorageCageHollowTask;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * (HollowBigStorageCageDetails)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author makejava
+ * @since 2024-11-21 09:23:12
+ */
+@Service
+@Slf4j
+public class HollowBigStorageCageDetailsServiceImpl extends ServiceImpl<HollowBigStorageCageDetailsMapper, HollowBigStorageCageDetails> implements HollowBigStorageCageDetailsService {
+
+    @Resource
+    HollowBigStorageCageService hollowBigStorageCageService;
+
+    @Resource
+    HollowGlassRelationInfoService hollowGlassRelationInfoService;
+    @Resource
+    GlassInfoService glassInfoService;
+    @Resource
+    OpcPlcStorageCageHollowTask opcPlcStorageCageHollowTask;
+
+    @Override
+    public void updateBySlot(List<UpdateHollowBigStorageCageDTO> storageCageDTOList, Integer state) {
+        baseMapper.updateBySlot(storageCageDTOList, state);
+    }
+
+    @Override
+    public List<FlowCardGlassInfoDTO> hollowIsAll(String flow_card_id, Integer totalLayer, Boolean flag) {
+        return baseMapper.hollowIsAll(flow_card_id, totalLayer, flag);
+    }
+
+    @Override
+    public List<FlowCardVirtualSlotDTO> queryIsAllNeedDispatchVirtualSlot() {
+        return baseMapper.queryIsAllNeedDispatchVirtualSlot();
+    }
+
+    @Override
+    public List<BigStorageSequenceDTO> queryNeedDispatchSlot(FlowCardVirtualSlotDTO flowCardVirtualSlotDTO) {
+        return baseMapper.queryNeedDispatchSlot(flowCardVirtualSlotDTO);
+    }
+
+    @Override
+    public List<HollowBigStorageCageDetails> queryOutGlassList(String flowCardId, int cell) {
+        return baseMapper.queryOutGlassList(flowCardId, cell);
+    }
+
+    @Override
+    public Map<Integer, List<BigStorageVO>> queryHollowbigStorageCageDetail() {
+        List<BigStorageVO> bigStorageCages = baseMapper.queryHollowbigStorageCageDetail();
+        return bigStorageCages.stream().collect(Collectors.groupingBy(item -> item.getDeviceId()));
+    }
+
+    @Override
+    public List<HollowBigStorageCageDetails> querySlotMaxSequence(String flowCardId, Integer totalLayer, Integer layer, Integer virtualSlot) {
+        return baseMapper.querySlotMaxSequence(flowCardId, totalLayer, layer, virtualSlot);
+    }
+
+    @Override
+    public List<HollowBigStorageAndDetailsDTO> insertHollowBigStorageCageDetails(HollowBigStorageCageDetails bigStorageCageDetails) {
+        GlassInfo info = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().in(GlassInfo::getGlassId, bigStorageCageDetails.getGlassId()));
+        HollowBigStorageDTO hollowBigStorageDTO = hollowGlassRelationInfoService.queryHollowTargetSlot(bigStorageCageDetails.getFlowCardId(), bigStorageCageDetails.getWidth(),
+                bigStorageCageDetails.getHeight(), bigStorageCageDetails.getTotalLayer(), bigStorageCageDetails.getLayer());
+        HollowBigStorageCageDetails cageDetails = new HollowBigStorageCageDetails();
+        BeanUtils.copyProperties(hollowBigStorageDTO, cageDetails);
+        BeanUtils.copyProperties(info, cageDetails);
+        cageDetails.setState(Const.GLASS_STATE_NEW);
+        cageDetails.setSequence(hollowBigStorageDTO.getSlotSequence());
+        cageDetails.setGap(250);
+        cageDetails.setId(null);
+        this.save(cageDetails);
+        hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>()
+                .set(HollowGlassRelationInfo::getGlassId, cageDetails.getGlassId())
+                .set(HollowGlassRelationInfo::getTemperingLayoutId, cageDetails.getTemperingLayoutId())
+                .set(HollowGlassRelationInfo::getTemperingFeedSequence, cageDetails.getTemperingFeedSequence())
+                .set(HollowGlassRelationInfo::getEngineerId, cageDetails.getEngineerId())
+                .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY)
+                .eq(HollowGlassRelationInfo::getFlowCardId, hollowBigStorageDTO.getFlowCardId())
+                .eq(HollowGlassRelationInfo::getLayer, hollowBigStorageDTO.getLayer())
+                .eq(HollowGlassRelationInfo::getVirtualSlot, hollowBigStorageDTO.getVirtualSlot())
+                .eq(HollowGlassRelationInfo::getSlotSequence, hollowBigStorageDTO.getSlotSequence())
+                .eq(HollowGlassRelationInfo::getHollowSequence, hollowBigStorageDTO.getHollowSequence())
+        );
+        HollowBigStorageDetailsQueryVO query = new HollowBigStorageDetailsQueryVO();
+        query.setDeviceId(bigStorageCageDetails.getDeviceId());
+        return hollowBigStorageCageService.queryHollowBigStorageCageDetail(query);
+    }
+
+    @Override
+    public List<HollowBigStorageAndDetailsDTO> deleteHollowBigStorageCageDetails(String glassId, Integer deviceId, Integer slot) {
+        return hollowBigStorageCageDetailsChild(glassId, deviceId, slot, Const.GLASS_STATE_OUT);
+    }
+
+    @Override
+    public List<HollowBigStorageAndDetailsDTO> damageHollowBigStorageCageDetails(String glassId, Integer deviceId, Integer slot, int state) {
+        return hollowBigStorageCageDetailsChild(glassId, deviceId, slot, state);
+    }
+
+    @Override
+    public void updateDeviceIdBySlot(List<Integer> slotList) {
+        baseMapper.updateDeviceIdBySlot(slotList);
+    }
+
+    @Override
+    public List<HollowBigStorageCageDetails> queryPairGlassList(String flowCardId, Integer totalLayer, Integer totalPairQuantity, Integer isOut) {
+        return baseMapper.queryPairGlassList(flowCardId, totalLayer, totalPairQuantity, isOut);
+    }
+
+    @Override
+    public Boolean updateHollowStorageCageDisabled(int slot, int enableState) {
+        return hollowBigStorageCageService.update(new LambdaUpdateWrapper<HollowBigStorageCage>()
+                .set(HollowBigStorageCage::getEnableState, enableState)
+                .eq(HollowBigStorageCage::getSlot, slot));
+    }
+
+    @Override
+    public List<FlowCardVirtualSlotDTO> queryFlowCardIdsAndLayer() {
+        return baseMapper.queryFlowCardIdsAndLayer();
+    }
+
+    private List<HollowBigStorageAndDetailsDTO> hollowBigStorageCageDetailsChild(String glassId, Integer deviceId, Integer slot, int state) {
+        //灏嗗搴旀牸瀛愬彿鐨勭幓鐠僫d缃负101
+        this.update(new LambdaUpdateWrapper<HollowBigStorageCageDetails>()
+                .set(HollowBigStorageCageDetails::getState, state)
+                .eq(HollowBigStorageCageDetails::getSlot, slot)
+                .eq(HollowBigStorageCageDetails::getGlassId, glassId)
+        );
+        //灏嗘祦绋嬪崱鍏崇郴琛ㄥ唴瀵瑰簲鐨勭幓鐠冧俊鎭竻闄�
+        hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>()
+                .set(HollowGlassRelationInfo::getGlassId, null)
+                .set(HollowGlassRelationInfo::getTemperingLayoutId, null)
+                .set(HollowGlassRelationInfo::getTemperingFeedSequence, null)
+                .set(HollowGlassRelationInfo::getEngineerId, null)
+                .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW)
+                .eq(HollowGlassRelationInfo::getGlassId, glassId)
+        );
+        //鏇存柊瀵瑰簲鏍煎瓙鐨勫墿浣欏昂瀵�
+        opcPlcStorageCageHollowTask.updateSlotRemainBySlots(Arrays.asList(slot));
+        //杩斿洖瀵瑰簲鐨勭瀛愮殑鍒楄〃淇℃伅
+        HollowBigStorageDetailsQueryVO query = new HollowBigStorageDetailsQueryVO();
+        query.setDeviceId(deviceId);
+        return hollowBigStorageCageService.queryHollowBigStorageCageDetail(query);
+    }
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageServiceImpl.java
new file mode 100644
index 0000000..91fac5f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageServiceImpl.java
@@ -0,0 +1,100 @@
+package com.mes.hollow.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.common.config.Const;
+import com.mes.common.config.ConstSysConfig;
+import com.mes.hollow.entity.HollowBigStorageCage;
+import com.mes.hollow.entity.HollowBigStorageCageDetails;
+import com.mes.hollow.entity.dto.FlowCardVirtualSlotDTO;
+import com.mes.hollow.entity.dto.HollowBigStorageAndDetailsDTO;
+import com.mes.hollow.entity.vo.HollowBigStorageDetailsQueryVO;
+import com.mes.hollow.mapper.HollowBigStorageCageMapper;
+import com.mes.hollow.mapper.HollowGlassRelationInfoMapper;
+import com.mes.hollow.service.HollowBigStorageCageDetailsService;
+import com.mes.hollow.service.HollowBigStorageCageService;
+import com.mes.sysconfig.service.SysConfigService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * (HollowBigStorageCage)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author makejava
+ * @since 2024-11-21 09:22:46
+ */
+@Service
+public class HollowBigStorageCageServiceImpl extends ServiceImpl<HollowBigStorageCageMapper, HollowBigStorageCage> implements HollowBigStorageCageService {
+
+//    @Value("${mes.slotWidth}")
+//    private Integer slotWidth;
+
+    @Resource
+    private HollowBigStorageCageDetailsService hollowBigStorageCageDetailsService;
+    @Resource
+    private HollowGlassRelationInfoMapper hollowGlassRelationInfoMapper;
+    @Resource
+    private SysConfigService sysConfigService;
+
+    @Override
+    public List<HollowBigStorageAndDetailsDTO> queryHollowBigStorageCageDetail(HollowBigStorageDetailsQueryVO query) {
+        MPJLambdaWrapper<HollowBigStorageCage> wrapper = new MPJLambdaWrapper<>();
+        wrapper.selectAll(HollowBigStorageCage.class).selectCollection(HollowBigStorageCageDetails.class, HollowBigStorageCage::getHollowBigStorageCageDetails)
+                .leftJoin(HollowBigStorageCageDetails.class, on -> on.eq(HollowBigStorageCageDetails::getSlot, HollowBigStorageCage::getSlot)
+                        .like(StringUtils.isNotBlank(query.getFilmsId()), HollowBigStorageCageDetails::getFilmsId, query.getFilmsId())
+                        .like(StringUtils.isNotBlank(query.getFlowCardId()), HollowBigStorageCageDetails::getFlowCardId, query.getFlowCardId())
+                        .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL, Const.GLASS_STATE_OUT_ING))
+//                .eq(HollowBigStorageCage::getDeviceId, query.getDeviceId())
+                .orderByAsc(HollowBigStorageCage::getDeviceId)
+                .orderByAsc(HollowBigStorageCage::getSlot);
+        return baseMapper.selectJoinList(HollowBigStorageAndDetailsDTO.class, wrapper);
+    }
+
+    @Override
+    public Map<Integer, List<HollowBigStorageCage>> queryHollowbigStorageCageDetail() {
+        MPJLambdaWrapper<HollowBigStorageCage> wrapper = new MPJLambdaWrapper<>();
+        wrapper.selectAll(HollowBigStorageCage.class).selectCollection(HollowBigStorageCageDetails.class, HollowBigStorageCage::getHollowBigStorageCageDetails)
+                .leftJoin(HollowBigStorageCageDetails.class, on -> on.eq(HollowBigStorageCageDetails::getSlot, HollowBigStorageCage::getSlot)
+                        .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL).orderByAsc(HollowBigStorageCageDetails::getUpdateTime));
+        List<HollowBigStorageCage> bigStorageCages = baseMapper.selectJoinList(HollowBigStorageCage.class, wrapper);
+        Map<Integer, List<HollowBigStorageCage>> listMap = bigStorageCages.stream().collect(Collectors.groupingBy(item -> item.getDeviceId()));
+        return listMap;
+    }
+
+    @Override
+    public List<Map<String, Object>> selectBigStorageCageUsage() {
+        Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_SLOT_WIDTH);
+        QueryWrapper<HollowBigStorageCage> wrapper = new QueryWrapper<>();
+        wrapper.select("device_id,ROUND(1 - SUM(CASE WHEN remain_width = " + slotWidth + " THEN 1 ELSE 0 END) / COUNT(device_id), 2)*100 AS percentage,SUM(CASE WHEN remain_width = " + slotWidth + " THEN 1 ELSE 0 END) AS count")
+                .groupBy("device_id");
+        return baseMapper.selectMaps(wrapper);
+    }
+
+    @Override
+    public Boolean resetCage() {
+//        澶嶄綅锛氶噸缃悊鐗囩鍩虹淇℃伅1銆佹竻闄ょ鍐呯姸鎬佷负0鐨勮剰鏁版嵁;
+        hollowBigStorageCageDetailsService.remove(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
+                .eq(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_NEW));
+//        2灏嗙┖鏍煎瓙鐨勫昂瀵哥疆涓哄垵濮嬪昂瀵�
+        Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_SLOT_WIDTH);
+        this.update(new LambdaUpdateWrapper<HollowBigStorageCage>()
+                .set(HollowBigStorageCage::getRemainWidth, slotWidth)
+                .notInSql(HollowBigStorageCage::getSlot, "select distinct slot from hollow_big_storage_cage_details where state in( 100 , 102 , 103 ,104)"));
+//        3銆佸皢涓嶅湪绗煎唴鐨勬祦绋嬪崱鐨勫叧绯昏〃閲嶇疆
+//        浠呰幏鍙栫悊鐗囩鍐呯殑娴佺▼鍗′俊鎭伩鍏嶇幓鐠�
+        List<FlowCardVirtualSlotDTO> list = hollowBigStorageCageDetailsService.queryFlowCardIdsAndLayer();
+        for (FlowCardVirtualSlotDTO item : list) {
+            hollowGlassRelationInfoMapper.clearDirtyFlowCardData(item.getFlowCardId(), item.getLayer());
+        }
+        return Boolean.TRUE;
+    }
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowFormulaDetailsServiceImpl.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowFormulaDetailsServiceImpl.java
new file mode 100644
index 0000000..840291a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowFormulaDetailsServiceImpl.java
@@ -0,0 +1,24 @@
+package com.mes.hollow.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.hollow.entity.HollowFormulaDetails;
+import com.mes.hollow.entity.vo.HollowGlassFormulaVO;
+import com.mes.hollow.mapper.HollowFormulaDetailsMapper;
+import com.mes.hollow.service.HollowFormulaDetailsService;
+import org.springframework.stereotype.Service;
+
+/**
+ * (HollowFormulaDetails)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author makejava
+ * @since 2024-12-27 13:35:03
+ */
+@Service
+public class HollowFormulaDetailsServiceImpl extends ServiceImpl<HollowFormulaDetailsMapper, HollowFormulaDetails> implements HollowFormulaDetailsService {
+
+    @Override
+    public HollowGlassFormulaVO queryFormulaDetailsByGlassId(String glassId, String flowCardId, Integer cell) {
+        return baseMapper.queryFormulaDetailsByGlassId(glassId, flowCardId, cell);
+    }
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java
new file mode 100644
index 0000000..48244d2
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java
@@ -0,0 +1,439 @@
+package com.mes.hollow.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.smallbun.screw.core.util.StringUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.common.config.Const;
+import com.mes.common.config.ConstSysConfig;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.hollow.controller.HollowBigStorageCageController;
+import com.mes.hollow.entity.HollowBigStorageCageDetails;
+import com.mes.hollow.entity.HollowFormulaDetails;
+import com.mes.hollow.entity.HollowGlassOutRelationInfo;
+import com.mes.hollow.entity.dto.*;
+import com.mes.hollow.entity.request.HollowHistoryTaskRequest;
+import com.mes.hollow.entity.request.HollowTaskRequest;
+import com.mes.hollow.mapper.HollowGlassOutRelationInfoMapper;
+import com.mes.hollow.service.HollowBigStorageCageDetailsService;
+import com.mes.hollow.service.HollowFormulaDetailsService;
+import com.mes.hollow.service.HollowGlassOutRelationInfoService;
+import com.mes.hollow.service.HollowGlassRelationInfoService;
+import com.mes.hollowqueue.entity.HollowGlassQueueInfo;
+import com.mes.hollowqueue.service.HollowGlassQueueInfoService;
+import com.mes.largenscreen.entity.PieChartVO;
+import com.mes.sysconfig.service.SysConfigService;
+import com.mes.tools.DateUtil;
+import com.mes.utils.Blank;
+import com.mes.utils.RedisUtil;
+import freemarker.template.Configuration;
+import freemarker.template.Template;
+import freemarker.template.TemplateException;
+import freemarker.template.Version;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.io.*;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * (HollowGlassOutRelationInfo)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author makejava
+ * @since 2024-11-30 13:57:29
+ */
+@Service
+@Slf4j
+public class HollowGlassOutRelationInfoServiceImpl extends ServiceImpl<HollowGlassOutRelationInfoMapper, HollowGlassOutRelationInfo> implements HollowGlassOutRelationInfoService {
+
+    @Resource
+    GlassInfoService glassInfoService;
+    @Resource
+    HollowBigStorageCageDetailsService hollowBigStorageCageDetailsService;
+    @Resource
+    HollowGlassQueueInfoService hollowGlassQueueInfoService;
+    @Resource
+    HollowFormulaDetailsService hollowFormulaDetailsService;
+    @Resource
+    HollowGlassRelationInfoService hollowGlassRelationInfoService;
+    @Resource
+    SysConfigService sysConfigService;
+
+    @Resource
+    RedisUtil redisUtil;
+
+//    @Value("${mes.glassGap}")
+//    private Integer glassGap;
+//
+//    @Value("${mes.carWidth}")
+//    private Integer carWidth;
+
+    private static final int ID_RATIO = 10;
+
+    @Override
+    public HollowGlassOutRelationInfo receiveTask(HollowTaskRequest request) {
+        return childrenTask(request, 0);
+    }
+
+    @Override
+    public HollowGlassOutRelationInfo forceOutGlass(HollowTaskRequest request) {
+        return childrenTask(request, 1);
+    }
+
+    @Override
+    public Boolean dispatchHollowSwitch(Boolean flag) {
+        redisUtil.setCacheObject("dispatchHollowSwitch", flag);
+        return redisUtil.getCacheObject("dispatchHollowSwitch");
+    }
+
+    @Override
+    public List<String> hollowTaskList(int cell) {
+        //鏌ヨ浠诲姟琛ㄤ腑鏈潯绾挎墍鏈夋湭瀹屾垚鐨勪换鍔′俊鎭�
+        List<HollowGlassOutRelationInfo> list = this.list(new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
+                .in(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_NEW, Const.HOLLOW_FLOW_CARD_START, Const.HOLLOW_FLOW_CARD_PAUSE)
+                .eq(HollowGlassOutRelationInfo::getCell, cell));
+        if (CollectionUtil.isNotEmpty(list)) {
+            return list.stream().map(HollowGlassOutRelationInfo::getFlowCardId).collect(Collectors.toList());
+        }
+        return new ArrayList<String>();
+    }
+
+    @Override
+    public List<HollowGlassQueueInfo> appointHollowTaskDetails(String flowCardId, int cell) {
+        //鎸夌収娴佺▼鍗″強璺嚎锛屾煡鎵惧搴旂殑浠诲姟淇℃伅
+        HollowGlassOutRelationInfo hollowGlassOutRelationInfo = this.getOne(new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
+                .in(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_NEW, Const.HOLLOW_FLOW_CARD_START, Const.HOLLOW_FLOW_CARD_PAUSE)
+                .eq(HollowGlassOutRelationInfo::getFlowCardId, flowCardId)
+                .eq(HollowGlassOutRelationInfo::getCell, cell).last("limit 1"));
+        if (null == hollowGlassOutRelationInfo) {
+            return new ArrayList<HollowGlassQueueInfo>();
+        }
+        //鎸夌収浠诲姟id鏌ヨ瀵瑰垪琛ㄤ腑鐨勯槦鍒椾俊鎭�
+        return hollowGlassQueueInfoService.list(new LambdaQueryWrapper<HollowGlassQueueInfo>()
+                .eq(HollowGlassQueueInfo::getRelationId, hollowGlassOutRelationInfo.getId()));
+    }
+
+    @Override
+    public Boolean startTask(String flowCardId, int cell) {
+        log.info("鏌ョ湅璇ユ祦绋嬪崱鏄惁鐢辨鍦ㄦ墽琛岀殑浠诲姟锛屾祦绋嬪崱锛歿}", flowCardId);
+        int taskCount = this.count(new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
+                .in(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_NEW, Const.HOLLOW_FLOW_CARD_START, Const.HOLLOW_FLOW_CARD_PAUSE)
+                .eq(HollowGlassOutRelationInfo::getFlowCardId, flowCardId));
+        if (taskCount == 0 || taskCount > 1) {
+            log.info("璇ユ祦绋嬪崱涓嶅瓨鍦ㄤ换鍔℃垨鑰呮湁姝e湪鎵ц涓紝鏃犳硶鍐嶆鎵ц");
+            return Boolean.FALSE;
+        }
+        //鏇存柊浠诲姟鐘舵�佷负寮�濮�
+        return this.update(new LambdaUpdateWrapper<HollowGlassOutRelationInfo>()
+                .set(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_START)
+                .eq(HollowGlassOutRelationInfo::getFlowCardId, flowCardId)
+                .ne(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_SUCCESS)
+                .eq(HollowGlassOutRelationInfo::getCell, cell));
+    }
+
+    @Override
+    public Boolean pauseTask(String flowCardId, int cell) {
+//        鏇存柊浠诲姟鐘舵�佷负鏆傚仠
+        return this.update(new LambdaUpdateWrapper<HollowGlassOutRelationInfo>()
+                .set(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_PAUSE)
+                .eq(HollowGlassOutRelationInfo::getFlowCardId, flowCardId)
+                .ne(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_SUCCESS)
+                .eq(HollowGlassOutRelationInfo::getCell, cell));
+    }
+
+    @Override
+    public Boolean finishTask(String flowCardId, int cell) {
+        //娓呯┖闃熷垪琛ㄤ腑鏈畬鎴愮殑鐜荤拑淇℃伅
+        hollowGlassQueueInfoService.remove(new LambdaQueryWrapper<HollowGlassQueueInfo>()
+                .in(HollowGlassQueueInfo::getState, Const.TEMPERING_NEW)
+                .eq(HollowGlassQueueInfo::getFlowCardId, flowCardId)
+                .eq(HollowGlassQueueInfo::getCell, cell));
+        //鏇存柊浠诲姟鐘舵�佹湭宸插畬鎴�
+        return this.update(new LambdaUpdateWrapper<HollowGlassOutRelationInfo>()
+                .set(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_SUCCESS)
+                .eq(HollowGlassOutRelationInfo::getFlowCardId, flowCardId)
+                .eq(HollowGlassOutRelationInfo::getCell, cell));
+    }
+
+    @Override
+    public Boolean deleteHollowTaskDetails(String flowCardId, int cell) {
+        //鎸夌収娴佺▼鍗″強璺嚎锛屾煡鎵惧搴旂殑浠诲姟淇℃伅
+        this.remove(new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
+                .in(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_NEW, Const.HOLLOW_FLOW_CARD_START, Const.HOLLOW_FLOW_CARD_PAUSE)
+                .eq(HollowGlassOutRelationInfo::getFlowCardId, flowCardId)
+                .eq(HollowGlassOutRelationInfo::getCell, cell));
+        hollowGlassQueueInfoService.remove(new LambdaQueryWrapper<HollowGlassQueueInfo>()
+                .in(HollowGlassQueueInfo::getState, Const.TEMPERING_NEW)
+                .eq(HollowGlassQueueInfo::getFlowCardId, flowCardId)
+                .eq(HollowGlassQueueInfo::getCell, cell));
+        return Boolean.TRUE;
+    }
+
+    @Override
+    public String generateHollowLisecFile(String flowCardId, int cell, int isForce, int isOut) throws IOException {
+        List<HollowGlassOutRelationInfo> outRelationList = this.list(new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
+                .in(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_NEW, Const.HOLLOW_FLOW_CARD_START, Const.HOLLOW_FLOW_CARD_PAUSE)
+                .eq(HollowGlassOutRelationInfo::getFlowCardId, flowCardId)
+                .eq(HollowGlassOutRelationInfo::getCell, cell));
+        if (CollectionUtil.isEmpty(outRelationList) || outRelationList.size() != 1) {
+            return "鏈潯绾夸笉瀛樺湪璇ユ祦绋嬩换鍔℃垨鑰呭悓娴佺▼鍗′换鍔℃暟澶т簬1";
+        }
+        HollowGlassOutRelationInfo relationInfo = outRelationList.get(0);
+        if (relationInfo.getTotalLayer() < 2) {
+            return "浠诲姟鎬诲眰鏁板皬浜�2锛屼笉鐢熸垚鏉庤禌鍏嬫枃浠�";
+        }
+        //鑾峰彇璁㈠崟鐩稿叧淇℃伅
+        OrderDTO order = baseMapper.queryOrderByFlowCardId(flowCardId);
+        if (null == order) {
+            return "鐢熸垚澶辫触锛岀浉鍏宠鍗曚俊鎭笉瀛樺湪";
+        }
+        //鑾峰彇閰嶆柟鐩稿叧淇℃伅
+        HollowFormulaDetails formulaDetails = hollowFormulaDetailsService.getById(relationInfo.getFormulaId());
+        if (null == formulaDetails) {
+            return "鐢熸垚澶辫触锛岀浉鍏抽厤鏂逛俊鎭笉瀛樺湪";
+        }
+        //鎬诲眰鏁版槸鍚︿笌杩涚鍏崇郴琛ㄥ唴灞傛暟鏁伴噺鐩稿悓锛屽眰鏁扮浉鍚岀敓鎴愮户缁紝涓嶅悓缁撴潫
+        int layerCount = hollowGlassRelationInfoService.queryLayerByFlowCardId(flowCardId);
+        if (layerCount != relationInfo.getTotalLayer() && isForce == 0) {
+            return "鐢熸垚澶辫触锛岃娴佺▼鍗″唴灞傛暟涓庤繘绗煎叧绯昏〃鍐呭眰鏁版暟閲忎笉鐩稿悓";
+        }
+        //璁剧疆鏂囦欢鐨勪富浣撳唴瀹�
+        LisecHollowDetails details = new LisecHollowDetails();
+        String randomNumber = "" + (int) (Math.random() * 100000 + 100000);
+        details.setBcdStart(randomNumber);
+        details.setBatchNo(randomNumber);
+        details.setOrd(relationInfo.getFlowCardId().substring(4, 9) + (int) (Math.random() * 1000 + 1000));
+        details.setCustNum(order.getCustomerId() + "");
+        details.setCustNam("");
+        details.setProDate((new SimpleDateFormat("dd/MM/yyyy").format(new Date())));
+        details.setDelDate(new SimpleDateFormat("dd/MM/yyyy").format(order.getDeliveryDate()));
+
+        //璁剧疆鏂囦欢绗竴灞傚垪琛ㄦ暟鎹�
+        //鏆傛椂鐢熸垚绗煎唴鎵�鏈夌殑鐜荤拑淇℃伅锛堝凡閰嶅鍜屾湭閰嶅鐨勶級
+        List<HollowBigStorageCageDetails> hollowGlassRelationInfos = hollowBigStorageCageDetailsService.queryPairGlassList(flowCardId, relationInfo.getTotalLayer(), relationInfo.getTotalPairQuantity(), isOut);
+        Map<Integer, List<HollowBigStorageCageDetails>> listMap = hollowGlassRelationInfos.stream()
+                .collect(Collectors.groupingBy(HollowBigStorageCageDetails::getHollowSequence,
+                        Collectors.collectingAndThen(Collectors.toList(),
+                                list -> list.stream().sorted(Comparator.comparing(HollowBigStorageCageDetails::getLayer)).collect(Collectors.toList()))));
+        Map<Integer, List<HollowBigStorageCageDetails>> sortListMap = new TreeMap<>();
+        sortListMap.putAll(listMap);
+        //璁剧疆闂撮殧鏉挎暟鎹叡鎵�鏈夐厤瀵圭幓鐠冧娇鐢�
+        List<LisecHollowGlassAndFrameDetails> glassAndFrameList = new ArrayList<>();
+        sortListMap.forEach((e, v) -> {
+            LisecHollowGlassAndFrameDetails glassAndFrame = new LisecHollowGlassAndFrameDetails();
+            List<LisecHollowGlassDetails> glassList = new ArrayList<>();
+            List<LisecHollowFrameDetails> frameList = new ArrayList<>();
+            for (int i = 1; i <= v.size(); i++) {
+                LisecHollowGlassDetails hollowGlassDetails = new LisecHollowGlassDetails();
+                HollowBigStorageCageDetails glassInfo = v.get(i - 1);
+                hollowGlassDetails.setRecType("<GL" + i + ">");
+                hollowGlassDetails.setThickness((int) (glassInfo.getThickness() * 10) + "");
+                hollowGlassDetails.setDescript(formulaDetails.getIntervalFrameWidthOne() + "-" + (int) (glassInfo.getThickness() * 10));
+                hollowGlassDetails.setPaneBcd(randomNumber + "" + (e * ID_RATIO + i));
+                glassList.add(hollowGlassDetails);
+            }
+            glassAndFrame.setGlassList(glassList);
+
+            glassAndFrame.setItemNum(e + "");
+            glassAndFrame.setIdNum(e + "");
+            glassAndFrame.setBarcode(randomNumber.substring(randomNumber.length() - 3));
+            glassAndFrame.setWidth((int) (v.get(0).getWidth() * 10) + "");
+            glassAndFrame.setHeight((int) (v.get(0).getHeight() * 10) + "");
+            glassAndFrame.setGlass1(e * ID_RATIO + 1 + "");
+            glassAndFrame.setFrame1(formulaDetails.getFrameOne());
+            frameList.add(new LisecHollowFrameDetails("<FR1>", formulaDetails.getIntervalFrameTypeOne(), formulaDetails.getIntervalFrameWidthOne(), formulaDetails.getIntervalFrameHeightOne()));
+            glassAndFrame.setGasCode1(formulaDetails.getCasOne());
+            if (relationInfo.getTotalLayer() == 2) {
+                glassAndFrame.setGlass2(e * ID_RATIO + 2 + "");
+            } else if (relationInfo.getTotalLayer() == 3) {
+                glassAndFrame.setGlass2(e * ID_RATIO + 2 + "");
+                glassAndFrame.setFrame2(formulaDetails.getFrameTwo());
+                frameList.add(new LisecHollowFrameDetails("<FR2>", formulaDetails.getIntervalFrameTypeTwo(), formulaDetails.getIntervalFrameWidthTwo(), formulaDetails.getIntervalFrameHeightTwo()));
+                glassAndFrame.setGasCode2(formulaDetails.getCasTwo());
+                glassAndFrame.setGlass3(e * ID_RATIO + 3 + "");
+            } else if (relationInfo.getTotalLayer() == 4) {
+                glassAndFrame.setGlass2(e * ID_RATIO + 2 + "");
+                glassAndFrame.setFrame2(formulaDetails.getFrameTwo());
+                frameList.add(new LisecHollowFrameDetails("<FR2>", formulaDetails.getIntervalFrameTypeTwo(), formulaDetails.getIntervalFrameWidthTwo(), formulaDetails.getIntervalFrameHeightTwo()));
+                glassAndFrame.setGasCode2(formulaDetails.getCasTwo());
+                glassAndFrame.setGlass3(e * ID_RATIO + 3 + "");
+                glassAndFrame.setFrame3(formulaDetails.getFrameThree());
+                frameList.add(new LisecHollowFrameDetails("<FR3>", formulaDetails.getIntervalFrameTypeThree(), formulaDetails.getIntervalFrameWidthThree(), formulaDetails.getIntervalFrameHeightThree()));
+                glassAndFrame.setGasCode3(formulaDetails.getCasThree());
+                glassAndFrame.setGlass4(e * ID_RATIO + 4 + "");
+            } else {
+                glassAndFrame.setGlass2(e * ID_RATIO + 2 + "");
+                glassAndFrame.setFrame2(formulaDetails.getFrameTwo());
+                frameList.add(new LisecHollowFrameDetails("<FR2>", formulaDetails.getIntervalFrameTypeTwo(), formulaDetails.getIntervalFrameWidthTwo(), formulaDetails.getIntervalFrameHeightTwo()));
+                glassAndFrame.setGasCode2(formulaDetails.getCasTwo());
+                glassAndFrame.setGlass3(e * ID_RATIO + 3 + "");
+                glassAndFrame.setFrame3(formulaDetails.getFrameThree());
+                frameList.add(new LisecHollowFrameDetails("<FR3>", formulaDetails.getIntervalFrameTypeThree(), formulaDetails.getIntervalFrameWidthThree(), formulaDetails.getIntervalFrameHeightThree()));
+                glassAndFrame.setGasCode3(formulaDetails.getCasThree());
+                glassAndFrame.setGlass4(e * ID_RATIO + 4 + "");
+                glassAndFrame.setFrame3(formulaDetails.getFrameFour());
+                frameList.add(new LisecHollowFrameDetails("<FR4>", formulaDetails.getIntervalFrameTypeFour(), formulaDetails.getIntervalFrameWidthFour(), formulaDetails.getIntervalFrameHeightFour()));
+                glassAndFrame.setGasCode4(formulaDetails.getCasFour());
+                glassAndFrame.setGlass4(e * ID_RATIO + 5 + "");
+            }
+            glassAndFrame.setInset(formulaDetails.getSealInsert());
+            glassAndFrame.setFrameList(frameList);
+            glassAndFrameList.add(glassAndFrame);
+        });
+        details.setGlassAndFrameList(glassAndFrameList);
+        Configuration cfg = new Configuration(new Version("2.3.29"));
+        cfg.setClassForTemplateLoading(HollowBigStorageCageController.class, "/templates/");
+        // 鍒涘缓Calculator瀹炰緥
+        Blank blank = new Blank();
+
+        // 鍒涘缓鏁版嵁妯″瀷
+        Map<String, Object> root = new HashMap<>();
+        root.put("blank", blank);
+
+        root.put("details", details);
+
+        // 鑾峰彇妯℃澘
+        Template temp = cfg.getTemplate("hollowGlass.ftl");
+
+
+        // 灏嗙敓鎴愮殑鏂囦欢瀛樺叆鎸囧畾璺緞
+        //璁$畻鐢熸垚鏉庤禌鍏嬮渶瑕佺殑鏁版嵁缁欏埌姣忎釜灞炴��
+        StringWriter out = new StringWriter();
+        File file = new File(System.getProperty("user.dir") + "/lisec", relationInfo.getFlowCardId() + randomNumber.substring(randomNumber.length() - 3) + ".trf");
+        try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
+            temp.process(root, out);
+            writer.write(out.toString());
+        } catch (TemplateException | IOException e) {
+            e.printStackTrace();
+        }
+        return "success";
+    }
+
+    @Override
+    public Page<HollowGlassOutRelationInfo> queryHollowHistoryTask(HollowHistoryTaskRequest request) {
+        Page<HollowGlassOutRelationInfo> page = new Page<>(request.getPageNo(), request.getPageSize());
+        if (null == request.getBeginDate()) {
+            request.setBeginDate(DateUtil.getBeginDate());
+            request.setEndDate(DateUtil.getEndDate());
+        }
+        LambdaQueryWrapper<HollowGlassOutRelationInfo> wrapper = new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
+                .eq(HollowGlassOutRelationInfo::getCell, request.getCell())
+                .like(StringUtils.isNotBlank(request.getFlowCardId()), HollowGlassOutRelationInfo::getFlowCardId, request.getFlowCardId())
+                .in(CollectionUtil.isNotEmpty(request.getIsForceList()), HollowGlassOutRelationInfo::getIsForce, request.getIsForceList())
+                .in(CollectionUtil.isNotEmpty(request.getStateList()), HollowGlassOutRelationInfo::getState, request.getStateList())
+                .between(HollowGlassOutRelationInfo::getCreateTime, request.getBeginDate(), request.getEndDate())
+                .orderByDesc(HollowGlassOutRelationInfo::getCreateTime);
+        return this.page(page, wrapper);
+    }
+
+
+    private HollowGlassOutRelationInfo childrenTask(HollowTaskRequest request, int isForce) {
+        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getFlowCardId, request.getFlowCardId()).last("limit 1"));
+        HollowGlassOutRelationInfo info = new HollowGlassOutRelationInfo();
+        if (null == glassInfo) {
+            log.info("璇ユ祦绋嬪崱淇℃伅绯荤粺鏈壘鍒�");
+            return info;
+        }
+        List<HollowGlassOutRelationInfo> outRelationInfos = this.list(new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
+                .eq(HollowGlassOutRelationInfo::getFlowCardId, request.getFlowCardId())
+                .in(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_NEW, Const.HOLLOW_FLOW_CARD_START, Const.HOLLOW_FLOW_CARD_PAUSE));
+        if (CollectionUtil.isNotEmpty(outRelationInfos)) {
+            log.info("褰撳墠娴佺▼鍗℃湁鏈畬鎴愮殑浠诲姟");
+            return null;
+        }
+        //淇濆瓨浠诲姟鍏崇郴涓昏〃
+        info.setFlowCardId(request.getFlowCardId());
+        info.setCell(request.getCell());
+        info.setIsForce(isForce);
+        info.setTotalLayer(glassInfo.getTotalLayer());
+        info.setState(Const.HOLLOW_FLOW_CARD_NEW);
+        info.setTotalPairQuantity(request.getTotalPairQuantity());
+        info.setFormulaId(request.getFormulaId());
+        this.save(info);
+        // 鏌ヨ鍑洪渶瑕佸嚭鐜荤拑鐨勯槦鍒�
+        List<HollowBigStorageCageDetails> hollowBigStorageCageDetailsList = hollowBigStorageCageDetailsService
+                .queryOutGlassList(request.getFlowCardId(), request.getCell());
+        int isPairCount = glassInfo.getTotalLayer() * request.getTotalPairQuantity();
+        List<HollowGlassQueueInfo> hollowQueues = new ArrayList<>();
+        Integer carWidth = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_CAR_WIDTH);
+        Integer glassGap = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_GLASS_GAP);
+        if (930 == request.getCell()) {
+            Map<Integer, List<HollowBigStorageCageDetails>> listMap = hollowBigStorageCageDetailsList.stream()
+                    .collect(Collectors.groupingBy(HollowBigStorageCageDetails::getHollowSequence));
+            Map<Integer, List<HollowBigStorageCageDetails>> sortListMap = new TreeMap<>();
+            sortListMap.putAll(listMap);
+            for (Map.Entry<Integer, List<HollowBigStorageCageDetails>> entry : sortListMap.entrySet()) {
+                //鍒涘缓闃熷垪鎺ユ敹涓嶆弧瓒虫垚瀵规儏鍐典笅锛氫竴瀵圭幓鐠冨垎鍑犳涓婅溅鐨勬搴忛棶棰�
+                List<HollowGlassQueueInfo> tempList = new ArrayList<>();
+                //鍏堝皢鐜荤拑鎸夌収姝e父椤哄簭鎺掑垪锛岃绠椾竴杞︽渶澶氭斁鍑犲潡锛岀畻濂藉潡鏁颁箣鍚庡皢涓�杞︾殑鐜荤拑鎸夌収鍊掑簭瀛樺偍
+                List<HollowBigStorageCageDetails> reverse = CollectionUtil.reverse(entry.getValue());
+                int remainWidth = carWidth;
+                for (HollowBigStorageCageDetails item : reverse) {
+                    remainWidth = remainWidth - (int) Math.max(item.getWidth(), item.getHeight());
+                    if (remainWidth < 0) {
+                        hollowQueues.addAll(CollectionUtil.reverse(tempList));
+                        tempList = new ArrayList<>();
+                        remainWidth = carWidth - (int) Math.max(item.getWidth(), item.getHeight());
+                    }
+                    HollowGlassQueueInfo queueInfo = HollowBDetailToQueue(item, info.getId(), request.getCell());
+                    tempList.add(queueInfo);
+                    remainWidth = remainWidth - glassGap;
+                }
+                hollowQueues.addAll(CollectionUtil.reverse(tempList));
+                HollowBigStorageCageDetails cageDetails = entry.getValue().get(0);
+                if (cageDetails.getIsPair() == 1) {
+                    isPairCount = isPairCount - cageDetails.getTotalLayer();
+                    if (isPairCount == 0) {
+                        break;
+                    }
+                }
+            }
+
+        } else {
+            loop:
+            for (HollowBigStorageCageDetails item : hollowBigStorageCageDetailsList) {
+                HollowGlassQueueInfo queueInfo = HollowBDetailToQueue(item, info.getId(), request.getCell());
+                hollowQueues.add(queueInfo);
+                if (item.getIsPair() == 1) {
+                    isPairCount = isPairCount - 1;
+                    if (isPairCount == 0) {
+                        break loop;
+                    }
+                }
+            }
+        }
+        hollowGlassQueueInfoService.saveBatch(hollowQueues);
+        try {
+            if (request.getCell() == 930) {
+                generateHollowLisecFile(request.getFlowCardId(), 930, isForce, 0);
+            }
+        } catch (Exception e) {
+            log.info("鐢熸垚鏉庤禌鍏嬫枃浠舵椂鍙戠敓寮傚父锛屾祦绋嬪崱鍙蜂负{}", request.getFlowCardId());
+        }
+        return info;
+    }
+
+    private HollowGlassQueueInfo HollowBDetailToQueue(HollowBigStorageCageDetails details, Long taskId, int targetCell) {
+        HollowGlassQueueInfo queueInfo = new HollowGlassQueueInfo();
+        BeanUtils.copyProperties(details, queueInfo);
+        queueInfo.setRelationId(taskId);
+        queueInfo.setState(Const.TEMPERING_NEW);
+        queueInfo.setCell(targetCell);
+        queueInfo.setCreateTime(new Date());
+        queueInfo.setUpdateTime(new Date());
+        return queueInfo;
+    }
+
+    @Override
+    public List<PieChartVO> queryPieChart(){
+        return baseMapper.queryPieChart();
+    }
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
new file mode 100644
index 0000000..5b12e1a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
@@ -0,0 +1,400 @@
+package com.mes.hollow.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.common.config.Const;
+import com.mes.common.config.ConstSysConfig;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.hollow.entity.HollowBigStorageCage;
+import com.mes.hollow.entity.HollowBigStorageCageDetails;
+import com.mes.hollow.entity.HollowGlassOutRelationInfo;
+import com.mes.hollow.entity.HollowGlassRelationInfo;
+import com.mes.hollow.entity.dto.FlowCardGlassInfoDTO;
+import com.mes.hollow.entity.dto.HollowBigStorageDTO;
+import com.mes.hollow.entity.dto.HollowGlassDetailsDTO;
+import com.mes.hollow.entity.dto.LackDetailsDTO;
+import com.mes.hollow.entity.vo.HollowAllFlowCardVO;
+import com.mes.hollow.entity.vo.HollowBigStorageDetailsQueryVO;
+import com.mes.hollow.mapper.HollowGlassRelationInfoMapper;
+import com.mes.hollow.service.HollowBigStorageCageDetailsService;
+import com.mes.hollow.service.HollowBigStorageCageService;
+import com.mes.hollow.service.HollowGlassOutRelationInfoService;
+import com.mes.hollow.service.HollowGlassRelationInfoService;
+import com.mes.sysconfig.service.SysConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * (HollowGlassRelationInfo)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author makejava
+ * @since 2024-11-23 15:59:30
+ */
+@Service
+@Slf4j
+public class HollowGlassRelationInfoServiceImpl extends ServiceImpl<HollowGlassRelationInfoMapper, HollowGlassRelationInfo> implements HollowGlassRelationInfoService {
+
+    @Resource
+    GlassInfoService glassInfoService;
+    @Resource
+    HollowBigStorageCageService hollowBigStorageCageService;
+    @Resource
+    HollowGlassRelationInfoService hollowGlassRelationInfoService;
+    @Resource
+    HollowGlassOutRelationInfoService hollowGlassOutRelationInfoService;
+    @Resource
+    HollowBigStorageCageDetailsService hollowBigStorageCageDetailsService;
+    @Resource
+    SysConfigService sysConfigService;
+//    @Value("${mes.slotWidth}")
+//    private Integer slotWidth;
+//    @Value("${mes.glassGap}")
+//    private Integer glassGap;
+//
+//    @Value("${mes.outCarMaxSize}")
+//    private Integer outCarMaxSize;
+
+    @Override
+    public HollowBigStorageDTO queryHollowTargetSlot(String flowCardId, double width, double height, int totalLayer, int layer) {
+        //鎸夌収鐜荤拑淇℃伅鑾峰彇鍏崇郴琛ㄤ腑瀵瑰簲鐨勫ぇ鐞嗙墖绗兼牸瀛愬彿
+        HollowGlassRelationInfo relationInfoOne = hollowGlassRelationInfoService.getOne(new LambdaQueryWrapper<HollowGlassRelationInfo>()
+                .eq(HollowGlassRelationInfo::getFlowCardId, flowCardId)
+                .eq(HollowGlassRelationInfo::getWidth, width)
+                .eq(HollowGlassRelationInfo::getHeight, height)
+                .eq(HollowGlassRelationInfo::getTotalLayer, totalLayer)
+                .eq(HollowGlassRelationInfo::getLayer, layer)
+                .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW)
+                .orderByAsc(HollowGlassRelationInfo::getHollowSequence)
+                .last("limit 1")
+        );
+        if (relationInfoOne == null) {
+            //鏌ョ湅mes鏄惁鏈夊搴旂殑娴佺▼鍗′俊鎭�
+            int count = hollowGlassRelationInfoService.count(new LambdaQueryWrapper<HollowGlassRelationInfo>()
+                    .eq(HollowGlassRelationInfo::getFlowCardId, flowCardId)
+                    .eq(HollowGlassRelationInfo::getLayer, layer));
+            if (count == 0) {
+                generateHollowGlassInfo(flowCardId, totalLayer, layer);
+            } else {
+                //姣旇緝鍏崇郴琛ㄥ強涓┖鐞嗙墖绗艰鎯呰〃鐨勬祦绋嬪崱鏁版嵁锛屽鐞嗚剰鏁版嵁锛氬皢涓嶅湪绗煎唴鐨勬祦绋嬪崱鍖归厤鏁版嵁鑱屼綅绌�
+                this.baseMapper.clearDirtyFlowCardData(flowCardId, layer);
+            }
+            //鐞嗙墖绗煎叧绯昏〃涓病鏈夊搴旂殑鏁版嵁锛屾煡鐪嬬悊鐗囩铏氭嫙浣嶇疆琛ㄦ槸鍚︽湁鏈伐绋嬩笅鐨勬墍鏈夌幓鐠冭櫄鎷熶俊鎭�
+            //铏氭嫙浣嶇疆琛ㄦ病鏈夋湰宸ョ▼涓嬬殑鎵�鏈夌幓鐠冭櫄鎷熶俊鎭紝鎸夌収鐜荤拑id鐢熸垚鏈伐绋嬩笅鎵�鏈夌幓鐠冪殑铏氭嫙淇℃伅
+            relationInfoOne = this.getOne(new LambdaQueryWrapper<HollowGlassRelationInfo>()
+                    .eq(HollowGlassRelationInfo::getFlowCardId, flowCardId)
+                    .eq(HollowGlassRelationInfo::getWidth, width)
+                    .eq(HollowGlassRelationInfo::getHeight, height)
+                    .eq(HollowGlassRelationInfo::getTotalLayer, totalLayer)
+                    .eq(HollowGlassRelationInfo::getLayer, layer)
+                    .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW)
+                    .orderByAsc(HollowGlassRelationInfo::getHollowSequence)
+                    .last("limit 1")
+            );
+        }
+        Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_SLOT_WIDTH);
+        //璇︽儏琛ㄥ唴鑾峰彇鏈粍鏄惁宸茬粡鏈夌幓鐠冨湪绗煎瓙鍐咃紙0琛ㄧず鎻愬墠鍗犵敤锛�
+        int taskCount = hollowGlassOutRelationInfoService.count(new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
+                .eq(HollowGlassOutRelationInfo::getFlowCardId, flowCardId));
+        HollowBigStorageCage storageCage = null;
+        //濡傛灉涓嶅瓨鍦ㄥ垯閫夋嫨绗煎唴鏈敤鐨勬柊鏍煎瓙
+        if (taskCount > 0) {
+            storageCage = hollowBigStorageCageService.getOne(new LambdaQueryWrapper<HollowBigStorageCage>()
+                    .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getRemainWidth, slotWidth)
+                    .le(HollowBigStorageCage::getMinThickness, relationInfoOne.getThickness())
+                    .ge(HollowBigStorageCage::getMaxThickness, relationInfoOne.getThickness())
+                    .orderByAsc(HollowBigStorageCage::getMaxThickness).last("limit 1"));
+            HollowBigStorageDTO storageDTO = new HollowBigStorageDTO();
+            BeanUtils.copyProperties(storageCage, storageDTO);
+            BeanUtils.copyProperties(relationInfoOne, storageDTO);
+            return storageDTO;
+        }       //璇︽儏琛ㄥ唴鑾峰彇鏈粍鏄惁宸茬粡鏈夌幓鐠冨湪绗煎瓙鍐咃紙0琛ㄧず鎻愬墠鍗犵敤锛�
+        List<HollowBigStorageCageDetails> hollowDetailsList = hollowBigStorageCageDetailsService.list(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
+                .eq(HollowBigStorageCageDetails::getFlowCardId, relationInfoOne.getFlowCardId())
+                .eq(HollowBigStorageCageDetails::getTotalLayer, totalLayer)
+                .eq(HollowBigStorageCageDetails::getLayer, layer)
+                .eq(HollowBigStorageCageDetails::getVirtualSlot, relationInfoOne.getVirtualSlot())
+                .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO));
+        //濡傛灉涓嶅瓨鍦ㄥ垯閫夋嫨绗煎唴鏈敤鐨勬柊鏍煎瓙
+        if (CollectionUtil.isEmpty(hollowDetailsList)) {
+            storageCage = hollowBigStorageCageService.getOne(new LambdaQueryWrapper<HollowBigStorageCage>()
+                    .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getRemainWidth, slotWidth)
+                    .le(HollowBigStorageCage::getMinThickness, relationInfoOne.getThickness())
+                    .ge(HollowBigStorageCage::getMaxThickness, relationInfoOne.getThickness())
+                    .orderByAsc(HollowBigStorageCage::getMaxThickness).last("limit 1"));
+            HollowBigStorageDTO storageDTO = new HollowBigStorageDTO();
+            BeanUtils.copyProperties(storageCage, storageDTO);
+            BeanUtils.copyProperties(relationInfoOne, storageDTO);
+            return storageDTO;
+        }
+        //鑾峰彇褰撳墠缁勫湪绗煎瓙鍐呯殑鏍煎瓙鍙凤紙鎸夌収缁勫唴搴忓彿-1璁$畻 濡傛灉娌℃湁鍒欐柊寮�涓�鏍硷級
+        HollowGlassRelationInfo relationInfoBefore = hollowGlassRelationInfoService.getOne(new LambdaQueryWrapper<HollowGlassRelationInfo>()
+                .eq(HollowGlassRelationInfo::getFlowCardId, relationInfoOne.getFlowCardId())
+                .eq(HollowGlassRelationInfo::getTotalLayer, relationInfoOne.getTotalLayer())
+                .eq(HollowGlassRelationInfo::getLayer, relationInfoOne.getLayer())
+                .eq(HollowGlassRelationInfo::getVirtualSlot, relationInfoOne.getVirtualSlot())
+                .eq(HollowGlassRelationInfo::getSlotSequence, relationInfoOne.getSlotSequence() - 1));
+        if (null == relationInfoBefore) {
+            storageCage = hollowBigStorageCageService.getOne(new LambdaQueryWrapper<HollowBigStorageCage>()
+                    .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getRemainWidth, slotWidth)
+                    .le(HollowBigStorageCage::getMinThickness, relationInfoOne.getThickness())
+                    .ge(HollowBigStorageCage::getMaxThickness, relationInfoOne.getThickness())
+                    .orderByAsc(HollowBigStorageCage::getMaxThickness).last("limit 1"));
+        } else {
+            //鑾峰彇璇︽儏琛ㄧ粍鍐呭墠涓�鐗囩幓鐠冪殑绗煎唴璇︽儏鏁版嵁
+            HollowBigStorageCageDetails beforeGlass = hollowBigStorageCageDetailsService.getOne(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
+                    .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
+                    .eq(HollowBigStorageCageDetails::getEngineerId, relationInfoBefore.getEngineerId())
+                    .eq(HollowBigStorageCageDetails::getTemperingLayoutId, relationInfoBefore.getTemperingLayoutId())
+                    .eq(HollowBigStorageCageDetails::getTemperingFeedSequence, relationInfoBefore.getTemperingFeedSequence())
+            );
+            //鏀圭粍鍦ㄧ鍐呮湁鐜荤拑浣嗘槸鍓嶄竴鍧楃幓鐠冩病鏈夛細鍘熷洜 鐜荤拑鐮存崯澶勭悊
+            if (null == beforeGlass) {
+                storageCage = hollowBigStorageCageService.getOne(new LambdaQueryWrapper<HollowBigStorageCage>()
+                        .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getRemainWidth, slotWidth)
+                        .le(HollowBigStorageCage::getMinThickness, relationInfoOne.getThickness())
+                        .ge(HollowBigStorageCage::getMaxThickness, relationInfoOne.getThickness())
+                        .orderByAsc(HollowBigStorageCage::getMaxThickness).last("limit 1"));
+            } else {
+                //鍙栧嚭姣忕粍鐜荤拑鍗犵敤绗煎瓙鐨勬牸瀛愬苟璁$畻鏍煎瓙鍐呯殑鏈�澶х粍搴忓彿,閬垮厤鐜荤拑椤哄簭閿欎贡
+                List<HollowBigStorageCageDetails> hollowSequenceList = hollowBigStorageCageDetailsService
+                        .querySlotMaxSequence(beforeGlass.getFlowCardId(), beforeGlass.getTotalLayer(), beforeGlass.getLayer(), beforeGlass.getVirtualSlot());
+                for (HollowBigStorageCageDetails hollowBigStorageCageDetail : hollowSequenceList) {
+                    if (relationInfoOne.getSlotSequence() - 1 == hollowBigStorageCageDetail.getSequence()) {
+                        storageCage = hollowBigStorageCageService.getOne(new LambdaQueryWrapper<HollowBigStorageCage>()
+                                .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getSlot, beforeGlass.getSlot()));
+                        break;
+                    }
+                }
+                if (storageCage == null) {
+                    storageCage = hollowBigStorageCageService.getOne(new LambdaQueryWrapper<HollowBigStorageCage>()
+                            .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getRemainWidth, slotWidth)
+                            .le(HollowBigStorageCage::getMinThickness, relationInfoOne.getThickness())
+                            .ge(HollowBigStorageCage::getMaxThickness, relationInfoOne.getThickness())
+                            .orderByAsc(HollowBigStorageCage::getMaxThickness).last("limit 1"));
+                }
+            }
+        }
+        Assert.isTrue(null != storageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�");
+        HollowBigStorageDTO storageDTO = new HollowBigStorageDTO();
+        BeanUtils.copyProperties(storageCage, storageDTO);
+        BeanUtils.copyProperties(relationInfoOne, storageDTO);
+        return storageDTO;
+    }
+
+    @Override
+    public void generateHollowGlassInfo(String flowCardId, int totalLayer, int layer) {
+
+        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getFlowCardId, flowCardId)
+                .eq(GlassInfo::getLayer, layer).orderByDesc(GlassInfo::getId).last("limit 1"));
+        if (null == glassInfo) {
+            log.info("褰撳墠娴佺▼鍗′俊鎭负瀵煎叆mes绯荤粺娴佺▼鍗★細{}锛屽眰鏁皗}", flowCardId, layer);
+            return;
+        }
+        //鎸夌収娴佺▼鍗¤幏鍙栨湰娴佺▼鍗℃渶鍚庝竴灞傛垨绗竴娆$殑鐜荤拑鏁版嵁
+        List<HollowGlassDetailsDTO> glassDetailsDTOS = this.baseMapper.queryFlowCardIdMaxLayerGlassInfo(flowCardId, totalLayer);
+        if (CollectionUtil.isEmpty(glassDetailsDTOS)) {
+            log.info("褰撳墠娴佺▼鍗℃渶澶栧眰鏁版嵁鏈壘鍒帮紝璇峰湪erp纭鏁版嵁鏃犺锛屾祦绋嬪崱锛歿}锛屾�诲眰鏁皗}", flowCardId, totalLayer);
+            return;
+        }
+        if (totalLayer != layer) {
+            glassDetailsDTOS = this.baseMapper.queryFlowCardIdLayerGlassInfo(flowCardId, totalLayer, layer);
+        }
+        if (CollectionUtil.isEmpty(glassDetailsDTOS)) {
+            log.info("褰撳墠娴佺▼鍗℃渶澶栧眰鏁版嵁鏈壘鍒帮紝璇峰湪erp纭鏁版嵁鏃犺锛屾祦绋嬪崱锛歿}锛屾�诲眰鏁皗},灞傛暟{}", flowCardId, totalLayer, layer);
+            return;
+        }
+        ArrayList<HollowGlassDetailsDTO> tempGlassList = new ArrayList<>();
+        int hollowSequence = 1;
+        for (HollowGlassDetailsDTO item : glassDetailsDTOS) {
+            for (int i = 0; i < item.getQuantity(); i++) {
+                HollowGlassDetailsDTO dto = new HollowGlassDetailsDTO();
+                BeanUtils.copyProperties(item, dto);
+                dto.setHollowSequence(hollowSequence++);
+                tempGlassList.add(dto);
+            }
+        }
+        //鏂瑰紡涓�锛氬皢鐜荤拑鎸夋祦绋嬪崱銆佸昂瀵搞�佺増鍥俱�佺増搴� 渚濇鐢熸垚铏氭嫙鏍煎瓙淇℃伅锛屾牸瀛愪竴鐩村線鍚庣疮鍔�
+//        flowCardIdMap.forEach((e, v) -> {
+//            int remainWidth = slotWidth;
+//            int slotNumber = 1;
+//            for (GlassInfo item : v) {
+//                int maxLength = (int) Math.max(item.getWidth(), item.getHeight());
+//                if (remainWidth > maxLength) {
+//                    remainWidth = remainWidth - maxLength - glassGap;
+//                } else {
+//                    slotNumber = slotNumber + 1;
+//                    remainWidth = slotWidth - maxLength - glassGap;
+//                }
+//                HollowGlassInfo hollow = new HollowGlassInfo();
+//                BeanUtils.copyProperties(item, hollow);
+//                hollow.setSlot(slotNumber);
+//                hollowGlassInfoList.add(hollow);
+//            }
+//        });
+//        this.saveBatch(hollowGlassInfoList);
+        //鑾峰彇涓┖澶х悊鐗囩鐨勬墍鏈夌┖闂叉牸瀛�
+//        List<HollowBigStorageCage> hollowSlotList = HollowBigStorageCageService.list(new LambdaQueryWrapper<HollowBigStorageCage>()
+//                .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getRemainWidth, slotWidth));
+        //鏂瑰紡浜岋細灏嗙幓鐠冩寜娴佺▼鍗°�佸昂瀵搞�佺増鍥俱�佺増搴� 锛屼紭鍏堝皢鏍煎瓙鍏ㄩ儴琛ュ叏鍚� 渚濇璁$畻鍚庨潰鐨勬牸瀛愬彿
+
+        Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_SLOT_WIDTH);
+        Integer glassGap = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_GLASS_GAP);
+        Integer outCarMaxSize = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_OUT_CAR_SIZE);
+        List<HollowGlassRelationInfo> relationInfoList = new ArrayList();
+        List<List<HollowGlassRelationInfo>> tempHollowList = new ArrayList<>();
+        int slotNumber = 1;
+        for (HollowGlassDetailsDTO item : tempGlassList) {
+            boolean flag = false;
+            for (List<HollowGlassRelationInfo> temp : tempHollowList) {
+                int sum = 0;
+                for (HollowGlassRelationInfo i : temp) {
+                    sum = sum + (int) Math.max(i.getHeight(), i.getWidth()) + glassGap;
+                }
+                if (sum + (int) Math.max(item.getHeight(), item.getWidth()) <= slotWidth && temp.size() < outCarMaxSize) {
+                    HollowGlassRelationInfo hollow = new HollowGlassRelationInfo();
+                    BeanUtils.copyProperties(item, hollow);
+                    hollow.setSlotSequence(temp.size() + 1);
+                    hollow.setTotalLayer(totalLayer);
+                    hollow.setVirtualSlot(temp.get(0).getVirtualSlot());
+                    hollow.setFilmsId(glassInfo.getFilmsid());
+                    hollow.setThickness(glassInfo.getThickness());
+                    hollow.setState(Const.HOLLOW_RELATION_NEW);
+                    temp.add(hollow);
+                    flag = true;
+                    break;
+                }
+            }
+            if (!flag) {
+                List<HollowGlassRelationInfo> newList = new ArrayList<>();
+                HollowGlassRelationInfo hollow = new HollowGlassRelationInfo();
+                BeanUtils.copyProperties(item, hollow);
+                hollow.setSlotSequence(1);
+                hollow.setTotalLayer(totalLayer);
+                hollow.setVirtualSlot(slotNumber++);
+                hollow.setFilmsId(glassInfo.getFilmsid());
+                hollow.setThickness(glassInfo.getThickness());
+                hollow.setState(Const.HOLLOW_RELATION_NEW);
+                newList.add(hollow);
+                tempHollowList.add(newList);
+            }
+        }
+        for (List<HollowGlassRelationInfo> item : tempHollowList) {
+            relationInfoList.addAll(item);
+        }
+        log.info("鍒嗛厤瀹屾瘯");
+        this.saveBatch(relationInfoList);
+    }
+
+    @Override
+    public List<HollowAllFlowCardVO> queryHollowAllFlowCard(HollowBigStorageDetailsQueryVO query) {
+        List<HollowBigStorageCageDetails> detailsList = hollowBigStorageCageDetailsService.list(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
+                .eq(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                .like(StringUtils.isNotBlank(query.getFilmsId()), HollowBigStorageCageDetails::getFilmsId, query.getFilmsId())
+                .like(StringUtils.isNotBlank(query.getFlowCardId()), HollowBigStorageCageDetails::getFlowCardId, query.getFlowCardId())
+                .eq(query.getThickness() != 0, HollowBigStorageCageDetails::getThickness, query.getThickness())
+                .orderByAsc(HollowBigStorageCageDetails::getFlowCardId)
+        );
+        if (CollectionUtil.isEmpty(detailsList)) {
+            log.info("绗煎唴鏃犵幓鐠�");
+            return new ArrayList<>();
+        }
+        Map<String, List<HollowBigStorageCageDetails>> listMap = detailsList.stream().collect(Collectors.groupingBy(HollowBigStorageCageDetails::getFlowCardId));
+        List<HollowAllFlowCardVO> resultList = new ArrayList<>();
+        listMap.forEach((e, v) -> {
+            HollowAllFlowCardVO hollowAllFlowCardVO = new HollowAllFlowCardVO();
+            HollowBigStorageCageDetails cageDetails = v.get(0);
+            hollowAllFlowCardVO.setFlowCardId(e);
+            if (cageDetails.getHollowSequence() == 0) {
+                hollowAllFlowCardVO.setIsThroughSlot(Boolean.TRUE);
+            } else {
+                hollowAllFlowCardVO.setIsThroughSlot(Boolean.FALSE);
+            }
+            //鎸夌収娴佺▼鍗¤幏鍙栧搴旂殑浜у搧鍚嶇О
+            String productName = baseMapper.queryProductNameByFlowCardId(cageDetails.getFlowCardId());
+            hollowAllFlowCardVO.setProductName(productName);
+            List<FlowCardGlassInfoDTO> flowCardInfoList = hollowBigStorageCageDetailsService.hollowIsAll(e, cageDetails.getTotalLayer(), Boolean.FALSE);
+            hollowAllFlowCardVO.setFlowCardGlassInfoDTOList(flowCardInfoList);
+            resultList.add(hollowAllFlowCardVO);
+        });
+        return resultList;
+//        return dtos.stream().collect(Collectors.groupingBy(e -> e.getFlowCardId() + ":" + e.getProductName()));
+    }
+
+    @Override
+    public List<FlowCardGlassInfoDTO> queryHollowAllFlowCardSummary(HollowBigStorageDetailsQueryVO query) {
+        List<HollowBigStorageCageDetails> detailsList = hollowBigStorageCageDetailsService.list(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
+                .eq(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                .like(StringUtils.isNotBlank(query.getFilmsId()), HollowBigStorageCageDetails::getFilmsId, query.getFilmsId())
+                .like(StringUtils.isNotBlank(query.getFlowCardId()), HollowBigStorageCageDetails::getFlowCardId, query.getFlowCardId())
+                .eq(query.getThickness() != 0, HollowBigStorageCageDetails::getThickness, query.getThickness())
+                .orderByAsc(HollowBigStorageCageDetails::getFlowCardId)
+        );
+        if (CollectionUtil.isEmpty(detailsList)) {
+            log.info("绗煎唴鏃犵幓鐠�");
+            return null;
+        }
+        Map<String, List<HollowBigStorageCageDetails>> listMap = detailsList.stream().collect(Collectors.groupingBy(HollowBigStorageCageDetails::getFlowCardId));
+        List<FlowCardGlassInfoDTO> dtos = new ArrayList<>();
+        listMap.forEach((e, v) -> {
+            HollowBigStorageCageDetails cageDetails = v.get(0);
+            dtos.addAll(hollowBigStorageCageDetailsService.hollowIsAll(e, cageDetails.getTotalLayer(), Boolean.FALSE));
+        });
+        Map<String, FlowCardGlassInfoDTO> result = dtos.stream()
+                .collect(Collectors.toMap(
+                        FlowCardGlassInfoDTO::getFlowCardId,
+                        dto -> {
+                            FlowCardGlassInfoDTO newDto = new FlowCardGlassInfoDTO();
+                            newDto.setFlowCardId(dto.getFlowCardId());
+                            newDto.setSumCount(dto.getSumCount());
+                            newDto.setPairCount(dto.getPairCount());
+                            newDto.setRealCount(dto.getRealCount());
+                            newDto.setLayer(dto.getLayer());
+                            newDto.setSlotCount(dto.getSlotCount());
+                            return newDto;
+                        },
+                        (dto1, dto2) -> {
+                            dto1.setRealCount(dto1.getRealCount() + dto2.getRealCount()); // 绱姞 realCount
+                            dto1.setLayer(Math.max(dto1.getLayer(), dto2.getLayer())); // 绱姞 鏈�澶у眰鏁�
+                            dto1.setSlotCount(dto1.getSlotCount() + dto2.getSlotCount());
+                            return dto1; // 杩斿洖鍚堝苟鍚庣殑瀵硅薄
+                        }
+                ));
+        List<FlowCardGlassInfoDTO> resultList = new ArrayList<>(result.values());
+        List<FlowCardGlassInfoDTO> sortedList = resultList.stream()
+                .sorted(Comparator.comparing(FlowCardGlassInfoDTO::getRealCount).reversed()  // 绗竴涓瓧娈靛�掑簭
+                        .thenComparing(FlowCardGlassInfoDTO::getSumCount, Comparator.reverseOrder()))  // 绗簩涓瓧娈靛�掑簭
+                .collect(Collectors.toList());
+        return sortedList;
+    }
+
+    @Override
+    public Map<Integer, List<LackDetailsDTO>> queryLackByFlowCard(String flowCardId) {
+        List<LackDetailsDTO> lackDetailsList = this.baseMapper.queryLackByFlowCard(flowCardId);
+        Map<Integer, List<LackDetailsDTO>> listMap = lackDetailsList.stream().collect(Collectors.groupingBy(LackDetailsDTO::getLayer));
+        return listMap;
+    }
+
+    @Override
+    public int queryLayerByFlowCardId(String flowCardId) {
+        return baseMapper.queryLayerByFlowCardId(flowCardId);
+    }
+    //    @Override
+//    public List<LackDetailsDTO> queryLackByFlowCard(String flowCardId) {
+//        List<LackDetailsDTO> lackDetailsList = this.baseMapper.queryLackByFlowCard(flowCardId);
+//        return lackDetailsList;
+//    }
+
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/controller/HollowGlassQueueInfoController.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/controller/HollowGlassQueueInfoController.java
new file mode 100644
index 0000000..36a2f78
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/controller/HollowGlassQueueInfoController.java
@@ -0,0 +1,47 @@
+package com.mes.hollowqueue.controller;
+
+import com.mes.hollowqueue.entity.HollowGlassQueueInfo;
+import com.mes.hollowqueue.service.HollowGlassQueueInfoService;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * (HollowGlassQueueInfo)琛ㄦ帶鍒跺眰
+ *
+ * @author makejava
+ * @since 2024-11-30 10:19:53
+ */
+@RestController
+@RequestMapping("hollowGlassQueueInfo")
+public class HollowGlassQueueInfoController {
+
+    @Resource
+    HollowGlassQueueInfoService hollowGlassQueueInfoService;
+
+    @ApiOperation("鎸夌収浠诲姟id鑾峰彇瀵瑰簲鐨勪换鍔¢槦鍒楁暟鎹�")
+    @PostMapping("/queryHollowGlassQueueInfoByTask")
+    public Result<List<HollowGlassQueueInfo>> queryHollowGlassQueueInfoByTask(int taskId) {
+        return Result.success(hollowGlassQueueInfoService.queryHollowGlassQueueInfoByTask(taskId));
+    }
+
+    @ApiOperation("閾濇纭/鐮存崯")
+    @PostMapping("/confirmBorder")
+    public Result confirmBorder(@RequestBody HollowGlassQueueInfo hollowGlassQueueInfo) {
+        hollowGlassQueueInfoService.confirmBorder(hollowGlassQueueInfo);
+        return Result.build(200, "淇敼鎴愬姛", 1);
+    }
+
+    @ApiOperation("閾濇鏌ヨ")
+    @PostMapping("/queryHollowGlassQueueInfoByLine")
+    public Result queryHollowGlassQueueInfoByLine(@RequestBody HollowGlassQueueInfo hollowGlassQueueInfo) {
+        return Result.build(200, "鎿嶄綔鎴愬姛", hollowGlassQueueInfoService.queryHollowGlassQueueInfoByLine(hollowGlassQueueInfo.getCell()));
+    }
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/entity/HollowGlassQueueInfo.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/entity/HollowGlassQueueInfo.java
new file mode 100644
index 0000000..82dfc37
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/entity/HollowGlassQueueInfo.java
@@ -0,0 +1,86 @@
+package com.mes.hollowqueue.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.mes.base.entity.HollowBigStorageCageBaseInfo;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * (HollowGlassQueueInfo)琛ㄥ疄浣撶被
+ *
+ * @author makejava
+ * @since 2024-11-30 10:19:55
+ */
+@Data
+public class HollowGlassQueueInfo extends HollowBigStorageCageBaseInfo {
+    /**
+     * /*澶х悊鐗囩璇︽儏琛╥d
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * /*澶х悊鐗囩璇︽儏琛╥d
+     */
+    private Long relationId;
+    /**
+     * /*璁惧id
+     */
+    private Integer deviceId;
+    /**
+     * /*铏氭嫙鏍呮牸鍙�
+     */
+    private Integer virtualSlot;
+    /**
+     * /*鏍呮牸鍙�
+     */
+    private Integer slot;
+    /**
+     * /*灏忕墖鍦ㄦ牸鍐呯殑椤哄簭
+     */
+    private Integer sequence;
+    /**
+     * /*娴佺▼鍗″彿
+     */
+    private String flowCardId;
+    /**
+     * /*鐜荤拑绫诲瀷
+     */
+    private Integer glassType;
+    /**
+     * 鑶滅郴
+     */
+    private String filmsId;
+    /**
+     * /*鐘舵��
+     */
+    private Integer state;
+    /**
+     * /*鐜荤拑闂撮殭
+     */
+    private Integer gap;
+
+    private String engineerId;
+    /**
+     * /*鎬诲眰鍙�
+     */
+    private Integer totalLayer;
+    /**
+     * /*鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+    /**
+     * /*鏇存柊鏃堕棿
+     */
+    private Date updateTime;
+
+    /**
+     * 璺嚎
+     */
+    private Integer cell;
+
+
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/mapper/HollowGlassQueueInfoMapper.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/mapper/HollowGlassQueueInfoMapper.java
new file mode 100644
index 0000000..e32c481
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/mapper/HollowGlassQueueInfoMapper.java
@@ -0,0 +1,15 @@
+package com.mes.hollowqueue.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.hollowqueue.entity.HollowGlassQueueInfo;
+
+/**
+ * (HollowGlassQueueInfo)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author makejava
+ * @since 2024-11-30 10:19:54
+ */
+public interface HollowGlassQueueInfoMapper extends BaseMapper<HollowGlassQueueInfo> {
+
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/service/HollowGlassQueueInfoService.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/service/HollowGlassQueueInfoService.java
new file mode 100644
index 0000000..1b48de2
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/service/HollowGlassQueueInfoService.java
@@ -0,0 +1,22 @@
+package com.mes.hollowqueue.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.hollowqueue.entity.HollowGlassQueueInfo;
+
+import java.util.List;
+
+/**
+ * (HollowGlassQueueInfo)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author makejava
+ * @since 2024-11-30 10:19:55
+ */
+public interface HollowGlassQueueInfoService extends IService<HollowGlassQueueInfo> {
+
+    List<HollowGlassQueueInfo> queryHollowGlassQueueInfoByTask(int taskId);
+
+    List<HollowGlassQueueInfo> queryHollowGlassQueueInfoByLine(int cell);
+
+    void confirmBorder(HollowGlassQueueInfo hollowGlassQueueInfo);
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/service/impl/HollowGlassQueueInfoServiceImpl.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/service/impl/HollowGlassQueueInfoServiceImpl.java
new file mode 100644
index 0000000..0f5efb9
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/service/impl/HollowGlassQueueInfoServiceImpl.java
@@ -0,0 +1,112 @@
+package com.mes.hollowqueue.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.common.config.Const;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
+import com.mes.hollow.entity.HollowGlassOutRelationInfo;
+import com.mes.hollow.service.HollowGlassOutRelationInfoService;
+import com.mes.hollowqueue.entity.HollowGlassQueueInfo;
+import com.mes.hollowqueue.mapper.HollowGlassQueueInfoMapper;
+import com.mes.hollowqueue.service.HollowGlassQueueInfoService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * (HollowGlassQueueInfo)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author makejava
+ * @since 2024-11-30 10:19:56
+ */
+@Service
+@Slf4j
+public class HollowGlassQueueInfoServiceImpl extends ServiceImpl<HollowGlassQueueInfoMapper, HollowGlassQueueInfo> implements HollowGlassQueueInfoService {
+
+
+    @Resource
+    HollowGlassOutRelationInfoService hollowGlassOutRelationInfoService;
+    @Resource
+    DamageService damageService;
+
+
+    @Override
+    public List<HollowGlassQueueInfo> queryHollowGlassQueueInfoByTask(int taskId) {
+        return this.list(new LambdaQueryWrapper<HollowGlassQueueInfo>()
+                .eq(HollowGlassQueueInfo::getRelationId, taskId)
+                .orderByAsc(HollowGlassQueueInfo::getHollowSequence)
+                .orderByAsc(HollowGlassQueueInfo::getLayer));
+    }
+
+    @Override
+    public List<HollowGlassQueueInfo> queryHollowGlassQueueInfoByLine(int cell) {
+        LocalDateTime twoDaysAgo = LocalDate.now().atStartOfDay().minusDays(1);
+        List<String> relationIds = this.listObjs(
+                new LambdaQueryWrapper<HollowGlassQueueInfo>()
+                        .lt(HollowGlassQueueInfo::getState, 1)
+                        .eq(HollowGlassQueueInfo::getCell, cell)
+                        .select(HollowGlassQueueInfo::getRelationId)
+                        .groupBy(HollowGlassQueueInfo::getRelationId),
+                Object::toString
+        );
+        List<HollowGlassQueueInfo> resultList = this.list(
+                new QueryWrapper<HollowGlassQueueInfo>()
+                        .in("relation_id", relationIds)
+                        .eq("cell", cell)
+                        .eq("is_pair", 1)
+                        .ge("create_time", twoDaysAgo)
+                        .select("width","height","flow_card_id","relation_id", "hollow_sequence", "cell", "MAX(state) as state", "MAX(layer) as layer")
+                        .groupBy("relation_id", "hollow_sequence")
+                        .orderByAsc("relation_id", "hollow_sequence")
+        );
+
+        // 淇敼鍐呭瓨涓泦鍚堢殑绗竴鏉� state 涓� 0 鎴� -1 鐨勫璞$殑 state 涓� -2
+        for (HollowGlassQueueInfo item : resultList) {
+            if (item.getState() == 0 || item.getState() == -1) {
+                item.setState(-2);
+                break; // 鍙敼绗竴鏉★紝鏀瑰畬灏遍��鍑哄惊鐜�
+            }
+        }
+        return resultList;
+    }
+
+    @Override
+    public void confirmBorder(HollowGlassQueueInfo hollowGlassQueueInfo) {
+
+        if (hollowGlassQueueInfo.getState() == 8) {
+            HollowGlassQueueInfo hollowGlassQueueInfoDamage = this.getOne(
+                    new LambdaQueryWrapper<HollowGlassQueueInfo>()
+                            .eq(HollowGlassQueueInfo::getLayer, hollowGlassQueueInfo.getLayer())
+                            .eq(HollowGlassQueueInfo::getRelationId, hollowGlassQueueInfo.getRelationId())
+                            .eq(HollowGlassQueueInfo::getHollowSequence, hollowGlassQueueInfo.getHollowSequence())
+            );
+            hollowGlassQueueInfoDamage.setState(hollowGlassQueueInfo.getState());
+            this.updateById(hollowGlassQueueInfoDamage);
+            Damage damage = new Damage();
+            damage.setGlassId(hollowGlassQueueInfoDamage.getGlassId());
+            damage.setLine(hollowGlassQueueInfoDamage.getCell());
+            damage.setWorkingProcedure("涓┖");
+            damage.setRemark("鎶橀摑妗�");
+            damage.setStatus(1);
+            damage.setType(hollowGlassQueueInfoDamage.getState());
+            damageService.insertDamage(damage);
+        } else {
+            this.update(
+                    new LambdaUpdateWrapper<HollowGlassQueueInfo>()
+                            .set(HollowGlassQueueInfo::getState, hollowGlassQueueInfo.getState())
+                            .eq(HollowGlassQueueInfo::getRelationId, hollowGlassQueueInfo.getRelationId())
+                            .eq(HollowGlassQueueInfo::getHollowSequence, hollowGlassQueueInfo.getHollowSequence())
+            );
+
+        }
+    }
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/controller/HollowBigStorageCageHistoryTaskController.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/controller/HollowBigStorageCageHistoryTaskController.java
new file mode 100644
index 0000000..284cce7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/controller/HollowBigStorageCageHistoryTaskController.java
@@ -0,0 +1,46 @@
+package com.mes.hollowtask.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.mes.hollowtask.entity.HollowBigStorageCageHistoryTask;
+import com.mes.hollowtask.entity.request.HollowBigStorageCageHistoryRequest;
+import com.mes.hollowtask.service.HollowBigStorageCageHistoryTaskService;
+import com.mes.largenscreen.entity.DailyProductionVO;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * (HollowBigStorageCageHistoryTask)琛ㄦ帶鍒跺眰
+ *
+ * @author makejava
+ * @since 2024-11-27 15:22:45
+ */
+@Api(tags = "涓┖鐞嗙墖绗间俊鎭巻鍙蹭换鍔�")
+@RestController
+@RequestMapping("hollowBigStorageCageHistoryTask")
+public class HollowBigStorageCageHistoryTaskController {
+
+    @Resource
+    HollowBigStorageCageHistoryTaskService hollowBigStorageCageHistoryTaskService;
+
+    @ApiOperation("鎸夌収鏌ヨ鏉′欢鏌ヨ涓┖鐞嗙墖绗间俊鎭巻鍙蹭换鍔�")
+    @PostMapping("/queryHollowBigStorageCageHistoryTask")
+    public Result<Page<HollowBigStorageCageHistoryTask>> queryHollowBigStorageCageHistoryTask(@RequestBody @Validated HollowBigStorageCageHistoryRequest request) {
+        return Result.build(200, "鏌ヨ鎴愬姛", hollowBigStorageCageHistoryTaskService.queryHollowBigStorageCageHistoryTask(request));
+    }
+
+    @ApiOperation(value = "鏌ヨ鏈潯绾垮巻鍙叉寚瀹氭棩鏈熺殑鏃ョ敓浜ф暟鎹�", notes = "鏌ヨ鏈潯绾垮巻鍙叉寚瀹氭棩鏈熺殑鏃ョ敓浜ф暟鎹�")
+    @PostMapping("/queryHollowDailyProduction")
+    public Result<DailyProductionVO> queryHollowDailyProduction(@RequestBody HollowBigStorageCageHistoryRequest request) {
+        return Result.success(hollowBigStorageCageHistoryTaskService.queryHollowDailyProduction(request));
+    }
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/entity/HollowBigStorageCageHistoryTask.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/entity/HollowBigStorageCageHistoryTask.java
new file mode 100644
index 0000000..77c9398
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/entity/HollowBigStorageCageHistoryTask.java
@@ -0,0 +1,55 @@
+package com.mes.hollowtask.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * (HollowBigStorageCageHistoryTask)琛ㄥ疄浣撶被
+ *
+ * @author makejava
+ * @since 2024-11-27 15:22:47
+ */
+@Data
+public class HollowBigStorageCageHistoryTask {
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * /*鐜荤拑id
+     */
+    private String glassId;
+    /**
+     * /*璧峰鏍煎瓙
+     */
+    private Integer startSlot;
+    /**
+     * /*鐩爣鏍煎瓙
+     */
+    private Integer targetSlot;
+    /**
+     * /*浠诲姟鐘舵��
+     */
+    private Integer taskState;
+    /**
+     * /*鐜荤拑鏁伴噺
+     */
+    private Integer glassCount;
+    /**
+     * /*浠诲姟绫诲瀷
+     */
+    private Integer taskType;
+    /**
+     * /*鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+    /**
+     * /*鏇存柊鏃堕棿
+     */
+    private Date updateTime;
+
+
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/entity/request/HollowBigStorageCageHistoryRequest.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/entity/request/HollowBigStorageCageHistoryRequest.java
new file mode 100644
index 0000000..55d6424
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/entity/request/HollowBigStorageCageHistoryRequest.java
@@ -0,0 +1,59 @@
+package com.mes.hollowtask.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.mes.base.entity.PageRequest;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/3/11 14:10
+ * @Description:
+ */
+@Data
+public class HollowBigStorageCageHistoryRequest extends PageRequest {
+    /**
+     * 鐜荤拑id
+     */
+    @ApiModelProperty(value = "鐜荤拑id", position = 1)
+    private String glassId;
+    /**
+     * 璧峰鏍煎瓙
+     */
+    @ApiModelProperty(value = "璧峰鏍煎瓙", position = 2)
+    private Integer startSlot;
+    /**
+     * 鐩爣鏍煎瓙
+     */
+    @ApiModelProperty(value = "鐩爣鏍煎瓙", position = 3)
+    private Integer targetSlot;
+    /**
+     * 浠诲姟鐘舵��
+     */
+    @ApiModelProperty(value = "浠诲姟鐘舵�� 0 寮�濮� 2瀹屾垚 3鐮存崯 4鏈笂杞�", position = 4)
+    private List<Integer> taskStateList;
+    /**
+     * 浠诲姟绫诲瀷
+     */
+    @ApiModelProperty(value = "浠诲姟绫诲瀷 1杩涚墖 2鍑虹墖 3璋冨害", position = 5)
+    private List<Integer>  taskTypeList;
+    /**
+     * 寮�濮嬫椂闂�
+     */
+    @ApiModelProperty(value = "寮�濮嬫椂闂�", position = 6)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date beginDate;
+
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @ApiModelProperty(value = "缁撴潫鏃堕棿", position = 7)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endDate;
+}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/mapper/HollowBigStorageCageHistoryTaskMapper.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/mapper/HollowBigStorageCageHistoryTaskMapper.java
new file mode 100644
index 0000000..5906e51
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/mapper/HollowBigStorageCageHistoryTaskMapper.java
@@ -0,0 +1,18 @@
+package com.mes.hollowtask.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.hollowtask.entity.HollowBigStorageCageHistoryTask;
+import com.mes.largenscreen.entity.DailyProductionVO;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * (HollowBigStorageCageHistoryTask)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author makejava
+ * @since 2024-11-27 15:22:46
+ */
+public interface HollowBigStorageCageHistoryTaskMapper extends BaseMapper<HollowBigStorageCageHistoryTask> {
+
+    DailyProductionVO queryHollowDailyProduction(@Param("beginDate") String beginDate, @Param("endDate") String endDate);
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/service/HollowBigStorageCageHistoryTaskService.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/service/HollowBigStorageCageHistoryTaskService.java
new file mode 100644
index 0000000..3d98cb3
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/service/HollowBigStorageCageHistoryTaskService.java
@@ -0,0 +1,21 @@
+package com.mes.hollowtask.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.hollowtask.entity.HollowBigStorageCageHistoryTask;
+import com.mes.hollowtask.entity.request.HollowBigStorageCageHistoryRequest;
+import com.mes.largenscreen.entity.DailyProductionVO;
+
+/**
+ * (HollowBigStorageCageHistoryTask)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author makejava
+ * @since 2024-11-27 15:22:47
+ */
+public interface HollowBigStorageCageHistoryTaskService extends IService<HollowBigStorageCageHistoryTask> {
+
+    Page<HollowBigStorageCageHistoryTask> queryHollowBigStorageCageHistoryTask(HollowBigStorageCageHistoryRequest request);
+
+    DailyProductionVO queryHollowDailyProduction(HollowBigStorageCageHistoryRequest request);
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/service/impl/HollowBigStorageCageHistoryTaskServiceImpl.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/service/impl/HollowBigStorageCageHistoryTaskServiceImpl.java
new file mode 100644
index 0000000..a43904e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowtask/service/impl/HollowBigStorageCageHistoryTaskServiceImpl.java
@@ -0,0 +1,57 @@
+package com.mes.hollowtask.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.smallbun.screw.core.util.StringUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.hollowtask.entity.HollowBigStorageCageHistoryTask;
+import com.mes.hollowtask.entity.request.HollowBigStorageCageHistoryRequest;
+import com.mes.hollowtask.mapper.HollowBigStorageCageHistoryTaskMapper;
+import com.mes.hollowtask.service.HollowBigStorageCageHistoryTaskService;
+import com.mes.largenscreen.entity.DailyProductionVO;
+import com.mes.tools.DateUtil;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+
+/**
+ * (HollowBigStorageCageHistoryTask)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author makejava
+ * @since 2024-11-27 15:22:48
+ */
+@Service
+public class HollowBigStorageCageHistoryTaskServiceImpl extends ServiceImpl<HollowBigStorageCageHistoryTaskMapper, HollowBigStorageCageHistoryTask> implements HollowBigStorageCageHistoryTaskService {
+
+    @Override
+    public Page<HollowBigStorageCageHistoryTask> queryHollowBigStorageCageHistoryTask(HollowBigStorageCageHistoryRequest request) {
+        Page<HollowBigStorageCageHistoryTask> page = new Page<>(request.getPageNo(), request.getPageSize());
+        if (null == request.getBeginDate()) {
+            request.setBeginDate(DateUtil.getBeginDate());
+            request.setEndDate(DateUtil.getEndDate());
+        }
+        LambdaQueryWrapper<HollowBigStorageCageHistoryTask> wrapper = new LambdaQueryWrapper<HollowBigStorageCageHistoryTask>()
+                .like(StringUtils.isNotBlank(request.getGlassId()), HollowBigStorageCageHistoryTask::getGlassId, request.getGlassId())
+                .eq(request.getStartSlot() != 0, HollowBigStorageCageHistoryTask::getStartSlot, request.getStartSlot())
+                .eq(request.getTargetSlot() != 0, HollowBigStorageCageHistoryTask::getTargetSlot, request.getTargetSlot())
+                .in(CollectionUtil.isNotEmpty(request.getTaskStateList()), HollowBigStorageCageHistoryTask::getTaskState, request.getTaskStateList())
+                .in(CollectionUtil.isNotEmpty(request.getTaskTypeList()), HollowBigStorageCageHistoryTask::getTaskType, request.getTaskTypeList())
+                .between(HollowBigStorageCageHistoryTask::getCreateTime, request.getBeginDate(), request.getEndDate())
+                .orderByAsc(HollowBigStorageCageHistoryTask::getId);
+        return this.page(page, wrapper);
+    }
+
+    @Override
+    public DailyProductionVO queryHollowDailyProduction(HollowBigStorageCageHistoryRequest request) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String beginDate = null;
+        String endDate = null;
+        if (com.baomidou.mybatisplus.core.toolkit.StringUtils.checkValNotNull(request.getBeginDate())) {
+            beginDate = sdf.format(request.getBeginDate());
+            endDate = sdf.format(request.getEndDate());
+        }
+        return baseMapper.queryHollowDailyProduction(beginDate, endDate);
+    }
+}
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcHollowRemoveTask.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcHollowRemoveTask.java
new file mode 100644
index 0000000..f684f6c
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcHollowRemoveTask.java
@@ -0,0 +1,128 @@
+package com.mes.job;
+
+import com.kangaroohy.milo.model.ReadWriteEntity;
+import com.kangaroohy.milo.service.MiloService;
+import com.mes.hollow.entity.vo.HollowGlassFormulaVO;
+import com.mes.hollow.service.HollowFormulaDetailsService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author SNG-015
+ */
+@Component
+@Slf4j
+public class OpcHollowRemoveTask {
+    @Resource
+    private HollowFormulaDetailsService hollowFormulaDetailsService;
+    @Resource
+    private OpcPlcStorageCageHollowTask opcPlcStorageCageHollowTask;
+
+    @Autowired(required = false)
+    MiloService miloService;
+
+    /**
+     * 鏀跺埌闄よ啘鏈鸿姹傚強鐜荤拑id
+     *
+     * @throws Exception
+     */
+    @Scheduled(fixedDelay = 1000)
+    public void hollowRemoveTaskOne() throws Exception {
+        hollowRemoveChildTask("CMJ1.CMJ1.");
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void hollowRemoveTaskTwo() throws Exception {
+        hollowRemoveChildTask("CMJ2.CMJ2.");
+    }
+
+    private void hollowRemoveChildTask(String cell) throws Exception {
+        ReadWriteEntity requestEntity = miloService.readFromOpcUa(cell + "mesControl");
+        if ("0".equals(requestEntity.getValue() + "")) {
+            log.info("褰撳墠闄よ啘鏈轰负鍗曟満鐘舵��");
+            return;
+        }
+        int request = Integer.parseInt(requestEntity.getValue() + "");
+        int flagRequest = request & 3;
+        if (flagRequest != 3) {
+            log.info("褰撳墠鏈敹鍒拌姹傜幓鐠僫d鏁版嵁锛岀粨鏉熶换鍔�");
+            return;
+        }
+        ReadWriteEntity glassIdEntity = miloService.readFromOpcUa(cell + "glassId");
+        if (null == glassIdEntity.getValue() || StringUtils.isBlank(glassIdEntity.getValue() + "")) {
+            log.info("褰撳墠鏈敹鍒扮幓鐠僫d鏁版嵁锛岀粨鏉熶换鍔�");
+            return;
+        }
+        log.info("褰撳墠闇�瑕侀櫎鑶滅殑鐜荤拑id涓猴細{}", glassIdEntity.getValue() + "");
+        //鎸夌収鐜荤拑id鑾峰彇瀵瑰簲鐨勪换鍔d
+        HollowGlassFormulaVO detailsVO = hollowFormulaDetailsService.queryFormulaDetailsByGlassId(glassIdEntity.getValue() + "", null, null);
+        if (null == detailsVO) {
+            log.info("鐜荤拑id涓嶅瓨鍦紝璇锋鏌ユ暟鎹�");
+            return;
+        }
+        //鎸夌収浠诲姟id鑾峰彇瀵瑰簲鐨勯厤鏂逛俊鎭�
+
+        List<ReadWriteEntity> ualist = new ArrayList<>();
+        List<ReadWriteEntity> wordlist = new ArrayList<>();
+
+        if (detailsVO.getFilmRemove() == 0) {
+            // 10111011
+            int sendId = request & 63;
+            sendId = sendId + 4;
+            wordlist.add(opcPlcStorageCageHollowTask.generateReadWriteEntity(cell + "mesControl", sendId));
+        } else {
+            // 鍏堝皢瀵瑰簲鐨勪綅缃负0锛岃幏寰楄姹傜殑鐜荤拑鏁版嵁锛� 鐒跺悗灏嗗搴斾綅鍊�     110111011
+            int sendId = request & 63;
+            sendId = sendId + 4 + 64;
+            wordlist.add(opcPlcStorageCageHollowTask.generateReadWriteEntity(cell + "mesControl", sendId));
+            ualist.add(opcPlcStorageCageHollowTask.generateReadWriteEntity(cell + "glassTop", detailsVO.getTopRemove()));
+            ualist.add(opcPlcStorageCageHollowTask.generateReadWriteEntity(cell + "glassBottom", detailsVO.getBottomRemove()));
+            ualist.add(opcPlcStorageCageHollowTask.generateReadWriteEntity(cell + "glassLeft", detailsVO.getLeftRemove()));
+            ualist.add(opcPlcStorageCageHollowTask.generateReadWriteEntity(cell + "glassRight", detailsVO.getRightRemove()));
+        }
+        ualist.add(opcPlcStorageCageHollowTask.generateReadWriteEntity(cell + "thickness", (int) (detailsVO.getThickness() * 10)));
+        ualist.add(opcPlcStorageCageHollowTask.generateReadWriteEntity(cell + "firstLength", (int) (Math.max(detailsVO.getWidth(), detailsVO.getHeight())) * 10));
+        ualist.add(opcPlcStorageCageHollowTask.generateReadWriteEntity(cell + "secondLength", (int) (Math.min(detailsVO.getWidth(), detailsVO.getHeight())) * 10));
+        miloService.writeToOpcWord(wordlist);
+        miloService.writeToOpcUa(ualist);
+        return;
+    }
+
+    /**
+     * 鏀跺埌闄よ啘鏈篒D鎺ユ敹瀹屾垚寮�濮嬫墽琛屼换鍔�
+     *
+     * @throws Exception
+     */
+    @Scheduled(fixedDelay = 1000)
+    public void finishHollowRemoveOneTask() throws Exception {
+        finishHollowRemoveChildTask("CMJ1.CMJ1.");
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void finishHollowRemoveTwoTask() throws Exception {
+        finishHollowRemoveChildTask("CMJ2.CMJ2.");
+    }
+
+    public void finishHollowRemoveChildTask(String cell) throws Exception {
+        ReadWriteEntity requestEntity = miloService.readFromOpcUa(cell + "mesControl");
+        int request = Integer.parseInt(requestEntity.getValue() + "");
+        int flagRequest = request & 9;
+        if (flagRequest != 9) {
+            log.info("褰撳墠鏈敹鍒伴櫎鑶滄満ID鎺ユ敹瀹屾垚淇″彿锛岀粨鏉熶换鍔�");
+            return;
+        }
+        //鍚戠數姘斿彂閫佹竻妤氫俊鍙�
+        int sendId = request & 251;
+        List<ReadWriteEntity> list = new ArrayList<>();
+        list.add(opcPlcStorageCageHollowTask.generateReadWriteEntity(cell + "mesControl", sendId));
+        miloService.writeToOpcWord(list);
+    }
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
new file mode 100644
index 0000000..733c1e3
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
@@ -0,0 +1,948 @@
+package com.mes.job;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.kangaroohy.milo.model.ReadWriteEntity;
+import com.kangaroohy.milo.service.MiloService;
+import com.mes.base.entity.HollowBigStorageCageBaseInfo;
+import com.mes.bigstoragecagetask.entity.BigStorageCageTask;
+import com.mes.bigstoragecagetask.service.BigStorageCageTaskService;
+import com.mes.common.config.Const;
+import com.mes.common.config.ConstSysConfig;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.hollow.entity.HollowBigStorageCage;
+import com.mes.hollow.entity.HollowBigStorageCageDetails;
+import com.mes.hollow.entity.HollowGlassOutRelationInfo;
+import com.mes.hollow.entity.HollowGlassRelationInfo;
+import com.mes.hollow.entity.dto.BigStorageSequenceDTO;
+import com.mes.hollow.entity.dto.FlowCardVirtualSlotDTO;
+import com.mes.hollow.entity.dto.HollowBigStorageDTO;
+import com.mes.hollow.entity.dto.UpdateHollowBigStorageCageDTO;
+import com.mes.hollow.service.HollowBigStorageCageDetailsService;
+import com.mes.hollow.service.HollowBigStorageCageService;
+import com.mes.hollow.service.HollowGlassOutRelationInfoService;
+import com.mes.hollow.service.HollowGlassRelationInfoService;
+import com.mes.hollowqueue.entity.HollowGlassQueueInfo;
+import com.mes.hollowqueue.service.HollowGlassQueueInfoService;
+import com.mes.hollowtask.entity.HollowBigStorageCageHistoryTask;
+import com.mes.hollowtask.service.HollowBigStorageCageHistoryTaskService;
+import com.mes.sysconfig.service.SysConfigService;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
+import com.mes.utils.RedisUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author SNG-015
+ */
+@Component
+@Slf4j
+public class OpcPlcStorageCageHollowTask {
+    @Resource
+    private HollowBigStorageCageService hollowBigStorageCageService;
+
+    @Resource
+    private HollowBigStorageCageHistoryTaskService hollowBigStorageCageHistoryTaskService;
+    @Resource
+    private HollowGlassRelationInfoService hollowGlassRelationInfoService;
+    @Resource
+    private HollowBigStorageCageDetailsService hollowBigStorageCageDetailsService;
+    @Resource
+    private DamageService damageService;
+    @Resource
+    private GlassInfoService glassInfoService;
+    @Resource
+    private BigStorageCageTaskService bigStorageCageTaskService;
+
+    @Resource
+    private TemperingGlassInfoService temperingGlassInfoService;
+    @Resource
+    private HollowGlassQueueInfoService hollowGlassQueueInfoService;
+    @Resource
+    private HollowGlassOutRelationInfoService hollowGlassOutRelationInfoService;
+    @Resource
+    private SysConfigService sysConfigService;
+
+    private static final String BIG_STORAGE_CAGE_IN_TWO_TASK = "big_storage_cage_in_two_task";
+    private static final String BIG_STORAGE_CAGE_OUT_TWO_TASK = "big_storage_cage_out_two_task";
+    /**
+     * 鐩撮�氭牸瀛�
+     */
+    private static final Integer THROUGH_SLOT = 920;
+    @Autowired(required = false)
+    MiloService miloService;
+    @Resource
+    private RedisUtil redisUtil;
+
+//    @Value("${mes.slotWidth}")
+//    private Integer slotWidth;
+//
+//    @Value("${mes.glassGap}")
+//    private Integer glassGap;
+//
+//    @Value("${mes.carWidth}")
+//    private Integer carWidth;
+//
+//    @Value("${mes.outCarMaxSize}")
+//    private Integer outCarMaxSize;
+//
+//    @Value("${mes.slotMaxHeight}")
+//    private Integer slotMaxHeight;
+//    @Value("${mes.slotMaxthickness}")
+//    private Integer slotMaxthickness;
+
+    @Scheduled(fixedDelay = 1000)
+    public void inBigStorageTask() throws Exception {
+        ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP2A.DLP2A.mesControl");
+        if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
+            log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫杩涚墖浠诲姟");
+            return;
+        }
+        ReadWriteEntity requestEntity = miloService.readFromOpcUa("DLP2A.DLP2A.RequestMes");
+        if (!"1".equals(requestEntity.getValue() + "")) {
+            log.info("褰撳墠鏈敹鍒拌繘鐗囪姹傦紝缁撴潫杩涚墖浠诲姟");
+            return;
+        }
+        ReadWriteEntity mesReplyEntity = miloService.readFromOpcUa("DLP2A.DLP2A.MesReply");
+        if ("1".equals(mesReplyEntity.getValue() + "")) {
+            log.info("鏈夋鍦ㄦ墽琛岀殑浠诲姟锛岀粨鏉熻繘鐗囦换鍔�");
+            return;
+        }
+
+        List<BigStorageCageTask> inTaskList = new ArrayList();
+        ReadWriteEntity fromOpcUa = miloService.readFromOpcUa("DLP2A.DLP2A.FROM1");
+        List<String> glassIdList = new ArrayList<>();
+        for (int i = 1; i <= 6; i++) {
+            ReadWriteEntity requestWord = miloService.readFromOpcUa("DLP2A.DLP2A.DI" + i);
+            if (null != requestWord.getValue()) {
+                BigStorageCageTask task = new BigStorageCageTask();
+                task.setGlassId(requestWord.getValue() + "");
+                task.setStartSlot(Integer.parseInt(fromOpcUa.getValue() + ""));
+                inTaskList.add(task);
+                glassIdList.add(requestWord.getValue() + "");
+                continue;
+            }
+        }
+        if (CollectionUtil.isEmpty(inTaskList)) {
+            log.info("褰撳墠澶ц溅鏃犺繘鐗囩幓鐠冿紝缁撴潫杩涚墖浠诲姟");
+            return;
+        }
+        log.info("鑾峰彇浠诲姟鐨勭幓鐠僫d锛歿}", glassIdList);
+        Map<String, Long> glassCountMap = glassIdList.stream().collect(Collectors.groupingBy(e -> e, Collectors.counting()));
+        for (Map.Entry<String, Long> entry : glassCountMap.entrySet()) {
+            if (entry.getValue() > 1) {
+                log.info("杩涚墖鐜荤拑{}瀛樺湪鐩稿悓锛岀粨鏉熸湰娆′换鍔�", entry.getKey());
+                //鍚憄lc鍙戦�佹姤璀�:鍚屼竴杞﹁繘鐗囩幓鐠冨瓨鍦ㄧ浉鍚�
+                miloService.writeToOpcWord(generateReadWriteEntity("DLP2A.DLP2A.alarmSignal", 2));
+                return;
+            }
+        }
+        List<HollowBigStorageCageDetails> detailsList = hollowBigStorageCageDetailsService.list(new LambdaQueryWrapper<HollowBigStorageCageDetails>().in(HollowBigStorageCageDetails::getGlassId, glassIdList)
+                .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO));
+        if (CollectionUtil.isNotEmpty(detailsList)) {
+            log.info("鐞嗙墖绗煎瓨鍦ㄧ浉鍚岀殑杩涚墖鐜荤拑{}锛岀粨鏉熸湰娆′换鍔�", detailsList);
+            //鍚憄lc鍙戦�佹姤璀�:鐞嗙墖绗煎瓨鍦ㄧ浉鍚岀殑杩涚墖鐜荤拑
+            miloService.writeToOpcWord(generateReadWriteEntity("DLP2A.DLP2A.alarmSignal", 4));
+            return;
+        }
+        List<GlassInfo> glassInfoList = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>().in(GlassInfo::getGlassId, glassIdList));
+
+        if (glassInfoList.size() != inTaskList.size()) {
+            log.info("杩涚墖浠诲姟鏁伴噺{}涓庣幓鐠冩暟閲弡}涓嶅尮閰嶏紝缁撴潫鏈杩涚墖", inTaskList.size(), glassInfoList.size());
+            //鍚憄lc鍙戦�佹姤璀�:杩涚墖浠诲姟鏁伴噺涓庣郴缁熸煡璇㈠埌鐨勭幓鐠冩暟閲忎笉鍖归厤
+            miloService.writeToOpcWord(generateReadWriteEntity("DLP2A.DLP2A.alarmSignal", 8));
+            return;
+        }
+
+        Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_SLOT_WIDTH);
+        //鎸夌収鐜荤拑鍘氬害鍒嗙粍锛屽垽鏂墿浣欐牸瀛愭槸鍚﹀彲浠ュ瓨鏀�
+        Map<Double, Long> thickCountMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getThickness, Collectors.counting()));
+        for (Map.Entry<Double, Long> entry : thickCountMap.entrySet()) {
+            int count = hollowBigStorageCageService.count(new LambdaQueryWrapper<HollowBigStorageCage>()
+                    .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getRemainWidth, slotWidth)
+                    .le(HollowBigStorageCage::getMinThickness, entry.getKey())
+                    .ge(HollowBigStorageCage::getMaxThickness, entry.getKey()));
+            if (count < entry.getValue()) {
+                log.info("绗煎唴鏍煎瓙鍓╀綑鏁伴噺涓嶈冻锛岀粨鏉熸湰娆¤繘鐗�");
+                //鍚憄lc鍙戦�佹姤璀�:绗煎唴鏍煎瓙鍓╀綑鏁伴噺涓嶈冻
+                miloService.writeToOpcWord(generateReadWriteEntity("DLP2A.DLP2A.alarmSignal", 16));
+                return;
+            }
+        }
+        //瓒呭ぇ灏哄
+        Integer slotMaxHeight = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_SLOT_MAX_HEIGHT);
+        Integer slotMaxthickness = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_SLOT_MAX_THICKNESS);
+        if (slotMaxHeight < Math.min(glassInfoList.get(0).getWidth(), glassInfoList.get(0).getHeight()) || glassInfoList.get(0).getThickness() >= slotMaxthickness) {
+            int count = hollowBigStorageCageDetailsService.count(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
+                    .eq(HollowBigStorageCageDetails::getSlot, THROUGH_SLOT)
+                    .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
+            if (count > 0) {
+                log.info("鐩撮�氱墖鍙板瓨鍦ㄧ幓鐠冿紝缁撴潫鏈杩涚墖");
+                //鍚憄lc鍙戦�佹姤璀�:鐩撮�氱墖鍙板瓨鍦ㄧ幓鐠冿紝鏃犳硶缁х画鐩撮��
+                miloService.writeToOpcWord(generateReadWriteEntity("DLP2A.DLP2A.alarmSignal", 64));
+                return;
+            }
+        }
+
+        log.info("灏嗛挗鍖栧皬鐗囪〃鍐呯殑鐘舵�佹敼涓洪挗鍖栫粨鏉燂紝鐜荤拑id鏈夛細{}", glassIdList);
+        //淇敼閽㈠寲浠诲姟琛ㄤ腑鐨勭姸鎬�
+        temperingGlassInfoService.update(new LambdaUpdateWrapper<TemperingGlassInfo>()
+                .set(TemperingGlassInfo::getState, Const.TEMPERING_END).in(TemperingGlassInfo::getGlassId, glassIdList));
+        //鎶ュ伐
+        log.info("灏嗘帴鏀跺埌鐨勭幓鐠冭繘琛岄挗鍖栬嚜鍔ㄦ姤宸ワ紝鐜荤拑id鏈夛細{}", glassIdList);
+        for (String glass : glassIdList) {
+            damageService.autoSubmitReport(glass, inTaskList.get(0).getStartSlot(), "閽㈠寲", "杩涗腑绌虹悊鐗囩", 1);
+        }
+        Map<String, List<GlassInfo>> glassListMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getGlassId));
+
+        //璁$畻鐩爣鏍煎瓙
+        List<HollowBigStorageCageHistoryTask> historyTasks = new ArrayList<>();
+
+        Integer glassGap = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_GLASS_GAP);
+        try {
+            if (slotMaxHeight > Math.min(glassInfoList.get(0).getWidth(), glassInfoList.get(0).getHeight()) && glassInfoList.get(0).getThickness() < slotMaxthickness) {
+                for (BigStorageCageTask task : inTaskList) {
+                    GlassInfo info = glassListMap.get(task.getGlassId()).get(0);
+                    HollowBigStorageDTO bigStorageDTO = hollowGlassRelationInfoService.queryHollowTargetSlot(info.getFlowCardId(),
+                            info.getWidth(), info.getHeight(), info.getTotalLayer(), info.getLayer());
+//            涓存椂鏇存柊鏍煎瓙鐨勫墿浣欏昂瀵革細闃叉鐩搁偦鐜荤拑杩涘悓涓�鏍煎瓙閫犳垚鍓╀綑灏哄涓嶈冻锛岀幓鐠冭秺鐣岀殑鎯呭喌锛屼换鍔″畬鎴愬悗鍐嶆鏇存柊澶х悊鐗囩琛ㄥ墿浣欏搴︼紙鎸夌収绗煎唴鐜荤拑鏁伴噺鏇存柊澶х悊鐗囩鍓╀綑灏哄锛�
+                    hollowBigStorageCageService.update(new LambdaUpdateWrapper<HollowBigStorageCage>()
+                            .set(HollowBigStorageCage::getRemainWidth, bigStorageDTO.getRemainWidth() - Math.max(info.getWidth(), info.getHeight()) - glassGap)
+                            .eq(HollowBigStorageCage::getSlot, bigStorageDTO.getSlot()));
+                    task.setTargetSlot(bigStorageDTO.getSlot());
+                    task.setGlassId(info.getGlassId());
+                    bigStorageCageTaskService.updateTaskMessage(BIG_STORAGE_CAGE_IN_TWO_TASK, task);
+                    //瀛樻斁鍘嗗彶浠诲姟
+                    HollowBigStorageCageHistoryTask historyTask = new HollowBigStorageCageHistoryTask();
+                    BeanUtils.copyProperties(task, historyTask);
+                    historyTask.setTaskType(Const.BIG_STORAGE_AFTER_IN);
+                    historyTask.setGlassCount(glassInfoList.size());
+                    historyTask.setTaskState(Const.ENGINEERING_NEW);
+                    historyTasks.add(historyTask);
+                    //瀛樻斁璇︽儏鏁版嵁
+                    HollowBigStorageCageDetails cageDetails = new HollowBigStorageCageDetails();
+                    BeanUtils.copyProperties(bigStorageDTO, cageDetails);
+                    BeanUtils.copyProperties(info, cageDetails);
+                    cageDetails.setState(Const.GLASS_STATE_NEW);
+                    cageDetails.setSequence(bigStorageDTO.getSlotSequence());
+                    cageDetails.setGap(glassGap);
+                    cageDetails.setId(null);
+                    hollowBigStorageCageDetailsService.save(cageDetails);
+                    hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>()
+                            .set(HollowGlassRelationInfo::getGlassId, cageDetails.getGlassId())
+                            .set(HollowGlassRelationInfo::getTemperingLayoutId, cageDetails.getTemperingLayoutId())
+                            .set(HollowGlassRelationInfo::getTemperingFeedSequence, cageDetails.getTemperingFeedSequence())
+                            .set(HollowGlassRelationInfo::getEngineerId, cageDetails.getEngineerId())
+                            .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY)
+                            .eq(HollowGlassRelationInfo::getFlowCardId, bigStorageDTO.getFlowCardId())
+                            .eq(HollowGlassRelationInfo::getLayer, bigStorageDTO.getLayer())
+                            .eq(HollowGlassRelationInfo::getVirtualSlot, bigStorageDTO.getVirtualSlot())
+                            .eq(HollowGlassRelationInfo::getSlotSequence, bigStorageDTO.getSlotSequence())
+                            .eq(HollowGlassRelationInfo::getHollowSequence, bigStorageDTO.getHollowSequence())
+                    );
+                }
+            } else {
+                BigStorageCageTask task = inTaskList.get(0);
+                task.setTargetSlot(THROUGH_SLOT);
+                bigStorageCageTaskService.updateTaskMessage("big_storage_cage_in_two_task", task);
+                //瀛樻斁鍘嗗彶浠诲姟
+                HollowBigStorageCageHistoryTask historyTask = new HollowBigStorageCageHistoryTask();
+                BeanUtils.copyProperties(task, historyTask);
+                historyTask.setTaskType(Const.BIG_STORAGE_AFTER_IN);
+                historyTask.setGlassCount(glassInfoList.size());
+                historyTask.setTaskState(Const.ENGINEERING_NEW);
+                historyTasks.add(historyTask);
+                GlassInfo info = glassInfoList.get(0);
+                HollowBigStorageCageDetails cageDetails = new HollowBigStorageCageDetails();
+                BeanUtils.copyProperties(info, cageDetails);
+                cageDetails.setSlot(THROUGH_SLOT);
+                cageDetails.setState(Const.GLASS_STATE_NEW);
+                cageDetails.setDeviceId(0);
+                cageDetails.setSequence(0);
+                cageDetails.setHollowSequence(0);
+                cageDetails.setGap(glassGap);
+                cageDetails.setFilmsId(info.getFilmsid());
+                cageDetails.setId(null);
+                hollowBigStorageCageDetailsService.save(cageDetails);
+            }
+        } catch (Exception exception) {
+            log.info("杩涚墖浠诲姟鎵ц涓彂鐢熷紓甯革細{}", exception);
+            hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>()
+                    .set(HollowGlassRelationInfo::getGlassId, null)
+                    .set(HollowGlassRelationInfo::getTemperingLayoutId, null)
+                    .set(HollowGlassRelationInfo::getTemperingFeedSequence, null)
+                    .set(HollowGlassRelationInfo::getEngineerId, null)
+                    .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW)
+                    .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY)
+            );
+        }
+        //鍘嗗彶鏁版嵁鍏ュ簱
+        hollowBigStorageCageHistoryTaskService.saveBatch(historyTasks);
+        //鍚憃pc鍙戦�佸惎鍔ㄤ俊鍙�
+        List<ReadWriteEntity> list = new ArrayList<>();
+        for (int i = 1; i <= inTaskList.size(); i++) {
+            list.add(generateReadWriteEntity("DLP2A.DLP2A.TO" + i, inTaskList.get(i - 1).getTargetSlot()));
+        }
+        list.add(generateReadWriteEntity("DLP2A.DLP2A.MesReply", 1));
+        miloService.writeToOpcWord(list);
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void outBigStorageTask() throws Exception {
+        Date startDate = new Date();
+        ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP2B.DLP2B.mesControl");
+        if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
+            log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫杩涚墖浠诲姟");
+            return;
+        }
+        ReadWriteEntity requestEntity = miloService.readFromOpcUa("DLP2B.DLP2B.RequestMes");
+        if (!"1".equals(requestEntity.getValue() + "")) {
+            log.info("褰撳墠鏈敹鍒板嚭鐗囪姹傦紝缁撴潫鍑虹墖浠诲姟");
+            return;
+        }
+        //鑾峰彇鍑虹墖浠诲姟琛�
+        List<BigStorageCageTask> outTaskList = bigStorageCageTaskService.queryTaskMessage(BIG_STORAGE_CAGE_OUT_TWO_TASK);
+        if (CollectionUtil.isNotEmpty(outTaskList)) {
+            log.info("鏈夋鍦ㄦ墽琛岀殑鍑虹墖浠诲姟锛岀粨鏉熸湰娆″嚭鐗囦换鍔�");
+            return;
+        }
+
+        //鑾峰彇绌洪棽涓旈鍙栦换鍔$殑鏁版嵁淇℃伅锛屾病鏈変换鍔$洿鎺ヨ蛋鐜荤拑璋冨害
+        HashMap<Integer, ReadWriteEntity> map = new HashMap<>();
+        ReadWriteEntity oneEntity = miloService.readFromOpcUa("CMJ1.CMJ1.isFree");
+        ReadWriteEntity twoEntity = miloService.readFromOpcUa("ZKQ2.ZKQ2.isFree");
+        ReadWriteEntity threeEntity = miloService.readFromOpcUa("ZKQ2.ZKQ2.isFree03");
+        map.put(930, oneEntity);
+        map.put(931, twoEntity);
+        map.put(932, threeEntity);
+        HollowGlassOutRelationInfo hollowGlassOutRelationInfo = null;
+        int cell = -1;
+        for (int i = 930; i <= 932; i++) {
+            if (null == hollowGlassOutRelationInfo) {
+                ReadWriteEntity entity = map.get(i);
+                cell = i;
+                if (null != entity.getValue() && ("1".equals(entity.getValue() + "") || Boolean.parseBoolean(entity.getValue() + ""))) {
+                    hollowGlassOutRelationInfo = hollowGlassOutRelationInfoService
+                            .getOne(new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
+                                    .eq(HollowGlassOutRelationInfo::getCell, cell)
+                                    .eq(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_START)
+                            );
+                }
+            } else {
+                break;
+            }
+        }
+        for (int i = 930; i <= 932; i++) {
+            if (null == hollowGlassOutRelationInfo) {
+                cell = i;
+                hollowGlassOutRelationInfo = hollowGlassOutRelationInfoService
+                        .getOne(new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
+                                .eq(HollowGlassOutRelationInfo::getCell, cell)
+                                .eq(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_START)
+                        );
+            } else {
+                break;
+            }
+        }
+
+        if (null != hollowGlassOutRelationInfo) {
+            //鏄惁鍏佽涓┖
+            //鏄惁鏈夋鍦ㄤ腑绌虹殑鐜荤拑:涓┖灏忕墖琛ㄧ瓫閫夋湭鍑虹鐨勭幓鐠冧俊鎭�
+//            鑾峰彇褰撳墠涓┖浠诲姟鏈畬鎴愬嚭鐗囩殑鐜荤拑淇℃伅
+            List<HollowGlassQueueInfo> unFinishHollowQueueList = hollowGlassQueueInfoService.list(new LambdaQueryWrapper<HollowGlassQueueInfo>()
+                    .eq(HollowGlassQueueInfo::getFlowCardId, hollowGlassOutRelationInfo.getFlowCardId())
+                    .eq(HollowGlassQueueInfo::getCell, cell)
+                    .eq(HollowGlassQueueInfo::getState, Const.TEMPERING_NEW)
+                    .orderByAsc(HollowGlassQueueInfo::getHollowSequence));
+            if (CollectionUtil.isNotEmpty(unFinishHollowQueueList)) {
+                log.info("鏈夋鍦ㄥ嚭鐗囩殑涓┖浠诲姟");
+                Integer isPair = unFinishHollowQueueList.get(0).getIsPair();
+                hollowOutGlassByIsPair(unFinishHollowQueueList, hollowGlassOutRelationInfo.getCell(), isPair, hollowGlassOutRelationInfo.getTotalLayer(), hollowGlassOutRelationInfo.getIsForce());
+                Date endDate = new Date();
+                log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+                return;
+            } else {
+                //灏嗕腑绌轰换鍔$姸鎬佹敼涓哄凡瀹屾垚
+                hollowGlassOutRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassOutRelationInfo>()
+                        .eq(HollowGlassOutRelationInfo::getFlowCardId, hollowGlassOutRelationInfo.getFlowCardId())
+                        .eq(HollowGlassOutRelationInfo::getCell, hollowGlassOutRelationInfo.getCell())
+                        .set(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_SUCCESS));
+            }
+        }
+//        redisUtil.setCacheObject("dispatchHollowSwitch",true);
+        //鏄惁瀛樺湪闇�瑕佸唴閮ㄨ皟搴︾殑鏍煎瓙:鎵ц鍐呴儴璋冨害浠诲姟
+        if (redisUtil.getCacheObject("dispatchHollowSwitch")) {
+            //todo:鑾峰彇绗煎唴鍗曟牸宸茬粡鍒伴綈鐨勭幓鐠冩牸瀛愪俊鎭�
+            List<FlowCardVirtualSlotDTO> virtualList = hollowBigStorageCageDetailsService.queryIsAllNeedDispatchVirtualSlot();
+            if (CollectionUtil.isEmpty(virtualList)) {
+                log.info("娌℃湁闇�瑕佽皟搴︾殑鏍煎瓙");
+                return;
+            }
+            List<HollowBigStorageCageDetails> list = new ArrayList<>();
+            loop:
+            for (FlowCardVirtualSlotDTO dto : virtualList) {
+                List<BigStorageSequenceDTO> sequenceDTOList = hollowBigStorageCageDetailsService.queryNeedDispatchSlot(dto);
+                if (CollectionUtil.isEmpty(sequenceDTOList) || sequenceDTOList.size() == 1) {
+                    continue;
+                }
+                int sequence = -1;
+                int startSlot = -1;
+                for (BigStorageSequenceDTO item : sequenceDTOList) {
+                    if (item.getMinSequence() == sequence + 1) {
+                        //鐢熸垚璋冨害浠诲姟
+                        int targetSlot = item.getSlot();
+                        list = hollowBigStorageCageDetailsService.list(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
+                                .eq(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN).eq(HollowBigStorageCageDetails::getSlot, startSlot));
+                        hollowOutGlassByIsPair(list, targetSlot, 0, 0, 0);
+                        List<Integer> slotList = new ArrayList<>();
+                        slotList.add(targetSlot);
+                        updateSlotRemainBySlots(slotList);
+                        break loop;
+                    }
+                    sequence = item.getMaxSequence();
+                    startSlot = item.getSlot();
+                }
+            }
+        }
+        Date endDate = new Date();
+        log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+        return;
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void finishInBigStorageTask() throws Exception {
+        ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP2A.DLP2A.mesControl");
+        if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
+            log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫瀹屾垚杩涚墖浠诲姟");
+            return;
+        }
+        //鑾峰彇杩涚墖浠诲姟琛�
+        List<BigStorageCageTask> inTaskList = new ArrayList();
+        List<String> glassIdList = new ArrayList<>();
+        ReadWriteEntity toWord = miloService.readFromOpcUa("DLP2A.DLP2A.TO1");
+        if ("0".equals(toWord.getValue() + "")) {
+            log.info("瀹屾垚浠诲姟宸叉墽琛岋紝缁撴潫鏈瀹屾垚杩涚墖浠诲姟");
+            return;
+        }
+        for (int i = 1; i <= 6; i++) {
+            ReadWriteEntity requestWord = miloService.readFromOpcUa("DLP2A.DLP2A.DI" + i);
+            ReadWriteEntity statetWord = miloService.readFromOpcUa("DLP2A.DLP2A.STATE" + i);
+            ReadWriteEntity toOpcUa = miloService.readFromOpcUa("DLP2A.DLP2A.TO" + i);
+            ReadWriteEntity fromOpcUa = miloService.readFromOpcUa("DLP2A.DLP2A.FROM" + i);
+
+            if (null != requestWord.getValue()) {
+                BigStorageCageTask task = new BigStorageCageTask();
+                task.setGlassId(requestWord.getValue() + "");
+                task.setTargetSlot(Integer.parseInt(toOpcUa.getValue() + ""));
+                task.setTaskState(Integer.parseInt(statetWord.getValue() + ""));
+                task.setStartSlot(Integer.parseInt(fromOpcUa.getValue() + ""));
+                inTaskList.add(task);
+                glassIdList.add(requestWord.getValue() + "");
+                continue;
+            }
+        }
+        if (CollectionUtil.isEmpty(inTaskList)) {
+            log.info("褰撳墠澶ц溅鏃犺繘鐗囩幓鐠冿紝缁撴潫瀹屾垚杩涚墖浠诲姟");
+            return;
+        }
+        List<BigStorageCageTask> unFinishTaskList = inTaskList.stream().filter(e -> e.getTaskState() <= 1 || e.getStartSlot() == 0).collect(Collectors.toList());
+        if (CollectionUtil.isNotEmpty(unFinishTaskList)) {
+            log.info("瀛樺湪鏈畬鎴愮殑鐜荤拑淇℃伅,鐜荤拑锛歿}", unFinishTaskList);
+            return;
+        }
+        Map<Integer, List<BigStorageCageTask>> taskMap = inTaskList.stream().collect(Collectors.groupingBy(BigStorageCageTask::getTaskState));
+        //鎸夌収浠诲姟鐘舵�佷慨鏀瑰ぇ鐞嗙墖绗煎唴鐨勭幓鐠冩暟鎹�
+//        閲嶆柊璁$畻澶х悊鐗囩鍐呯殑鍓╀綑灏哄
+        taskMap.forEach((e1, v) -> {
+            if (e1 == 2) {
+                //杩涚墖瀹屾垚
+                log.info("3銆佽幏鍙栬繘鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", v);
+                List<Integer> inSuccessGlassSlot = v.stream().map(BigStorageCageTask::getTargetSlot).collect(Collectors.toList());
+                List<UpdateHollowBigStorageCageDTO> storageCageDTOList = v.stream().map(e -> {
+                    UpdateHollowBigStorageCageDTO storageCageDTO = new UpdateHollowBigStorageCageDTO();
+                    BeanUtils.copyProperties(e, storageCageDTO);
+                    return storageCageDTO;
+                }).collect(Collectors.toList());
+                hollowBigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
+                log.info("4銆佸ぇ鐞嗙墖绗艰繘鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", v);
+                updateSlotRemainBySlots(inSuccessGlassSlot);
+                List<String> glassList = v.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList());
+                hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>()
+                        .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_SUCCESS)
+                        .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY)
+                        .in(HollowGlassRelationInfo::getGlassId, glassList)
+                );
+            } else if (e1 == 3) {
+                //鐮存崯澶勭悊
+                dealDamageInTask(v);
+                List<String> glassList = v.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList());
+                hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>()
+                        .set(HollowGlassRelationInfo::getGlassId, null)
+                        .set(HollowGlassRelationInfo::getTemperingLayoutId, null)
+                        .set(HollowGlassRelationInfo::getTemperingFeedSequence, null)
+                        .set(HollowGlassRelationInfo::getEngineerId, null)
+                        .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW)
+                        .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY)
+                        .in(HollowGlassRelationInfo::getGlassId, glassList)
+                );
+            } else {
+                //娓呯┖鐞嗙墖绗肩┖鏁版嵁
+                noDealInTask(v);
+                List<String> glassList = v.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList());
+                hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>()
+                        .set(HollowGlassRelationInfo::getGlassId, null)
+                        .set(HollowGlassRelationInfo::getTemperingLayoutId, null)
+                        .set(HollowGlassRelationInfo::getTemperingFeedSequence, null)
+                        .set(HollowGlassRelationInfo::getEngineerId, null)
+                        .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW)
+                        .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY)
+                        .in(HollowGlassRelationInfo::getGlassId, glassList)
+                );
+            }
+        });
+        for (BigStorageCageTask item : inTaskList) {
+            //鏇存柊鍘嗗彶浠诲姟琛ㄤ腑鐨勪换鍔$姸鎬�
+            hollowBigStorageCageHistoryTaskService.update(new LambdaUpdateWrapper<HollowBigStorageCageHistoryTask>()
+                    .set(HollowBigStorageCageHistoryTask::getTaskState, item.getTaskState())
+                    .eq(HollowBigStorageCageHistoryTask::getTaskType, Const.BIG_STORAGE_AFTER_IN)
+                    .eq(HollowBigStorageCageHistoryTask::getTargetSlot, item.getTargetSlot())
+                    .eq(HollowBigStorageCageHistoryTask::getGlassId, item.getGlassId()));
+            item.setTargetSlot(0);
+            //娓呯┖浠诲姟琛ㄦ暟鎹�
+            bigStorageCageTaskService.updateTaskMessage("big_storage_cage_in_one_task", item);
+        }
+        //娓呯┖鍚姩鐘舵��
+        //鍚憃pc鍙戦�佸惎鍔ㄤ俊鍙�
+        //鍚憃pc鍙戦�佸惎鍔ㄤ俊鍙�
+        List<ReadWriteEntity> list = new ArrayList<>();
+        for (int i = 1; i <= 6; i++) {
+            list.add(generateReadWriteEntity("DLP2A.DLP2A.TO" + i, 0));
+        }
+        list.add(generateReadWriteEntity("DLP2A.DLP2A.MesReply", 0));
+        miloService.writeToOpcWord(list);
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void finishOutBigStorageTask() throws Exception {
+        ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP2B.DLP2B.mesControl");
+        if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
+            log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫瀹屾垚鍑虹墖浠诲姟");
+            return;
+        }
+        //鑾峰彇杩涚墖浠诲姟琛�
+        List<BigStorageCageTask> outTaskList = bigStorageCageTaskService.queryTaskMessage(BIG_STORAGE_CAGE_OUT_TWO_TASK);
+        if (CollectionUtil.isEmpty(outTaskList)) {
+            log.info("褰撳墠澶ц溅鏃犺繘鐗囩幓鐠冿紝缁撴潫瀹屾垚杩涚墖浠诲姟");
+            return;
+        }
+        List<BigStorageCageTask> unFinishTaskList = outTaskList.stream().filter(e -> e.getTaskState() <= 1 || e.getStartSlot() == 0).collect(Collectors.toList());
+        if (CollectionUtil.isNotEmpty(unFinishTaskList)) {
+            log.info("瀛樺湪鏈畬鎴愮殑鐜荤拑淇℃伅,鐜荤拑锛歿}", unFinishTaskList);
+            return;
+        }
+        Map<Integer, List<BigStorageCageTask>> taskMap = outTaskList.stream().collect(Collectors.groupingBy(BigStorageCageTask::getTaskState));
+        int taskType = 0;
+        if (Const.OUT_TARGET_POSITION_ALL.contains(outTaskList.get(0).getTargetSlot())) {
+            taskType = Const.BIG_STORAGE_AFTER_OUT;
+        } else {
+            taskType = Const.BIG_STORAGE_AFTER_DISPATCH;
+        }
+        //鎸夌収浠诲姟鐘舵�佷慨鏀瑰ぇ鐞嗙墖绗煎唴鐨勭幓鐠冩暟鎹�
+//        閲嶆柊璁$畻澶х悊鐗囩鍐呯殑鍓╀綑灏哄
+        Integer finalTaskType = taskType;
+        taskMap.forEach((e1, v) -> {
+            if (e1 == 2) {
+                //杩涚墖瀹屾垚
+                log.info("3銆佽幏鍙栬繘鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", v);
+                List<Integer> outSuccessGlassSlot = new ArrayList<>();
+                if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
+                    outSuccessGlassSlot = v.stream().map(BigStorageCageTask::getStartSlot).collect(Collectors.toList());
+                } else {
+                    List<Integer> targetSuccessGlassSlot = v.stream().map(BigStorageCageTask::getTargetSlot).collect(Collectors.toList());
+                    List<Integer> startoutSuccessGlassSlot = v.stream().map(BigStorageCageTask::getStartSlot).collect(Collectors.toList());
+                    outSuccessGlassSlot.addAll(targetSuccessGlassSlot);
+                    outSuccessGlassSlot.addAll(startoutSuccessGlassSlot);
+                }
+                List<UpdateHollowBigStorageCageDTO> storageCageDTOList = v.stream().map(e -> {
+                    UpdateHollowBigStorageCageDTO storageCageDTO = new UpdateHollowBigStorageCageDTO();
+                    storageCageDTO.setGlassId(e.getGlassId());
+                    if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
+                        storageCageDTO.setTargetSlot(e.getStartSlot());
+                    } else {
+                        storageCageDTO.setTargetSlot(e.getTargetSlot());
+                    }
+                    return storageCageDTO;
+                }).collect(Collectors.toList());
+                if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
+                    hollowBigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_OUT);
+                } else {
+                    hollowBigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
+                    //鎸夌収鏍煎瓙淇℃伅鏇存柊瀵瑰簲鐨勮澶噄d
+                    List<Integer> slotList = storageCageDTOList.stream().map(UpdateHollowBigStorageCageDTO::getTargetSlot).distinct().collect(Collectors.toList());
+                    hollowBigStorageCageDetailsService.updateDeviceIdBySlot(slotList);
+                }
+                log.info("4銆佸ぇ鐞嗙墖绗艰繘鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", v);
+                updateSlotRemainBySlots(outSuccessGlassSlot);
+            } else if (e1 == 3) {
+                //鐮存崯澶勭悊
+                dealDamageOutTask(v);
+            } else {
+                //娓呯┖鐞嗙墖绗肩┖鏁版嵁
+                noDealOutTask(v);
+            }
+        });
+
+        for (BigStorageCageTask item : outTaskList) {
+            //鏇存柊鍘嗗彶浠诲姟琛ㄤ腑鐨勪换鍔$姸鎬�
+            hollowBigStorageCageHistoryTaskService.update(new LambdaUpdateWrapper<HollowBigStorageCageHistoryTask>()
+                    .set(HollowBigStorageCageHistoryTask::getTaskState, item.getTaskState())
+                    .eq(HollowBigStorageCageHistoryTask::getTaskType, taskType)
+                    .eq(HollowBigStorageCageHistoryTask::getGlassId, item.getGlassId()));
+            //鏇存柊涓┖灏忕墖琛�
+            Integer taskState = item.getTaskState();
+            if (taskState == 2) {
+                hollowGlassQueueInfoService.update(new LambdaUpdateWrapper<HollowGlassQueueInfo>()
+                        .set(HollowGlassQueueInfo::getState, Const.TEMPERING_OUT).eq(HollowGlassQueueInfo::getGlassId, item.getGlassId()));
+            } else if (taskState == 3) {
+//                temperingGlassInfoService.remove(new LambdaQueryWrapper<TemperingGlassInfo>().eq(TemperingGlassInfo::getGlassId, item.getGlassId()));
+                hollowGlassQueueInfoService.update(new LambdaUpdateWrapper<HollowGlassQueueInfo>()
+                        .set(HollowGlassQueueInfo::getState, Const.TEMPERING_DAMAGE).eq(HollowGlassQueueInfo::getGlassId, item.getGlassId()));
+
+            } else {
+//                绌烘墽琛�
+            }
+        }
+        try {
+            //鏇存柊鏁伴噺
+            //鎸夌収鐜荤拑id鑾峰彇闇�瑕佸嚭鐗囧鍒楄〃涓殑鏁版嵁
+            if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
+                HollowGlassQueueInfo hollowGlassQueueInfo = hollowGlassQueueInfoService.getOne(new LambdaQueryWrapper<HollowGlassQueueInfo>()
+                        .eq(HollowGlassQueueInfo::getGlassId, outTaskList.get(0).getGlassId())
+                        .orderByDesc(HollowGlassQueueInfo::getUpdateTime).last("limit 1"));
+                List<HollowGlassQueueInfo> list = hollowGlassQueueInfoService.list(new LambdaQueryWrapper<HollowGlassQueueInfo>()
+                                .eq(HollowGlassQueueInfo::getFlowCardId, hollowGlassQueueInfo.getFlowCardId())
+                                .eq(HollowGlassQueueInfo::getCell, hollowGlassQueueInfo.getCell())
+//                        .eq(HollowGlassQueueInfo::getIsPair, 1)
+                                .eq(HollowGlassQueueInfo::getState, Const.TEMPERING_NEW)
+                );
+                if (CollectionUtil.isEmpty(list)) {
+//                浠诲姟鏇存柊涓哄凡瀹屾垚
+                    hollowGlassOutRelationInfoService.update(new UpdateWrapper<HollowGlassOutRelationInfo>()
+                            .eq("flow_card_id", hollowGlassQueueInfo.getFlowCardId())
+                            .eq("cell", hollowGlassQueueInfo.getCell())
+                            .setSql("pair_quantity = total_pair_quantity")
+                            .set("state", Const.HOLLOW_FLOW_CARD_SUCCESS)
+                    );
+                } else {
+//               璁$畻鍓╀綑鐜荤拑瀵规暟锛岀敤浠诲姟鎬婚槦鏁板噺鍓╀綑瀵规暟
+                    int remainCount = list.size() / hollowGlassQueueInfo.getTotalLayer();
+                    hollowGlassOutRelationInfoService.update(new UpdateWrapper<HollowGlassOutRelationInfo>()
+                            .eq("flow_card_id", hollowGlassQueueInfo.getFlowCardId())
+                            .eq("cell", hollowGlassQueueInfo.getCell())
+                            .setSql("pair_quantity = total_pair_quantity -" + remainCount)
+                    );
+                }
+            }
+        } catch (Exception e) {
+            log.info("璁$畻鐜荤拑鏁伴噺杩囩▼涓嚭鐜伴敊璇紝閿欒淇℃伅{}", e.getMessage());
+        }
+
+//       閲嶇疆浠诲姟琛ㄦ暟鎹�
+        bigStorageCageTaskService.updateOutTaskMessage(BIG_STORAGE_CAGE_OUT_TWO_TASK);
+
+        //娓呯┖鍚姩鐘舵��
+        //鍚憃pc鍙戦�佸惎鍔ㄤ俊鍙�
+        miloService.writeToOpcWord(generateReadWriteEntity("DLP2B.DLP2B.MesReply", 0));
+    }
+
+    private void dealDamageInTask(List<BigStorageCageTask> damageTaskList) {
+//        鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
+        log.info("鐮存崯鐨勭幓鐠冧俊鎭湁锛歿}", damageTaskList);
+        //绉婚櫎鐞嗙墖绗艰鎯呰〃浠诲姟鎵ц杩囩▼涓牬鎹熺殑鐜荤拑
+        hollowBigStorageCageDetailsService.remove(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
+                .eq(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_NEW)
+                .in(HollowBigStorageCageDetails::getGlassId, damageTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList())));
+        //灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
+        List<Integer> slotList = new ArrayList<>();
+        for (BigStorageCageTask item : damageTaskList) {
+            Damage damage = new Damage();
+            damage.setGlassId(item.getGlassId());
+            damage.setLine(item.getStartSlot());
+            damage.setWorkingProcedure("纾ㄨ竟");
+            damage.setRemark("杩涚鍓嶅崸杞珛");
+            damage.setStatus(1);
+            damage.setType(item.getTaskState());
+            damageService.insertDamage(damage);
+            slotList.add(item.getTargetSlot());
+        }
+        //鏇存柊鏍煎瓙鍓╀綑瀹藉害
+        updateSlotRemainBySlots(slotList);
+        log.info("杩涚墖浠诲姟-鐮存崯浠诲姟鎵ц瀹屾垚");
+    }
+
+    private void dealDamageOutTask(List<BigStorageCageTask> damageTaskList) {
+//        鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
+        log.info("鐮存崯鐨勭幓鐠冧俊鎭湁锛歿}", damageTaskList);
+        //绉婚櫎鐞嗙墖绗艰鎯呰〃浠诲姟鎵ц杩囩▼涓牬鎹熺殑鐜荤拑
+        hollowBigStorageCageDetailsService.remove(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
+                .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
+                .in(HollowBigStorageCageDetails::getGlassId, damageTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList())));
+        //灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
+        List<Integer> slotList = new ArrayList<>();
+        for (BigStorageCageTask item : damageTaskList) {
+            Damage damage = new Damage();
+            damage.setGlassId(item.getGlassId());
+            damage.setLine(item.getStartSlot());
+            damage.setWorkingProcedure("涓┖鍓�");
+            damage.setRemark("杩涚鍚庡崸杞珛");
+            damage.setStatus(1);
+            damage.setType(item.getTaskState());
+            damageService.insertDamage(damage);
+            slotList.add(item.getTargetSlot());
+            slotList.add(item.getStartSlot());
+        }
+        //鏇存柊鏍煎瓙鍓╀綑瀹藉害
+        updateSlotRemainBySlots(slotList);
+        log.info("鍑虹墖浠诲姟-鐮存崯浠诲姟鎵ц瀹屾垚");
+    }
+
+    private void noDealInTask(List<BigStorageCageTask> noDealTaskList) {
+//        鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
+        log.info("鐮存崯鐨勭幓鐠冧俊鎭湁锛歿}", noDealTaskList);
+        //绉婚櫎鐞嗙墖绗艰鎯呰〃鏈墽琛屼换鍔$殑绌鸿褰曚俊鎭�
+        hollowBigStorageCageDetailsService.remove(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
+                .eq(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_NEW)
+                .in(HollowBigStorageCageDetails::getGlassId, noDealTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList())));
+        //璁板綍鏍煎瓙鍙凤紝鎸夋牸瀛愬彿鏇存柊鍓╀綑灏哄
+        List<Integer> slotList = new ArrayList<>();
+        for (BigStorageCageTask item : noDealTaskList) {
+            slotList.add(item.getTargetSlot());
+            slotList.add(item.getStartSlot());
+        }
+        //鏇存柊鏍煎瓙鍓╀綑瀹藉害
+        updateSlotRemainBySlots(slotList);
+        log.info("杩涚墖浠诲姟-鏃犲姩浣滄墽琛屽畬鎴�");
+    }
+
+    private void noDealOutTask(List<BigStorageCageTask> noDealTaskList) {
+//        鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
+        log.info("鐮存崯鐨勭幓鐠冧俊鎭湁锛歿}", noDealTaskList);
+        if (Const.OUT_TARGET_POSITION_ALL.contains(noDealTaskList.get(0).getTargetSlot())) {
+            //鍑虹墖浠诲姟:灏嗗嚭鐗囦腑鐘舵�佹仮澶嶄负鍦ㄧ鍐�
+            List<String> glassList = noDealTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList());
+            hollowBigStorageCageDetailsService.update(new LambdaUpdateWrapper<HollowBigStorageCageDetails>()
+                    .set(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                    .ne(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+                    .in(HollowBigStorageCageDetails::getGlassId, glassList));
+
+        } else {
+            //璋冨害浠诲姟锛氬皢璋冨害涓姸鎬佹敼涓哄湪绗煎唴锛屾牸瀛愬彿鎭㈠涓鸿皟搴﹀墠鐨勬牸瀛�
+            for (BigStorageCageTask item : noDealTaskList) {
+                hollowBigStorageCageDetailsService.update(new LambdaUpdateWrapper<HollowBigStorageCageDetails>()
+                        .set(HollowBigStorageCageDetails::getSlot, item.getStartSlot())
+                        .set(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                        .ne(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+                        .eq(HollowBigStorageCageDetails::getGlassId, item.getGlassId()));
+            }
+        }
+        //灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
+        List<Integer> slotList = new ArrayList<>();
+        for (BigStorageCageTask item : noDealTaskList) {
+            slotList.add(item.getTargetSlot());
+            slotList.add(item.getStartSlot());
+        }
+        //鏇存柊鏍煎瓙鍓╀綑瀹藉害
+        updateSlotRemainBySlots(slotList);
+        log.info("鍑虹墖浠诲姟-鏃犲姩浣滄墽琛屽畬鎴�");
+    }
+
+
+    private <T extends HollowBigStorageCageBaseInfo> Boolean hollowOutGlassByIsPair(List<T> list,
+                                                                                    int targetSlot, int isPair, int totalLayer, int isForce) throws Exception {
+        List<T> resultList = new ArrayList<>();
+        List<T> tempList = new ArrayList<>();
+        int taskType = Const.BIG_STORAGE_AFTER_OUT;
+        int taskState = Const.GLASS_STATE_OUT_ING;
+        for (T t : list) {
+            if (isPair == (t.getIsPair() == null ? 0 : t.getIsPair())) {
+                tempList.add(t);
+            } else {
+                break;
+            }
+        }
+
+        Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_SLOT_WIDTH);
+        if (isPair == 0 && isForce != 1) {
+            taskType = Const.BIG_STORAGE_AFTER_DISPATCH;
+            taskState = Const.GLASS_STATE_SCHEDULE_ING;
+            //鐩墠璋冨害浠诲姟totalLayer涓�0  鍑虹墖璋冨害浠诲姟鏈夊眰鍙凤紝鐢ㄤ簬鍖哄垎璋冨害鏂瑰紡
+            // 鍥犱负鍑虹墖瀛樺湪璋冨害锛屽鏋滀负璋冨害锛屾彁鍓嶅崰鐢ㄦ牸瀛愶紝鏇存柊鏍煎瓙鍓╀綑灏哄锛岄伩鍏嶈杩涚墖鐜荤拑鍗犵敤
+            if (totalLayer != 0) {
+                resultList.add(list.get(0));
+                HollowBigStorageCage storageCage = hollowBigStorageCageService.getOne(new LambdaQueryWrapper<HollowBigStorageCage>()
+                        .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON)
+                        .le(HollowBigStorageCage::getMinThickness, list.get(0).getThickness())
+                        .ge(HollowBigStorageCage::getMaxThickness, list.get(0).getThickness())
+                        .eq(HollowBigStorageCage::getRemainWidth, slotWidth)
+                        .orderByAsc(HollowBigStorageCage::getMaxThickness).last("limit 1"));
+
+                if (null == storageCage) {
+                    //鍚憄lc鍙戦�佹姤璀�:鐩撮�氱墖鍙板瓨鍦ㄧ幓鐠冿紝鏃犳硶缁х画鐩撮��
+                    miloService.writeToOpcWord(generateReadWriteEntity("DLP1A.DLP1A.alarmSignal", 16));
+                    Assert.isFalse(storageCage == null, "浠诲姟璋冨害娌℃湁澶氫綑鏍煎瓙锛岀粨鏉熻皟搴︿换鍔�");
+                }
+
+                targetSlot = storageCage.getSlot();
+                hollowBigStorageCageService.update(new LambdaUpdateWrapper<HollowBigStorageCage>()
+                        .set(HollowBigStorageCage::getRemainWidth, 0).eq(HollowBigStorageCage::getSlot, targetSlot));
+            } else {
+                resultList = tempList;
+            }
+            totalLayer = 0;
+        } else {
+            resultList = tempList;
+        }
+        return computeOutGlassInfo(resultList, BIG_STORAGE_CAGE_OUT_TWO_TASK, targetSlot, taskState, taskType, totalLayer, isForce);
+    }
+
+    /**
+     * 鍑虹墖涓�娆′粎鐢熸垚涓�杞︾幓鐠�
+     *
+     * @param <T>
+     * @param list
+     * @param totalLayer
+     * @return
+     */
+    private <T extends HollowBigStorageCageBaseInfo> Boolean computeOutGlassInfo(List<T> list, String tableName,
+                                                                                 int targetSlot, int state, int taskType, int totalLayer, int isForce) {
+        //浠诲姟鏁版嵁:鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲�,鐜荤拑闂撮殧
+        List<T> templist = new ArrayList<>();
+        //鎵撹溅鍓╀綑灏哄
+        Integer remainWidth = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_SLOT_WIDTH);
+        Integer outCarMaxSize = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_OUT_CAR_SIZE);
+        Integer glassGap = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_GLASS_GAP);
+        for (T e : list) {
+            if (templist.size() >= outCarMaxSize || Math.max((int) e.getWidth(), (int) e.getHeight()) > remainWidth) {
+                break;
+            }
+            //璁$畻褰撳墠鍑虹墖杞﹀墿灏哄
+            remainWidth = remainWidth - Math.max((int) e.getWidth(), (int) e.getHeight()) - glassGap;
+            templist.add(e);
+        }
+        Assert.isFalse(CollectionUtil.isEmpty(templist), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟");
+        log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", templist.size());
+        List<T> baseInfoList = templist;
+        if (1 != isForce) {
+            if (taskType == Const.BIG_STORAGE_AFTER_OUT) {
+                //鏍¢獙闃叉灏忎簬绛変簬鎬诲眰鏁扮幓鐠冪墖搴忎笉鍖归厤鐨勯棶棰橈紝璇ラ棶棰樺鍑虹幇鍦ㄥぇ鐗囩幓鐠冿紝3灞�
+                if (templist.size() <= totalLayer) {
+                    int tempSequence = templist.get(0).getHollowSequence();
+                    List<T> resultList = new ArrayList<>();
+                    for (int i = 0; i < templist.size(); i++) {
+                        if (tempSequence == list.get(i).getHollowSequence()) {
+                            resultList.add(templist.get(i));
+                        } else {
+                            break;
+                        }
+                    }
+                    baseInfoList = resultList;
+                } else {
+                    //澶т簬鎬诲眰鏁板厛鍙杢otalLyaer鍊嶆暟鏁伴噺鐨勭幓鐠冿紝淇濊瘉澶ц溅涓婄殑鐜荤拑鎴愬浼�
+                    int remainCount = templist.size() % totalLayer;
+                    if (targetSlot == 930) {
+                        baseInfoList = templist.subList(0, totalLayer);
+                    } else {
+                        baseInfoList = templist.subList(0, templist.size() - remainCount);
+                    }
+                }
+            }
+        }
+        List<String> glassIds = baseInfoList.stream().map(T::getGlassId).collect(Collectors.toList());
+        int glassCount = baseInfoList.size();
+        List<BigStorageCageTask> bigStorageCageTaskList = new ArrayList<>();
+        //鐢熸垚鍑虹墖浠诲姟鏉℃暟涓嶈冻6琛ュ叏
+        for (T t : baseInfoList) {
+            bigStorageCageTaskList.add(new BigStorageCageTask(t.getGlassId(), t.getSlot(), targetSlot, 0));
+        }
+        while (bigStorageCageTaskList.size() < 6) {
+            bigStorageCageTaskList.add(new BigStorageCageTask("", 0, 0, 0));
+        }
+        //娓呯┖浠诲姟琛ㄦ暟鎹�
+        bigStorageCageTaskService.removeAll(tableName);
+        bigStorageCageTaskService.saveTaskMessage(tableName, bigStorageCageTaskList);
+        List<HollowBigStorageCageHistoryTask> historyList = bigStorageCageTaskList.stream().filter(e -> StringUtils.isNotBlank(e.getGlassId())).map(e -> {
+            HollowBigStorageCageHistoryTask history = new HollowBigStorageCageHistoryTask();
+            BeanUtils.copyProperties(e, history);
+            history.setGlassCount(glassCount);
+            history.setTaskType(taskType);
+            return history;
+        }).collect(Collectors.toList());
+        hollowBigStorageCageHistoryTaskService.saveBatch(historyList);
+        log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄嚭鐗囦腑", glassIds);
+        hollowBigStorageCageDetailsService.update(new LambdaUpdateWrapper<HollowBigStorageCageDetails>()
+                .set(HollowBigStorageCageDetails::getState, state)
+                .set(Const.BIG_STORAGE_AFTER_DISPATCH.equals(taskType), HollowBigStorageCageDetails::getSlot, targetSlot)
+                .ne(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+                .in(HollowBigStorageCageDetails::getGlassId, glassIds));
+        try {
+            miloService.writeToOpcWord(generateReadWriteEntity("DLP2B.DLP2B.MesReply", 1));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return Boolean.TRUE;
+    }
+
+    public void updateSlotRemainBySlots(List<Integer> slotList) {
+        //鑾峰彇鏍煎瓙鍐呮墍鏈夌殑鐜荤拑淇℃伅
+        List<HollowBigStorageCageDetails> inSlotGlassList = hollowBigStorageCageDetailsService.list(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
+                .in(HollowBigStorageCageDetails::getSlot, slotList).in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
+        Map<Integer, Double> slotRemainMap = new HashMap<>();
+        //鏄惁瀛樺湪鏈夋牸瀛愰潪绌虹殑鐜荤拑
+        Integer glassGap = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_GLASS_GAP);
+        Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_SLOT_WIDTH);
+        if (CollectionUtils.isNotEmpty(inSlotGlassList)) {
+            //瀛樺湪  灏嗘牸瀛愬唴鐨勭幓鐠冨垎鍒繘琛屾洿鏂�
+//            List<HollowBigStorageCage> hollowBigStorageCageList = hollowBigStorageCageService.list(new LambdaQueryWrapper<HollowBigStorageCage>()
+//                    .lt(HollowBigStorageCage::getRemainWidth, 0).in(HollowBigStorageCage::getSlot, slotList));
+//            List<Integer> resultSlotList = hollowBigStorageCageList.stream().map(HollowBigStorageCage::getSlot).collect(Collectors.toList());
+            slotRemainMap = inSlotGlassList.stream()
+                    .collect(Collectors.groupingBy(HollowBigStorageCageDetails::getSlot, Collectors.summingDouble(item -> Math.max(item.getWidth(), item.getHeight()) + glassGap)));
+            slotRemainMap.forEach((e, v) -> {
+                double remainWidth = slotWidth - v >= 0 ? slotWidth - v : 0;
+                hollowBigStorageCageService.update(new LambdaUpdateWrapper<HollowBigStorageCage>().set(HollowBigStorageCage::getRemainWidth, remainWidth)
+                        .eq(HollowBigStorageCage::getSlot, e));
+            });
+        }
+        //杩囨护涓嶅瓨鍦ㄧ幓鐠冪殑鏍煎瓙 灏嗗搴﹂噸缃负鍘熷瀹藉害6200
+        Set<Integer> remainSlotList = slotRemainMap.keySet();
+        slotList.removeAll(remainSlotList);
+        if (CollectionUtils.isNotEmpty(slotList)) {
+            hollowBigStorageCageService.update(new LambdaUpdateWrapper<HollowBigStorageCage>().set(HollowBigStorageCage::getRemainWidth, slotWidth)
+                    .in(HollowBigStorageCage::getSlot, slotList));
+        }
+    }
+
+    public ReadWriteEntity generateReadWriteEntity(String identifier, Object value) {
+        return ReadWriteEntity.builder()
+                .identifier(identifier)
+                //Kep涓槸Long绫诲瀷锛屽嵆锛欼nt32锛孞ava涓殑int绫诲瀷
+                .value(value)
+                .build();
+    }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java
new file mode 100644
index 0000000..c131268
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java
@@ -0,0 +1,249 @@
+package com.mes.job;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.kangaroohy.milo.model.ReadWriteEntity;
+import com.kangaroohy.milo.service.MiloService;
+import com.mes.bigstoragecagetask.entity.BigStorageCageTask;
+import com.mes.bigstoragecagetask.entity.BigStorageTaskVO;
+import com.mes.bigstoragecagetask.service.BigStorageCageTaskService;
+import com.mes.common.config.Const;
+import com.mes.hollow.entity.HollowBigStorageCageDetails;
+import com.mes.hollow.entity.HollowGlassOutRelationInfo;
+import com.mes.hollow.entity.dto.FlowCardGlassInfoDTO;
+import com.mes.hollow.entity.vo.HollowBigStorageDetailsQueryVO;
+import com.mes.hollow.service.HollowBigStorageCageDetailsService;
+import com.mes.hollow.service.HollowBigStorageCageService;
+import com.mes.hollow.service.HollowGlassOutRelationInfoService;
+import com.mes.hollow.service.HollowGlassRelationInfoService;
+import com.mes.hollowqueue.entity.HollowGlassQueueInfo;
+import com.mes.hollowqueue.service.HollowGlassQueueInfoService;
+import com.mes.largenscreen.entity.PieChartVO;
+import com.mes.tools.WebSocketServer;
+import com.mes.utils.RedisUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/12/4 9:41
+ * @Description:
+ */
+@Component
+@Slf4j
+public class PushMessageToIndex {
+
+    @Resource
+    HollowGlassQueueInfoService hollowGlassQueueInfoService;
+    @Resource
+    HollowGlassOutRelationInfoService hollowGlassOutRelationInfoService;
+    @Resource
+    HollowBigStorageCageService hollowBigStorageCageService;
+    @Resource
+    HollowBigStorageCageDetailsService hollowBigStorageCageDetailsService;
+    @Resource
+    BigStorageCageTaskService bigStorageCageTaskService;
+    @Resource
+    HollowGlassRelationInfoService hollowGlassRelationInfoService;
+
+    @Autowired(required = false)
+    MiloService miloService;
+
+    @Resource
+    RedisUtil redisUtil;
+
+    @Scheduled(fixedDelay = 5000)
+    public void hollowGlassTaskOne() {
+        hollowGlassTaskChild(930, "CMJ1.CMJ1.isFree", "HollowGlassOne");
+    }
+
+    @Scheduled(fixedDelay = 5000)
+    public void hollowGlassTaskTwo() {
+        hollowGlassTaskChild(931, "ZKQ2.ZKQ2.isFree", "HollowGlassTwo");
+    }
+
+    @Scheduled(fixedDelay = 5000)
+    public void hollowGlassTaskThree() {
+        //todo:鏆傛棤涓夌嚎鐨勭┖闂茬姸鎬佷俊鍙凤紝涓存椂鏍囩绌洪棽鐘舵��
+        hollowGlassTaskChild(932, "ZKQ3.ZKQ3.isFree", "HollowGlassThree");
+    }
+
+    public void hollowGlassTaskChild(int cell, String isFreeTag, String websocketName) {
+        List<HollowGlassOutRelationInfo> taskList = hollowGlassOutRelationInfoService.list(new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
+                .in(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_START).eq(HollowGlassOutRelationInfo::getCell, cell));
+        JSONObject jsonObject = new JSONObject();
+        if (CollectionUtil.isNotEmpty(taskList)) {
+            List<Long> taskIdList = taskList.stream().map(HollowGlassOutRelationInfo::getId).collect(Collectors.toList());
+            List<HollowGlassQueueInfo> list = hollowGlassQueueInfoService.list(new LambdaQueryWrapper<HollowGlassQueueInfo>().in(HollowGlassQueueInfo::getRelationId, taskIdList));
+            jsonObject.append("queueInfo", list);
+        }
+        try {
+            //930绌洪棽淇″彿
+            ReadWriteEntity freeOneRequestEntity = miloService.readFromOpcUa(isFreeTag);
+            jsonObject.append("freeRequest", freeOneRequestEntity.getValue());
+        } catch (Exception e) {
+            log.error("opc瀛樺湪寮傚父", e);
+        }
+
+        List<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get(websocketName);
+        if (CollectionUtil.isNotEmpty(sendwServer)) {
+            for (WebSocketServer socketServer : sendwServer) {
+                if (socketServer != null && socketServer.session.isOpen()) {
+                    socketServer.sendMessage(jsonObject.toString());
+                }
+            }
+        }
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void hollowGlassMessage() {
+        JSONObject jsonObject = new JSONObject();
+        try {
+            //鏌ヨ浣跨敤鏁版嵁婧�1鏌ヨ鏁版嵁
+            queryDataSource1(jsonObject);
+
+            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("hollowGlassMessage");
+            if (sendwServer != null) {
+                for (WebSocketServer webserver : sendwServer) {
+                    if (webserver != null) {
+                        webserver.sendMessage(jsonObject.toString());
+                        List<String> messages = webserver.getMessages();
+                        if (!messages.isEmpty()) {
+                            // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                            webserver.clearMessages();
+                        }
+                    } else {
+                        log.info("Home is closed");
+                    }
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+
+    public void queryDataSource1(JSONObject jsonObject) throws Exception {
+        List<Double> carPostion = new ArrayList<>();
+        carPostion.add(0.25);
+        carPostion.add(0.5);
+        jsonObject.append("carPostion", carPostion);
+        //鐣岄潰灞曠ず绗煎瓙淇℃伅
+        jsonObject.append("bigStorageCageInfos", hollowBigStorageCageDetailsService.queryHollowbigStorageCageDetail());
+
+        try {
+            //杩涚墖浠诲姟鏁版嵁
+            List<BigStorageTaskVO> inTaskList = new ArrayList();
+            ReadWriteEntity fromOpcUa = miloService.readFromOpcUa("DLP2A.DLP2A.FROM1");
+            for (int i = 1; i <= 6; i++) {
+                ReadWriteEntity requestWord = miloService.readFromOpcUa("DLP2A.DLP2A.DI" + i);
+                ReadWriteEntity targetSlotWord = miloService.readFromOpcUa("DLP2A.DLP2A.TO" + i);
+                ReadWriteEntity stateWord = miloService.readFromOpcUa("DLP2A.DLP2A.STATE" + i);
+                if (null != requestWord.getValue()) {
+                    BigStorageTaskVO task = new BigStorageTaskVO();
+                    task.setGlassId(requestWord.getValue() + "");
+                    int isExistCount = hollowBigStorageCageDetailsService.count(new LambdaQueryWrapper<HollowBigStorageCageDetails>().in(HollowBigStorageCageDetails::getGlassId, task.getGlassId())
+                            .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
+                    if (isExistCount > 0) {
+                        task.setIsSame(1);
+                    } else {
+                        task.setIsSame(0);
+                    }
+                    task.setStartSlot(Integer.parseInt(fromOpcUa.getValue() + ""));
+                    task.setTargetSlot(Integer.parseInt(targetSlotWord.getValue() + ""));
+                    task.setTaskState(Integer.parseInt(stateWord.getValue() + ""));
+                    inTaskList.add(task);
+                    continue;
+                }
+            }
+            jsonObject.append("bigStorageCageDetailsFeedTask", inTaskList);
+        } catch (Exception e) {
+            //todo:涓嶅仛浠诲姟澶勭悊
+        }
+        try {
+            //杩涚墖鑱旀満
+            ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP2A.DLP2A.mesControl");
+            jsonObject.append("inkageEntity", inkageEntity.getValue());
+            //杩涚墖璇锋眰
+            ReadWriteEntity requestEntity = miloService.readFromOpcUa("DLP2A.DLP2A.RequestMes");
+            jsonObject.append("requestEntity", requestEntity.getValue());
+            //鍚姩鍛戒护
+            ReadWriteEntity mesReplyEntity = miloService.readFromOpcUa("DLP2A.DLP2A.MesReply");
+            jsonObject.append("mesReplyEntity", mesReplyEntity.getValue());
+            //鍑虹墖鑱旀満
+            ReadWriteEntity outInkageEntity = miloService.readFromOpcUa("DLP2B.DLP2B.mesControl");
+            jsonObject.append("outInkageEntity", outInkageEntity.getValue());
+            //鍑虹墖璇锋眰
+            ReadWriteEntity outRequestEntity = miloService.readFromOpcUa("DLP2B.DLP2B.RequestMes");
+            jsonObject.append("outRequestEntity", outRequestEntity.getValue());
+            //930绌洪棽淇″彿
+            ReadWriteEntity freeOneRequestEntity = miloService.readFromOpcUa("CMJ1.CMJ1.isFree");
+            jsonObject.append("freeOneRequestEntity", freeOneRequestEntity.getValue());
+            //931绌洪棽淇″彿
+            ReadWriteEntity freeTwoRequestEntity = miloService.readFromOpcUa("ZKQ2.ZKQ2.isFree");
+            jsonObject.append("freeTwoRequestEntity", freeTwoRequestEntity.getValue());
+            //932绌洪棽淇″彿
+            ReadWriteEntity freeThreeRequestEntity = miloService.readFromOpcUa("ZKQ3.ZKQ3.isFree");
+            jsonObject.append("freeThreeRequestEntity", freeThreeRequestEntity.getValue());
+        } catch (Exception e) {
+            //todo:涓嶅仛浠诲姟澶勭悊
+        }
+
+        //鍑虹墖浠诲姟鏁版嵁
+        List<BigStorageCageTask> outTaskList = bigStorageCageTaskService.queryTaskMessage("big_storage_cage_out_two_task");
+        jsonObject.append("bigStorageCageDetailsOutTask", outTaskList);
+
+        //璋冨害寮�鍏�
+        boolean dispatchHollowSwitch = false;
+        if (redisUtil.getCacheObject("dispatchHollowSwitch") == null) {
+            redisUtil.setCacheObject("dispatchHollowSwitch", false);
+        } else {
+            dispatchHollowSwitch = redisUtil.getCacheObject("dispatchHollowSwitch");
+        }
+        jsonObject.append("dispatchHollowSwitch", dispatchHollowSwitch);
+
+        //鐞嗙墖绗间娇鐢ㄦ儏鍐�
+        List<Map<String, Object>> bigStorageCageUsage = hollowBigStorageCageService.selectBigStorageCageUsage();
+        jsonObject.append("bigStorageCageUsage", bigStorageCageUsage);
+
+        //鐞嗙墖绗间娇鐢ㄦ儏鍐垫眹鎬�
+        HollowBigStorageDetailsQueryVO hollowBigStorageDetailsQueryVO = new HollowBigStorageDetailsQueryVO();
+        List<FlowCardGlassInfoDTO> bigStorageCageUsageSummary = hollowGlassRelationInfoService.queryHollowAllFlowCardSummary(hollowBigStorageDetailsQueryVO);
+        jsonObject.append("bigStorageCageUsageSummary", bigStorageCageUsageSummary);
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void largenScreen() {
+        JSONObject jsonObject = new JSONObject();
+        //鐞嗙墖绗间娇鐢ㄦ儏鍐�
+        List<Map<String, Object>> hollowBigStorageCageUsage = hollowBigStorageCageService.selectBigStorageCageUsage();
+        jsonObject.append("hollowBigStorageCageUsage", hollowBigStorageCageUsage);
+        //閽㈠寲楗煎浘鏁版嵁
+        List<PieChartVO> pieChartVOS = hollowGlassOutRelationInfoService.queryPieChart();
+        jsonObject.append("pieChartVOS", pieChartVOS);
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("largenScreen");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                    List<String> messages = webserver.getMessages();
+                    if (!messages.isEmpty()) {
+                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                        webserver.clearMessages();
+                    }
+                } else {
+                    log.info("largenScreen is closed");
+                }
+            }
+        }
+    }
+}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/utils/Blank.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/utils/Blank.java
new file mode 100644
index 0000000..a0711fa
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/utils/Blank.java
@@ -0,0 +1,29 @@
+package com.mes.utils;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/12/26 11:08
+ * @Description:
+ */
+public class Blank {
+
+    public String computeBlank(Object original, int length) {
+        String tempStr = "";
+        if (null != original) {
+            tempStr = original + "";
+        }
+        // 鏍煎紡鍖栧瓧绗︿覆
+        return String.format("%1$" + length + "s", tempStr).replace(' ', ' ');
+    }
+
+    public String computeZero(Object original, int length) {
+        String tempStr = "";
+        if (null != original) {
+            tempStr = original + "";
+        }
+        // 鏍煎紡鍖栧瓧绗︿覆
+        return String.format("%1$" + length + "s", tempStr).replace(' ', '0');
+    }
+}
+
+
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application-cz.yml b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application-cz.yml
new file mode 100644
index 0000000..86a6428
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application-cz.yml
@@ -0,0 +1,30 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.1.199:3306/hangzhoumes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://192.168.10.2:1433;databasename=hangzhoumes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+        pp:
+          url: jdbc:mysql://192.168.1.199:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application-dev.yml b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..c0bcd39
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application-dev.yml
@@ -0,0 +1,40 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+        pp:
+          url: jdbc:mysql://127.0.0.1:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  redis:
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://10.153.19.150:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..b54038f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application-prod.yml
@@ -0,0 +1,40 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://10.153.19.150:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://10.153.19.150:1433;databasename=north_glass_mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+        pp:
+          url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 10.153.19.150:8849
+  redis:
+    database: 0
+    host: 10.153.19.150
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://10.153.19.150:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application-yw.yml b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application-yw.yml
new file mode 100644
index 0000000..89e07f7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application-yw.yml
@@ -0,0 +1,40 @@
+spring:
+  datasource:
+    dynamic:
+      primary: northGlassMes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+      datasource:
+        northGlassMes:
+          url: jdbc:mysql://192.168.2.100:3306/north_glass_mes?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        pp:
+          url: jdbc:mysql://192.168.2.100:3306/pp?serverTimezone=GMT%2b8
+          username: root
+          password: beibo.123/
+          driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_northGlassMes:
+          url: jdbc:sqlserver://192.168.2.100:1433;databasename=mes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 192.168.2.100:8848
+  redis:
+    database: 0
+    host: 192.168.2.100
+    port: 6379
+    password: 123456
+kangaroohy:
+  milo:
+    enabled: true
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://192.168.2.100:49320
+        security-policy: basic256sha256
+        username: admin
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application.yml
new file mode 100644
index 0000000..b22d666
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/application.yml
@@ -0,0 +1,33 @@
+server:
+  port: 10014
+
+spring:
+  profiles:
+    active: dev
+  application:
+    name: hollowGlass
+  liquibase:
+    enabled: false
+#  task:
+#    scheduling:
+#      pool:
+#        size: 10
+#      thread-name-prefix: task-hollowGlass
+mybatis-plus:
+  mapper-locations: classpath*:mapper/*.xml
+#  configuration:
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+mes:
+  sequence:
+    order: true
+  minCount: 30
+  carWidth: 6200   #澶ц溅瀹藉害
+  slotWidth: 6200   #澶ц溅瀹藉害
+  inCarMaxSize: 5    #杩涚墖澶ц溅鏈�澶у瓨鏀剧幓鐠冩暟閲�
+  outCarMaxSize: 6     #鍑虹墖澶ц溅鏈�澶у瓨鏀剧幓鐠冩暟閲�
+  glassGap: 250  #鐜荤拑闂磋窛
+  xMaxSize: 2800
+  temperingOutTargetPosition: 930
+  artificialOutTargetPosition: 931
+  slotMaxHeight: 2500
+  slotMaxthickness: 12
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/logback-spring.xml b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..cd91511
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/logback-spring.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="10 seconds">
+    <!-- logger涓婁笅鏂囧悕绉帮紙鏍规嵁涓氬姟淇敼锛� -->
+    <contextName>cacheVerticalGlass</contextName>
+
+    <!-- 瀹氫箟浜嗕竴涓悕涓簊erverName鐨勫睘鎬э紝瀹冪殑鍊兼潵鑷簬logging.file.name锛屽鏋滄病鏈夋壘鍒拌灞炴�ч粯璁や负MyServerName锛堟牴鎹笟鍔′慨鏀癸級 -->
+    <springProperty name="serverName" source="logging.file.name" defaultValue="hollowGlass"/>
+    <springProperty name="logging.path" source="logging.file.path" defaultValue="././logs/"/>
+
+    <!-- 褰╄壊鏃ュ織渚濊禆鐨勬覆鏌撶被 -->
+    <!-- 瀹氫箟浜嗕竴涓悕涓篶lr鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.ColorConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗘棩蹇楄緭鍑轰腑鐨勬枃鏈潃鑹诧紝浠ヤ究鏇村鏄撳湴鍖哄垎涓嶅悓鐨勬棩蹇楃骇鍒垨鍏朵粬淇℃伅 -->
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
+    <!-- WhitespaceThrowableProxyConverter鍜孍xtendedWhitespaceThrowableProxyConverter閮芥槸鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず鐨勭被銆傚畠浠箣闂寸殑鍖哄埆鍦ㄤ簬锛孍xtendedWhitespaceThrowableProxyConverter鍦ㄨ緭鍑哄紓甯镐俊鎭椂浼氬寘鍚洿澶氱殑璇︾粏淇℃伅锛屼緥濡傚紓甯哥殑绫诲悕銆佹柟娉曞悕鍜岃鍙风瓑 -->
+    <!-- 瀹氫箟浜嗕竴涓悕涓簑ex鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <conversionRule conversionWord="wex"
+                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
+    <!-- 瀹氫箟浜嗕竴涓悕涓簑Ex鐨勮浆鎹㈣鍒欙紝瀹冧娇鐢╫rg.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter绫昏繘琛岃浆鎹紝杩欎釜鍏冪礌閫氬父鐢ㄤ簬灏嗗紓甯镐俊鎭浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <conversionRule conversionWord="wEx"
+                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
+
+    <!-- 褰╄壊鏃ュ織鏍煎紡 -->
+    <!-- value鍊兼槸鏃ュ織杈撳嚭妯℃澘锛� :-鏄睘鎬у悕鍜屽叾榛樿鍊间箣闂寸殑鍒嗛殧绗︼紝浣滅敤涓�:鐩稿悓 -->
+    <!-- 瀹氫箟鏃ュ織杈撳嚭鏍煎紡鐨勮浆鎹㈣鍒欙紝%d{yyyy-MM-dd HH:mm:ss.SSS}琛ㄧず鏃ユ湡鍜屾椂闂达紝%clr琛ㄧず灏嗚緭鍑烘枃鏈潃鑹诧紝{faint}琛ㄧず浣跨敤娣¤壊 -->
+    <!-- %5p琛ㄧず鏃ュ織绾у埆杈撳嚭鍙冲榻愶紝宸﹁竟浠ョ┖鏍煎~鍏� -->
+    <!-- ${PID:- }琛ㄧず杩涚▼ID锛�%clr琛ㄧず灏嗚緭鍑烘枃鏈潃鑹诧紝{magenta}琛ㄧず浣跨敤娲嬬孩鑹� -->
+    <!-- -琛ㄧず涓�涓垎闅旂 -->
+    <!-- %t锛氭樉绀轰骇鐢熻鏃ュ織鐨勭嚎绋嬪悕锛�%15锛氳嫢瀛楃闀垮害灏忎簬15锛屽垯宸﹁竟鐢ㄧ┖鏍煎~鍏咃紱%.15锛氳嫢瀛楃闀垮害瓒呰繃15锛屾埅鍘诲浣欏瓧绗� -->
+    <!-- %-40锛氳嫢瀛楃闀垮害灏忎簬40锛屽垯鍙宠竟鐢ㄧ┖鏍煎~鍏咃紱%.40锛氳嫢瀛楃闀垮害瓒呰繃40锛屾埅鍘诲浣欏瓧绗︼紱logger{39}瀵瑰簲鐨勬槸鈥渓ogging.WARNING鈥濈骇鍒�傚叿浣撴潵璇达紝Python鐨刲ogging妯″潡瀹氫箟浜嗕互涓嬪嚑涓骇鍒紙浠庝綆鍒伴珮锛夛細NOTSET銆丏EBUG銆両NFO銆乄ARNING銆丒RROR銆丆RITICAL銆傚洜姝わ紝logger{39}琛ㄧず鐨勬槸WARNING绾у埆锛屽嵆鏃ュ織璁板綍鍣ㄤ細璁板綍鎵�鏈塛ARNING绾у埆鍙婁互涓婄殑鏃ュ織淇℃伅 -->
+    <!-- %m琛ㄧず鏃ュ織娑堟伅锛�%n琛ㄧず鎹㈣绗︼紱${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}琛ㄧず寮傚父淇℃伅銆傚鏋滄棩蹇楄緭鍑轰腑鍖呭惈寮傚父淇℃伅锛岃繖涓鍒欏皢浼氬皢鍏惰浆鎹负瀛楃涓诧紝骞跺皢鍏朵腑鐨勬崲琛岀鏇挎崲涓虹┖鏍硷紝浠ヤ究鏇村鏄撳湴鍦ㄦ棩蹇楄緭鍑轰腑鏄剧ず -->
+    <property name="CONSOLE_LOG_PATTERN"
+              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+
+    <!--1. 杈撳嚭鍒版帶鍒跺彴-->
+    <!-- 瀹氫箟鎺у埗鍙版棩蹇楄緭鍑虹殑appender锛宑lass="ch.qos.logback.core.ConsoleAppender"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凜onsoleAppender绫绘潵杈撳嚭鏃ュ織鍒版帶鍒跺彴 -->
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <!--姝ゆ棩蹇梐ppender鏄负寮�鍙戜娇鐢紝鍙厤缃渶搴曠骇鍒紝鎺у埗鍙拌緭鍑虹殑鏃ュ織绾у埆鏄ぇ浜庢垨绛変簬姝ょ骇鍒殑鏃ュ織淇℃伅-->
+        <!-- 瀹氫箟鏃ュ織杈撳嚭绾у埆鐨勮繃婊ゅ櫒锛宑lass="ch.qos.logback.classic.filter.ThresholdFilter"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凾hresholdFilter绫绘潵杩囨护鏃ュ織杈撳嚭锛�<level>debug</level>琛ㄧず鍙緭鍑篸ebug绾у埆鍙婁互涓婄殑鏃ュ織 -->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>debug</level>
+        </filter>
+        <encoder>
+            <!-- ${CONSOLE_LOG_PATTERN}琛ㄧず鎺у埗鍙版棩蹇楄緭鍑烘牸寮忥紝UTF-8琛ㄧず缂栫爜鏍煎紡 -->
+            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
+            <!-- 璁剧疆瀛楃闆� -->
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+    <!--2. 杈撳嚭鍒版枃妗�-->
+    <!-- 2.1 level涓� DEBUG 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <!-- 瀹氫箟鏂囦欢鏃ュ織杈撳嚭鐨刟ppender锛宑lass="ch.qos.logback.core.rolling.RollingFileAppender"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凴ollingFileAppender绫绘潵杈撳嚭鏃ュ織鍒版枃浠� -->
+    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_debug.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <!-- 瀹氫箟鏃ュ織鏂囦欢婊氬姩绛栫暐鐨勬爣绛撅紝class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凾imeBasedRollingPolicy绫绘潵瀹氫箟鏃ュ織鏂囦欢鐨勬粴鍔ㄧ瓥鐣� -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 鏃ュ織褰掓。 -->
+            <!-- 瀹氫箟鏃ュ織鏂囦欢鍚嶇殑妯″紡銆傚湪杩欎釜妯″紡涓紝${logging.path}琛ㄧず鏃ュ織鏂囦欢鐨勮矾寰勶紝%d{yyyy-MM-dd}琛ㄧず鏃ユ湡鏍煎紡锛�%i琛ㄧず鏂囦欢绱㈠紩 -->
+            <fileNamePattern>${logging.path}/${serverName}/web-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <!-- 瀹氫箟鏃ュ織鏂囦欢婊氬姩绛栫暐鐨勬爣绛撅紝class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凷izeAndTimeBasedFNATP绫绘潵瀹氫箟鏃ュ織鏂囦欢鐨勬粴鍔ㄧ瓥鐣ワ紝<maxFileSize>100MB</maxFileSize>琛ㄧず鏃ュ織鏂囦欢鐨勬渶澶уぇ灏忎负100MB銆傝繖涓粴鍔ㄧ瓥鐣ラ�氬父鐢ㄤ簬鎸夌収鏃堕棿鍜屾枃浠跺ぇ灏忔粴鍔ㄦ棩蹇楁枃浠讹紝浠ヤ究鏇村ソ鍦扮鐞嗘棩蹇楁枃浠剁殑澶у皬鍜屾暟閲� -->
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍debug绾у埆鐨� -->
+        <!-- 瀹氫箟鏃ュ織杈撳嚭绾у埆鐨勮繃婊ゅ櫒銆傚湪杩欎釜杩囨护鍣ㄤ腑锛宑lass="ch.qos.logback.classic.filter.LevelFilter"琛ㄧず浣跨敤Logback妗嗘灦鎻愪緵鐨凩evelFilter绫绘潵杩囨护鏃ュ織杈撳嚭锛�<level>debug</level>琛ㄧず鍙緭鍑篸ebug绾у埆鍙婁互涓婄殑鏃ュ織 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>debug</level>
+            <!-- <onMatch>ACCEPT</onMatch>琛ㄧず濡傛灉鏃ュ織浜嬩欢涓庤繃婊ゅ櫒鍖归厤锛屽垯鎺ュ彈璇ヤ簨浠讹紝<onMismatch>DENY</onMismatch>琛ㄧず濡傛灉鏃ュ織浜嬩欢涓庤繃婊ゅ櫒涓嶅尮閰嶏紝鍒欐嫆缁濊浜嬩欢 -->
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.2 level涓� INFO 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_info.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 澶╁ぉ鏃ュ織褰掓。璺緞浠ュ強鏍煎紡 -->
+            <fileNamePattern>${logging.path}/${serverName}/web-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍info绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>info</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.3 level涓� WARN 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_warn.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 姝ゅ璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logging.path}/${serverName}/web-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍warn绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>warn</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!-- 2.4 level涓� ERROR 鏃ュ織锛屾椂闂存粴鍔ㄨ緭鍑�  -->
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃妗g殑璺緞鍙婃枃妗e悕 -->
+        <file>${logging.path}/${serverName}/web_error.log</file>
+        <!--鏃ュ織鏂囨。杈撳嚭鏍煎紡-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 姝ゅ璁剧疆瀛楃闆� -->
+        </encoder>
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logging.path}/${serverName}/web-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--鏃ュ織鏂囨。淇濈暀澶╂暟-->
+            <maxHistory>7</maxHistory>
+        </rollingPolicy>
+        <!-- 姝ゆ棩蹇楁枃妗e彧璁板綍ERROR绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!--     4.1 寮�鍙戠幆澧�:鎵撳嵃鎺у埗鍙�-->
+    <!-- 鐢ㄤ簬鍦⊿pring Boot搴旂敤绋嬪簭涓厤缃棩蹇楄褰曠殑鏍囩銆傚湪杩欎釜鏍囩涓紝name="dev"琛ㄧず杩欎釜閰嶇疆鏂囦欢鍙湪dev鐜涓敓鏁堬紝<logger name="com.myClass.controller" level="debug"/>琛ㄧず涓篶om.myClass.controller锛堟牴鎹笟鍔′慨鏀癸級杩欎釜鍖呬笅鐨勭被閰嶇疆鏃ュ織杈撳嚭绾у埆涓篸ebug -->
+    <!--    <springProfile name="dev">-->
+    <!--        <logger name="com.myClass.controller" level="debug"/>-->
+    <!--    </springProfile>-->
+    <!-- 鐢ㄤ簬閰嶇疆鏃ュ織杈撳嚭鐨勬爣绛俱�傚湪杩欎釜鏍囩涓紝level="info"琛ㄧず鏃ュ織杈撳嚭绾у埆涓篿nfo锛�<appender-ref ref="CONSOLE"/>銆�<appender-ref ref="DEBUG_FILE"/>銆�<appender-ref ref="INFO_FILE"/>銆�<appender-ref ref="WARN_FILE"/>銆�<appender-ref ref="ERROR_FILE"/>琛ㄧず灏嗘棩蹇楄緭鍑哄埌涓嶅悓鐨刟ppender涓紝鍒嗗埆涓烘帶鍒跺彴銆乨ebug鏂囦欢銆乮nfo鏂囦欢銆亀arn鏂囦欢鍜宔rror鏂囦欢 -->
+    <root level="info">
+        <appender-ref ref="CONSOLE"/>
+        <appender-ref ref="INFO_FILE"/>
+        <appender-ref ref="WARN_FILE"/>
+        <appender-ref ref="ERROR_FILE"/>
+    </root>
+</configuration>
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml
new file mode 100644
index 0000000..3281690
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.hollow.mapper.HollowBigStorageCageDetailsMapper">
+
+    <resultMap id="baseMap" type="com.mes.hollow.entity.dto.FlowCardGlassInfoDTO">
+        <result column="engineer_id" property="engineerId"/>
+        <result column="flow_card_id" property="flowCardId"/>
+        <result column="layer" property="layer"/>
+        <result column="films_id" property="filmsId"/>
+        <result column="thickness" property="thickness"/>
+        <result column="sum_count" property="sumCount"/>
+        <result column="pair_count" property="pairCount"/>
+        <result column="real_count" property="realCount"/>
+        <result column="damage_count" property="damageCount"/>
+        <result column="lack_count" property="lackCount"/>
+    </resultMap>
+    <resultMap id="virtualSlotSequenceDTO" type="com.mes.hollow.entity.dto.FlowCardVirtualSlotDTO">
+        <result column="flow_card_id" property="flowCardId"/>
+        <result column="layer" property="layer"/>
+        <result column="virtual_slot" property="virtualSlot"/>
+    </resultMap>
+    <resultMap id="baseSlotSequenceDTO" type="com.mes.hollow.entity.dto.BigStorageSequenceDTO">
+        <result column="slot" property="slot"/>
+        <result column="max_sequence" property="maxSequence"/>
+        <result column="min_sequence" property="minSequence"/>
+    </resultMap>
+
+    <update id="updateBySlot">
+        update hollow_big_storage_cage_details
+        <set>
+            state = #{state}
+        </set>
+        <where>
+            (glass_id,slot) in (
+            <foreach collection="list" item="item" separator=",">
+                (#{item.glassId}, #{item.targetSlot})
+            </foreach>
+            )
+            and state !=101
+        </where>
+    </update>
+    <update id="updateDeviceIdBySlot">
+        update big_storage_cage_details t inner join big_storage_cage t1 on t.slot = t1.slot
+        set t.device_id = t1.device_id
+        where t.slot in (
+        <foreach collection="list" item="item" separator=",">
+            #{item}
+        </foreach>
+        )
+    </update>
+
+    <select id="hollowIsAll" resultMap="baseMap">
+        WITH sum_flow_layer_count AS ( SELECT flow_card_id, layer, min( films_id ) AS films_id, min(thickness) as
+        thickness,count(*) AS sum_count FROM hollow_glass_relation_info GROUP BY flow_card_id, layer ),
+        real_flow_layer_count AS ( SELECT flow_card_id, layer, count(*) AS real_count, count(distinct slot) as
+        slot_count FROM
+        hollow_big_storage_cage_details t WHERE state = 100 GROUP BY flow_card_id, layer ),
+        damage_flow_layer_count AS ( SELECT process_id AS flow_card_id, technology_number AS layer, count(*) as
+        damage_count FROM damage where type in(8,9) GROUP BY process_id, technology_number ),
+        lack_flow_layer_count AS (
+        SELECT
+        t.flow_card_id,
+        t.layer,
+        ifnull((sum_count - real_count - ifnull(damage_count,0)),0) AS lack_count
+        FROM
+        sum_flow_layer_count t
+        left JOIN real_flow_layer_count t1 ON t.flow_card_id = t1.flow_card_id
+        AND t.layer = t1.layer
+        left JOIN damage_flow_layer_count t2 ON t1.flow_card_id = t2.flow_card_id
+        AND t1.layer = t2.layer
+        ),
+        layer_one AS ( SELECT * FROM hollow_big_storage_cage_details WHERE layer = 1 AND state = 100 ),
+        layer_two AS ( SELECT * FROM hollow_big_storage_cage_details WHERE layer = 2 AND state = 100),
+        layer_three AS ( SELECT * FROM hollow_big_storage_cage_details WHERE layer = 3 AND state = 100 )
+        ,
+        pair_flow_layer_count AS (
+        SELECT
+        t.flow_card_id,
+        count(*) AS pair_count
+        FROM
+        layer_one t
+        INNER JOIN layer_two t1 ON t.flow_card_id = t1.flow_card_id
+        AND t.virtual_slot = t1.virtual_slot
+        AND t.sequence = t1.sequence
+        <if test="totalLayer == 3">
+            inner join layer_three t2
+            on t.flow_card_id = t2.flow_card_id and
+            t.virtual_slot = t2.virtual_slot and t.sequence = t2.sequence
+        </if>
+        GROUP BY
+        t.flow_card_id
+        ),
+        result_flow_layer_count AS (
+        SELECT
+        t.flow_card_id,
+        t.layer,
+        t.films_id,
+        t.thickness,
+        sum_count,
+        IFNULL( t3.pair_count, 0 ) AS pair_count,
+        IFNULL( real_count, 0 ) AS real_count,
+        IFNULL( damage_count, 0 ) AS damage_count,
+        IFNULL( lack_count, 0 ) AS lack_count,
+        IFNULL(slot_count,0) AS slot_count
+        FROM
+        sum_flow_layer_count t
+        LEFT JOIN real_flow_layer_count t1 ON t.flow_card_id = t1.flow_card_id
+        AND t.layer = t1.layer
+        LEFT JOIN lack_flow_layer_count t2 ON t.flow_card_id = t2.flow_card_id
+        AND t.layer = t2.layer
+        LEFT JOIN pair_flow_layer_count t3 ON t.flow_card_id = t3.flow_card_id
+        LEFT JOIN damage_flow_layer_count t4 ON t.flow_card_id = t4.flow_card_id
+        AND t.layer = t4.layer
+        ) SELECT
+        *
+        FROM
+        result_flow_layer_count
+        WHERE
+        flow_card_id = #{flowCardId}
+        <if test="flag == true">
+            and sum_count = pair_count
+        </if>
+        order by layer
+    </select>
+
+    <select id="queryIsAllNeedDispatchVirtualSlot" resultMap="virtualSlotSequenceDTO">
+        with relation_temp as (
+            select flow_card_id, layer, virtual_slot, count(1) as slot_count
+            from hollow_glass_relation_info
+            group by flow_card_id, layer, virtual_slot
+        ),
+             details_temp as (
+                 select flow_card_id, layer, virtual_slot, count(1) as slot_count
+                 from hollow_big_storage_cage_details
+                 where state = 100
+                 group by flow_card_id, layer, virtual_slot
+             ),
+             result_one as (
+                 select t.*, t1.slot_count as tslot_count
+                 from relation_temp t
+                          INNER JOIN details_temp t1 on t.flow_card_id = t1.flow_card_id and
+                                                        t.layer = t1.layer and
+                                                        t.virtual_slot = t1.virtual_slot
+                 where t.slot_count = t1.slot_count
+             )
+        select flow_card_id, layer, virtual_slot
+        from result_one
+        order by flow_card_id, layer, virtual_slot
+    </select>
+
+    <select id="queryNeedDispatchSlot" resultMap="baseSlotSequenceDTO">
+        select slot, max(sequence) as max_sequence, min(sequence) as min_sequence
+        from hollow_big_storage_cage_details
+        where (flow_card_id, layer, virtual_slot) = (#{flowCardId}, #{layer}, #{virtualSlot})
+        group by slot
+        order by max_sequence
+    </select>
+    <select id="queryOutGlassList" resultType="com.mes.hollow.entity.HollowBigStorageCageDetails">
+        with flow_card_id_layer as (
+        select flow_card_id, max(total_layer) as total_layer
+        FROM hollow_big_storage_cage_details
+        group by flow_card_id
+        ),
+        details_sequence_count_temp as (
+        SELECT flow_card_id, hollow_sequence, count(1) as max_count
+        FROM hollow_big_storage_cage_details
+        where state = 100
+        group by flow_card_id, hollow_sequence
+        ),
+        glass_out_temp as (
+        select t1.*, case when t.total_layer = t1.max_count then 1 else 0 end is_pair
+        from flow_card_id_layer t
+        inner join details_sequence_count_temp t1 on t.flow_card_id = t1.flow_card_id
+        ),
+        result_detail as (
+        select t.id,
+        t.device_id,
+        t.virtual_slot,
+        t.slot,
+        t.glass_id,
+        t.sequence,
+        t.flow_card_id,
+        t.glass_type,
+        t.width,
+        t.height,
+        t.thickness,
+        t.tempering_layout_id,
+        t.tempering_feed_sequence,
+        t.state,
+        t.gap,
+        t.engineer_id,
+        t.total_layer,
+        t.layer,
+        t.create_time,
+        t.update_time,
+        t.hollow_sequence,
+        t.films_id,
+        t1.is_pair
+        from hollow_big_storage_cage_details t
+        INNER JOIN glass_out_temp t1
+        on t.flow_card_id = t1.flow_card_id and t.hollow_sequence = t1.hollow_sequence
+        where t.state = 100
+        and t.flow_card_id = #{flowCardId}
+        )
+        select *
+        from result_detail
+        order by flow_card_id, hollow_sequence,layer
+        <if test="cell != 931">
+            desc
+        </if>
+    </select>
+    <select id="queryHollowbigStorageCageDetail" resultType="com.mes.base.entity.vo.BigStorageVO">
+        select hbsc.device_id, hbsc.slot, count(hbscd.glass_id) as count
+        from hollow_big_storage_cage hbsc
+                 left join hollow_big_storage_cage_details hbscd
+                           on hbsc.slot = hbscd.slot and hbscd.state in (100, 102, 103, 104)
+        group by hbsc.device_id, hbsc.slot
+        order by hbsc.device_id, hbsc.slot
+    </select>
+    <select id="querySlotMaxSequence" resultType="com.mes.hollow.entity.HollowBigStorageCageDetails">
+        select max(sequence) as sequence, device_id, slot
+        from hollow_big_storage_cage_details
+        where (flow_card_id, total_layer, layer, virtual_slot) =
+              (#{flowCardId}, #{totalLayer}, #{layer}, #{virtualSlot})
+          and state in (0, 100, 102, 103, 104)
+        group by device_id, slot
+        order by sequence
+    </select>
+    <select id="queryPairGlassList" resultType="com.mes.hollow.entity.HollowBigStorageCageDetails">
+        with hollow_sequence_temp as (
+        SELECT hollow_sequence, count(distinct layer) as count
+        FROM hollow_big_storage_cage_details
+        WHERE flow_card_id = #{flowCardId}
+        <if test="isOut == 0">
+            AND STATE = 100
+        </if>
+
+        GROUP BY hollow_sequence
+        having count = #{totalLayer}
+        limit #{totalPairQuantity}
+        ),
+        hollow_details as (select *
+        from hollow_big_storage_cage_details
+        WHERE flow_card_id = #{flowCardId}
+        <if test="isOut == 0">
+            AND STATE = 100
+        </if>
+        )
+        select *
+        from hollow_details t
+        inner join hollow_sequence_temp t1 on t.hollow_sequence = t1.hollow_sequence
+        ORDER BY t.hollow_sequence
+    </select>
+    <select id="queryFlowCardIdsAndLayer" resultType="com.mes.hollow.entity.dto.FlowCardVirtualSlotDTO">
+        select flow_card_id, layer
+        from hollow_big_storage_cage_details
+        where state in (100, 102, 103, 104)
+        group by flow_card_id, layer
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowBigStorageCageHistoryTaskMapper.xml b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowBigStorageCageHistoryTaskMapper.xml
new file mode 100644
index 0000000..6629e95
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowBigStorageCageHistoryTaskMapper.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.hollowtask.mapper.HollowBigStorageCageHistoryTaskMapper">
+
+    <resultMap id="baseMap" type="com.mes.largenscreen.entity.DailyProductionVO">
+        <result column="date" property="date"/>
+        <result column="count_out_one" property="countOutOne"/>
+        <result column="total_area_out_one" property="totalAreaOutOne"/>
+        <result column="count_out_two" property="countOutTwo"/>
+        <result column="total_area_out_two" property="totalAreaOutTwo"/>
+        <result column="count_in" property="countIn"/>
+        <result column="total_area_in" property="totalAreaIn"/>
+        <result column="count_out" property="countOut"/>
+        <result column="total_area_out" property="totalAreaOut"/>
+        <result column="hollow_count_out_one" property="hollowCountOutOne"/>
+        <result column="hollow_total_area_out_one" property="hollowTotalAreaOutOne"/>
+        <result column="hollow_count_out_two" property="hollowCountOutTwo"/>
+        <result column="hollow_total_area_out_two" property="hollowTotalAreaOutTwo"/>
+    </resultMap>
+
+    <select id="queryHollowDailyProduction" resultMap="baseMap">
+        with hollow_out_one_temp as (
+        select count(t.glass_id) as hollow_count_out_one,
+        round(sum(t1.width * t1.height) / 1000000, 2) as hollow_total_area_out_one
+        from hollow_big_storage_cage_history_task t
+        INNER JOIN glass_info t1 on t.glass_id = t1.glass_id
+        where t.task_type = 5
+        and t.target_slot = 930
+        <if test="beginDate != null and beginDate != ''">
+            AND STR_TO_DATE( t.create_time, '%Y-%m-%d' ) BETWEEN #{beginDate}
+            AND #{endDate}
+        </if>
+        ),
+        hollow_out_two_temp as (
+        select count(t.glass_id) as hollow_count_out_two,
+        round(sum(t1.width * t1.height) / 1000000, 2) as hollow_total_area_out_two
+        from hollow_big_storage_cage_history_task t
+        INNER JOIN glass_info t1 on t.glass_id = t1.glass_id
+        where t.task_type = 5
+        and t.target_slot = 931
+        <if test="beginDate != null and beginDate != ''">
+            AND STR_TO_DATE( t.create_time, '%Y-%m-%d' ) BETWEEN #{beginDate}
+            AND #{endDate}
+        </if>
+        )
+        select *
+        from hollow_out_one_temp
+        inner join hollow_out_two_temp on 1 = 1
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowFormulaDetailsMapper.xml b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowFormulaDetailsMapper.xml
new file mode 100644
index 0000000..59cb7a7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowFormulaDetailsMapper.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.hollow.mapper.HollowFormulaDetailsMapper">
+
+
+    <select id="1" resultType="com.mes.hollow.entity.HollowBigStorageCageDetails">
+        select max(sequence) as sequence, device_id, slot
+        from hollow_big_storage_cage_details
+        where (flow_card_id, total_layer, layer, virtual_slot) =
+              (#{flowCardId}, #{totalLayer}, #{layer}, #{virtualSlot})
+          and state in (0, 100, 102, 103, 104)
+        group by device_id, slot
+        order by sequence
+    </select>
+    <select id="queryFormulaDetailsByGlassId" resultType="com.mes.hollow.entity.vo.HollowGlassFormulaVO">
+        select t3.id,
+        t3.formula_name,
+        case
+        when t3.film_remove = 0 then 0
+        else ifnull(t2.film_remove, 0) end as film_remove,
+        t3.top_remove,
+        t3.bottom_remove,
+        t3.left_remove,
+        t3.right_remove,
+        t3.frame_one,
+        t3.frame_two,
+        t3.frame_three,
+        t3.frame_four,
+        t3.seal_insert,
+        t3.cas_one,
+        t3.cas_two,
+        t3.cas_three,
+        t3.cas_four,
+        t3.interval_frame_type_one,
+        t3.interval_frame_width_one,
+        t3.interval_frame_height_one,
+        t3.interval_frame_type_two,
+        t3.interval_frame_width_two,
+        t3.interval_frame_height_two,
+        t3.interval_frame_type_three,
+        t3.interval_frame_width_three,
+        t3.interval_frame_height_three,
+        t3.interval_frame_type_four,
+        t3.interval_frame_width_four,
+        t3.interval_frame_height_four,
+        t2.width,
+        t2.height,
+        t2.thickness
+        from hollow_glass_out_relation_info t
+        inner join hollow_glass_queue_info t1 on t.id = t1.relation_id
+        inner join glass_info t2 on t1.glass_id = t2.glass_id
+        inner join hollow_formula_details t3 on t.formula_id = t3.id
+        <where>
+            1=1
+            <if test="glassId != null and glassId !=''">
+                and t1.glass_id = #{glassId}
+            </if>
+            <if test="flowCardId != null and flowCardId !=''">
+                and t.flow_card_id = #{flowCardId}
+            </if>
+            <if test="cell != null and cell !=''">
+                and t.cell = #{cell}
+            </if>
+        </where>
+        limit 1
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassOutRelationInfoMapper.xml b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassOutRelationInfoMapper.xml
new file mode 100644
index 0000000..5aeed84
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassOutRelationInfoMapper.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.hollow.mapper.HollowGlassOutRelationInfoMapper">
+
+
+    <select id="queryOrderByFlowCardId" resultType="com.mes.hollow.entity.dto.OrderDTO">
+        select t1.*
+        from pp.flow_card t
+                 inner join sd.order t1 on t.order_id = t1.order_id
+        where t.process_id = #{flowCardId}
+        limit 1
+    </select>
+    <select id="queryPieChart" resultType="com.mes.largenscreen.entity.PieChartVO">
+        SELECT
+            round( sum( CASE WHEN hgori.cell = 930 AND hgqi.state = 0 THEN 1 ELSE 0 END ), 2 ) AS oneCompletedQuantity,
+            round(
+                    sum( CASE WHEN hgori.cell = 930 AND hgqi.state = 0 THEN hgqi.width * hgqi.height / 1000000 ELSE 0 END ),
+                    2
+                ) AS oneCompletedArea,
+            round( sum( CASE WHEN hgori.cell = 931 AND hgqi.state = 0 THEN 1 ELSE 0 END ), 2 ) AS twoCompletedQuantity,
+            round(
+                    sum( CASE WHEN hgori.cell = 931 AND hgqi.state = 0 THEN hgqi.width * hgqi.height / 1000000 ELSE 0 END ),
+                    2
+                ) AS twoCompletedArea,
+            round( sum( CASE WHEN hgori.cell = 930 AND hgqi.state =- 1 THEN 1 ELSE 0 END ), 2 ) AS oneUncompletedQuantity,
+            round(
+                    sum( CASE WHEN hgori.cell = 930 AND hgqi.state =- 1 THEN hgqi.width * hgqi.height / 1000000 ELSE 0 END ),
+                    2
+                ) AS oneUncompletedArea,
+            round( sum( CASE WHEN hgori.cell = 931 AND hgqi.state =- 1 THEN 1 ELSE 0 END ), 2 ) AS twoUncompletedQuantity,
+            round(
+                    sum( CASE WHEN hgori.cell = 931 AND hgqi.state =- 1 THEN hgqi.width * hgqi.height / 1000000 ELSE 0 END ),
+                    2
+                ) AS twoUncompletedArea
+        FROM
+            hollow_glass_out_relation_info hgori
+                INNER JOIN hollow_glass_queue_info hgqi ON hgori.formula_id = hgqi.relation_id
+        WHERE
+            date( hgori.create_time ) = date(
+            now())
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassRelationInfoMapper.xml b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassRelationInfoMapper.xml
new file mode 100644
index 0000000..981209f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassRelationInfoMapper.xml
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.mes.hollow.mapper.HollowGlassRelationInfoMapper">
+
+    <resultMap id="baseMap" type="com.mes.hollow.entity.dto.HollowGlassDetailsDTO">
+        <result column="process_id" property="flowCardId"/>
+        <result column="child_width" property="width"/>
+        <result column="child_height" property="height"/>
+        <result column="order_number" property="orderSort"/>
+        <result column="technology_number" property="layer"/>
+        <result column="quantity" property="quantity"/>
+    </resultMap>
+    <resultMap id="lackBaseMap" type="com.mes.hollow.entity.dto.LackDetailsDTO">
+        <result column="flow_card_id" property="flowCardId"/>
+        <result column="layer" property="layer"/>
+        <result column="films_id" property="filmsId"/>
+        <result column="first_length" property="width"/>
+        <result column="second_Length" property="height"/>
+        <result column="thickness" property="thickness"/>
+        <result column="lack_cout" property="lackCount"/>
+    </resultMap>
+
+    <select id="queryFlowCardIdMaxLayerGlassInfo" resultMap="baseMap">
+        with temp_flow as (SELECT t.process_id,
+                                  t.order_id,
+                                  t.order_number,
+                                  t.technology_number,
+                                  t.quantity,
+                                  t1.child_width,
+                                  t1.child_height
+
+                           from pp.flow_card t
+                                    LEFT JOIN sd.order_glass_detail t1
+                                              on t.order_id = t1.order_id
+                                                  and t.order_number = t1.order_number
+                                                  and t.technology_number = t1.technology_number
+                           where t.process_id = #{flowCardId}),
+             glass_info_temp as (
+                 select process_id,
+                        order_id,
+                        GREATEST(child_width, child_height) as first_length,
+                        least(child_width, child_height)    as second_length,
+                        child_width,
+                        child_height,
+                        order_number,
+                        technology_number,
+                        quantity
+                 from temp_flow
+                 where technology_number = #{totalLayer}
+             )
+        select row_number() over (order by second_length desc,first_length desc) as rn, t.*
+        from glass_info_temp t
+    </select>
+
+    <select id="queryFlowCardIdLayerGlassInfo" resultMap="baseMap">
+        with temp_flow as (SELECT t.process_id,
+                                  t.order_id,
+                                  t.order_number,
+                                  t.technology_number,
+                                  t.quantity,
+                                  t1.child_width,
+                                  t1.child_height
+                           from pp.flow_card t
+                                    LEFT JOIN sd.order_glass_detail t1
+                                              on t.order_id = t1.order_id
+                                                  and t.order_number = t1.order_number
+                                                  and t.technology_number = t1.technology_number
+                           where t.process_id = #{flowCardId}),
+             glass_info_max_layer_temp as (
+                 select process_id,
+                        order_id,
+                        GREATEST(child_width, child_height) as first_length,
+                        least(child_width, child_height)    as second_length,
+                        child_width,
+                        child_height,
+                        order_number,
+                        technology_number,
+                        quantity
+                 from temp_flow
+                 where technology_number = #{totalLayer}
+             ),
+             glass_info_layer_temp as (
+                 select process_id,
+                        order_id,
+                        GREATEST(child_width, child_height) as first_length,
+                        least(child_width, child_height)    as second_length,
+                        child_width,
+                        child_height,
+                        order_number,
+                        technology_number,
+                        quantity
+                 from temp_flow
+                 where technology_number = #{layer}
+             ),
+             max_layer_sequence as (
+                 select row_number() over (order by second_length desc,first_length desc) as rn, t.order_number
+                 from glass_info_max_layer_temp t
+             ),
+             result as (select t.*
+                        from glass_info_layer_temp t
+                                 INNER join max_layer_sequence t1 on t.order_number = t1.order_number
+                        order by t1.rn)
+        select *
+        from result
+    </select>
+    <select id="queryLackByFlowCard" resultMap="lackBaseMap">
+        with relation_length as (
+            select flow_card_id,
+                   layer,
+                   tempering_layout_id,
+                   tempering_feed_sequence,
+                   GREATEST(width, height) as first_length,
+                   LEAST(width, height)    as second_Length,
+                   width,
+                   height,
+                   thickness,
+                   films_id
+            from hollow_glass_relation_info
+            where flow_card_id = #{flowCardId}
+              and tempering_layout_id is null
+              and tempering_feed_sequence is null
+        )
+        select flow_card_id, layer, first_length, films_id, second_Length, thickness, count(*) as lack_cout
+        from relation_length
+        group by flow_card_id, layer, films_id, first_length, second_Length, thickness
+    </select>
+    <select id="queryLayerByFlowCardId" resultType="java.lang.Integer">
+        select count(distinct layer)
+        from hollow_glass_relation_info
+        where flow_card_id = #{flowCardId}
+    </select>
+    <select id="queryProductNameByFlowCardId" resultType="java.lang.String">
+        select product_name
+        from sd.order_detail
+        where (order_id, order_number) = (
+            select min(order_id) as order_id, min(order_number) as order_number
+            from pp.flow_card
+            where process_id = #{flowCardId}
+        )
+        limit 1
+    </select>
+
+    <update id="clearDirtyFlowCardData">
+        update hollow_glass_relation_info
+        set glass_id                = null,
+            tempering_layout_id     = null,
+            tempering_feed_sequence = null,
+            engineer_id             = null,
+            state                   = 0
+        where flow_card_id = #{flowCardId}
+          and layer = #{layer}
+          and glass_id not in (
+            select glass_id
+            from hollow_big_storage_cage_details
+            where flow_card_id = #{flowCardId}
+              and layer = #{layer}
+              and state in (100, 102, 103, 104)
+        )
+    </update>
+</mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/templates/hollowGlass.ftl b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/templates/hollowGlass.ftl
new file mode 100644
index 0000000..e4ffa44
--- /dev/null
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/templates/hollowGlass.ftl
@@ -0,0 +1,12 @@
+${details.relRecType}|${details.relNumber}|${blank.computeBlank(details.relInfo,40)}
+${details.bthRecType}|${blank.computeBlank(details.bathInfo,10)}|${blank.computeBlank(details.bcdStart,6)}|${blank.computeZero(details.batchNo,8)}
+${details.ordRecType}|${blank.computeZero(details.ord,10)}|${blank.computeBlank(details.custNum,10)}|${blank.computeBlank(details.custNam,40)}|${blank.computeBlank(details.text1,40)}|${blank.computeBlank(details.text2,40)}|${blank.computeBlank(details.text3,40)}|${blank.computeBlank(details.text4,40)}|${blank.computeBlank(details.text5,40)}|${details.proDate}|${details.delDate}|${blank.computeBlank(details.delArea,10)}
+<#list details.glassAndFrameList as item>
+${item.recType}|${blank.computeZero(item.itemNum,5)}|${blank.computeBlank(item.idNum,8)}|${blank.computeZero(item.barcode,4)}|${item.qty}|${blank.computeZero(item.width,6)}|${blank.computeZero(item.height,6)}|${blank.computeBlank(item.glass1,9)}|${blank.computeBlank(item.frame1,9)}|${blank.computeBlank(item.glass2,9)}|${blank.computeBlank(item.frame2,9)}|${blank.computeBlank(item.glass3,9)}|${blank.computeBlank(item.frame3,9)}|${blank.computeBlank(item.glass4,9)}|${blank.computeBlank(item.frame4,9)}|${blank.computeBlank(item.glass5,9)}|${blank.computeZero(item.inset,4)}|${blank.computeZero(item.frameTxt,2)}|${blank.computeZero(item.gasCode1,9)}|${blank.computeZero(item.gasCode2,9)}|${blank.computeZero(item.gasCode3,9)}|${blank.computeZero(item.gasCode4,9)}|${blank.computeZero(item.sealType,9)}|${blank.computeZero(item.frahType,1)}|${blank.computeZero(item.frahHoe,6)}|${blank.computeZero(item.pattDir,1)}|${blank.computeZero(item.dguPane,1)}
+    <#list item.glassList as glass>
+${glass.recType}|${blank.computeZero(glass.itemInx,5)}|${blank.computeBlank(glass.descript,40)}|${blank.computeZero(glass.surface,1)}|${blank.computeZero(glass.thickness,5)}|${blank.computeZero(glass.faceSide,1)}|${blank.computeBlank(glass.ident,10)}|${blank.computeZero(glass.pattDir,1)}|${blank.computeBlank(glass.paneBcd,10)}|${blank.computeZero(glass.prodPane,1)}|${blank.computeZero(glass.prodComp,2)}|${blank.computeZero(glass.gategory,2)}
+    </#list>
+    <#list item.frameList as frame>
+${frame.recType}|${blank.computeZero(frame.itemInx,5)}|${blank.computeBlank(frame.descript,40)}|${blank.computeZero(frame.type,2)}|${blank.computeZero(frame.color,2)}|${blank.computeZero(frame.width,5)}|${blank.computeZero(frame.height,5)}|${blank.computeBlank(frame.ident,10)}|${blank.computeBlank(frame.frameBcd,10)}
+    </#list>
+</#list>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/pom.xml b/hangzhoumesParent/moduleService/pom.xml
new file mode 100644
index 0000000..23bb38b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/pom.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>hangzhoumesParent</artifactId>
+        <groupId>com.mes</groupId>
+        <version>1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>moduleService</artifactId>
+    <packaging>pom</packaging>
+    <modules>
+        <module>CacheGlassModule</module>
+        <module>CacheVerticalGlassModule</module>
+        <module>LoadGlassModule</module>
+        <module>TemperingGlassModule</module>
+        <module>UnLoadGlassModule</module>
+        <module>GlassStorageModule</module>
+        <module>hollowGlassModule</module>
+    </modules>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+    <dependencies>
+        <!--web 闇�瑕佸惎鍔ㄩ」鐩�-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.velocity</groupId>
+            <artifactId>velocity-engine-core</artifactId>
+            <version>2.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-freemarker</artifactId>
+        </dependency>
+
+        <!--渚濊禆鏈嶅姟鐨勫伐鍏风被-->
+        <!--        <dependency>-->
+        <!--            <groupId>com.mes</groupId>-->
+        <!--            <artifactId>common</artifactId>-->
+        <!--            <version>1.0-SNAPSHOT</version>-->
+        <!--        </dependency>-->
+
+        <dependency>
+            <artifactId>servicebase</artifactId>
+            <groupId>com.mes</groupId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <artifactId>springsecurity</artifactId>
+            <groupId>com.mes</groupId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+
+        <!--寮�鍙戣�呭伐鍏�-->
+        <!--        <dependency>-->
+        <!--            <groupId>org.springframework.boot</groupId>-->
+        <!--            <artifactId>spring-boot-devtools</artifactId>-->
+        <!--            <optional>true</optional>-->
+        <!--        </dependency>-->
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/pom.xml b/hangzhoumesParent/pom.xml
new file mode 100644
index 0000000..b371f22
--- /dev/null
+++ b/hangzhoumesParent/pom.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>com.mes</groupId>
+    <artifactId>hangzhoumesParent</artifactId>
+    <version>1.0-SNAPSHOT</version>
+    <modules>
+        <module>common</module>
+        <module>moduleService</module>
+        <module>gateway</module>
+        <module>mesHub</module>
+    </modules>
+    <packaging>pom</packaging>
+
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.1.8.RELEASE</version>
+        <relativePath/>
+    </parent>
+
+    <properties>
+        <!-- 璺宠繃娴嬭瘯 -->
+        <skipTests>true</skipTests>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <version>Greenwich.SR3</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>com.alibaba.cloud</groupId>
+                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
+                <version>2.1.0.RELEASE</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.springframework.plugin</groupId>
+                <artifactId>spring-plugin-core</artifactId>
+                <version>2.0.0.RELEASE</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <repositories>
+        <repository>
+            <id>nexus-aliyun</id>
+            <name>Nexus aliyun</name>
+            <layout>default</layout>
+            <url>https://maven.aliyun.com/repository/public</url>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+            <releases>
+                <enabled>true</enabled>
+            </releases>
+        </repository>
+        <repository>
+            <id>spring</id>
+            <url>https://maven.aliyun.com/repository/spring</url>
+            <releases>
+                <enabled>true</enabled>
+            </releases>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+    </repositories>
+
+
+</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/readMe.md b/hangzhoumesParent/readMe.md
new file mode 100644
index 0000000..d2ffe19
--- /dev/null
+++ b/hangzhoumesParent/readMe.md
@@ -0,0 +1,18 @@
+1銆佹湰椤圭洰鏄熀浜嶴pringBoot+Mybatis-plus+Mysql+Vue+ElementUI+Maven+Nginx鐨勯」鐩�,鐩綍缁撴灉缁撴瀯濡備笅锛�
+
+    鈹溾攢src
+    鈹溾攢com   鎻掍欢鐢熸垚鐨勪唬鐮侊紝鐢ㄤ簬鍚勮嚜寮�鍙戜娇鐢�
+    鈹�  鈹斺攢mes
+    鈹溾攢common  鍏叡妯″潡
+    鈹�  鈹溾攢src
+    鈹斺攢moduleService
+        鈹溾攢-CacheGlassModule
+        鈹溾攢-CacheVerticalGlassModule
+        鈹溾攢-LoadGlassModule
+        鈹溾攢-TemperingGlassModule
+        鈹斺攢-UnLoadGlassModule
+
+2銆佽繍琛岄」鐩細 1銆佸惎鍔ㄩ」鐩細鍚姩鍚勮嚜妯″潡鍚姩绫� 渚嬪锛欳acheGlassModuleApplication.java#main()
+2銆佽闂」鐩細 3銆侀」鐩湴鍧�锛歨ttp://localhost:8081/mesModuleCache/doc.html#/home
+4銆侀」鐩鏄庯細 鏈晫闈负Api鏂囨。锛屽叕寮�浜哄憳鐢ㄤ簬璋冭瘯 3銆侀」鐩鏄庯細 1銆侀」鐩垎涓哄叕鍏辨ā鍧梒ommon锛屼笟鍔℃ā鍧梞oduleService銆� 2銆乧ommon妯″潡涓寘鍚叕鍏辩殑绫伙紝渚嬪锛氬叕鍏辩殑瀹炰綋绫汇�佹嫤鎴櫒銆佸伐鍏风被銆佸父閲忕被銆佸紓甯稿鐞嗙瓑銆�
+3銆乵oduleService涓寘鍚悇涓笟鍔℃ā鍧楋紝姣忎釜涓氬姟妯″潡涓寘鍚竴涓惎鍔ㄧ被,寮�鍙戜汉鍛橀渶瑕佸紑鍙戝悇鑷礋璐g殑涓氬姟妯″潡銆� 4銆乧om鐩綍涓嬬殑鏂囦欢涓烘彃浠剁敓鎴愮殑浠g爜锛岀敤浜庡悇鑷紑鍙戜娇鐢ㄣ�傜敤瀹屽垹闄ゅ嵆鍙紝閬垮厤褰卞搷寮�鍙戙��
\ No newline at end of file
diff --git a/logs/cacheGlass/web_debug.log b/logs/cacheGlass/web_debug.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/logs/cacheGlass/web_debug.log
diff --git a/logs/cacheGlass/web_error.log b/logs/cacheGlass/web_error.log
new file mode 100644
index 0000000..e5b4d6f
--- /dev/null
+++ b/logs/cacheGlass/web_error.log
@@ -0,0 +1,13760 @@
+2025-05-08 10:05:33.505 [task-cache3] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:33.505 [task-cache6] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:33.505 [task-cache2] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:33.505 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:34.274 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:f544af96-0baa-44bd-b5e4-25ce5e20f8e6
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:34.295 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:34.323 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:852297ca-47e3-4de9-a7aa-fba5e14b5ffa
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:34.362 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:34.513 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:34.515 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:34.882 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:4d4237ce-60e4-49a4-8200-49799b982550
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:34.934 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:35.434 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:6e950e90-f047-47e5-b8e9-da731d062e5d
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:35.503 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:35.517 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:35.520 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:35.521 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:35.523 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:35.978 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:5dc02e66-6d6d-4d49-ad57-e4e953df3548
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:36.065 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:36.528 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:f5c9de62-174d-41f1-a493-90675820714d
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:36.536 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:36.538 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:36.614 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:37.070 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:3124f09b-628a-4014-8559-1f33ae5e8ec2
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:37.176 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:37.531 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:37.532 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:37.547 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:37.548 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:37.614 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:93b8bb99-220f-45be-8930-417bf2ac34ff
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:37.740 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:38.162 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:6e2604f4-3840-4a25-98a7-238527acbbab
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:38.294 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:38.557 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:38.558 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:38.700 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:fc4f9d76-ca97-4f21-89f4-36ee36a6fc53
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:38.853 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:39.252 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:ad48a32d-d24a-42f0-afcc-27e241964cad
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:39.413 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:39.538 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:39.539 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:39.570 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:39.571 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:39.795 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:61dc1814-f1ee-49b3-a881-897256caa37d
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:39.980 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:40.340 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:36a2c8d2-e8be-4754-8e1a-0baafc8d37a4
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:40.531 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:40.581 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:40.583 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:40.891 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:e67c5a3f-4b02-422f-b2e2-6237b52bd53b
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:41.090 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:41.434 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:ffb7468e-8222-4ff8-86cf-04854019393d
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:41.553 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:41.554 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:41.585 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:41.587 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:41.654 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:41.979 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:c3b5af7e-141d-4bef-b209-de86edaa1e4b
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:42.218 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:42.529 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:17c826bd-63ac-41a1-aaca-4262690a00cf
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:42.599 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:42.600 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:42.771 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:43.081 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:bc96e333-5c03-4711-b13f-45294f999fa6
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:43.323 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:43.567 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:43.568 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:43.613 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:43.614 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:43.635 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:4173e767-3ef8-4834-a558-ac3652bba556
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:43.882 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:44.185 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:7fefd6a5-2bce-43e2-a01a-a10ca3dce36c
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:44.449 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:44.628 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:44.629 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:44.731 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:21ed27e6-82fd-4bce-a2b9-aa7c5cbac3af
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:45.007 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:45.274 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:baa6192c-3006-4f87-a3d4-50815eef5324
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:45.572 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:45.582 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:45.583 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:45.644 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:45.646 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:45.825 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:98fddb96-884a-478b-9f14-7c7c983245a5
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:46.121 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:46.376 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:21e73f26-e335-47c8-b767-ca356df3292a
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:46.659 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:46.660 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:46.678 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:46.925 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:f74b359c-c2b6-4d1b-8ea8-9b30d3061266
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:47.240 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:47.465 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:45ec3d47-81af-4d4a-84da-0689f883f678
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:47.596 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:47.597 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:47.673 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:47.673 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:47.800 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:48.005 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:b359798c-1901-47ea-9544-f1ee0e78dd84
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:48.357 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:48.542 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:350e5135-9fcc-4890-a698-30fd1b4f8914
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:48.676 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:48.678 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:48.917 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:49.084 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:6b10d1d9-1a19-4e8f-8f7f-13ee33a25b66
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:49.487 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:49.604 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:49.604 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:49.625 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:547b59fd-8747-4d57-b0b7-5c73f1e8f4e9
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:49.683 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:49.686 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:50.037 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:50.180 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:1afabb24-7fff-4978-9725-126c0c41efb2
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:50.592 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:50.701 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:50.703 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:50.727 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:af0fc92d-f59f-44e8-9c59-09ca976f8cdd
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:51.152 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:51.282 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:870de122-d427-48d4-b9d6-d97a5384b6cb
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:51.611 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:51.612 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:51.701 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:51.703 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:51.707 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:51.836 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:a6a19e71-ef9f-475e-8699-fd1fc99ccaa6
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:52.277 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:52.398 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:bd4aeecc-0095-4e40-b55b-786af5421cec
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:52.709 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:52.716 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:52.838 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:52.952 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:d9e2bb4a-dfab-4a71-bcd1-0ec1f26162bc
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:53.415 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:53.521 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:d0989836-dbd5-4d1d-9bcc-3f204f2986a4
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:53.629 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:53.630 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:53.722 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:53.726 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:53.979 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:54.095 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:91f700cb-9aab-49b4-8618-e77c8f4a9cce
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:54.545 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:54.657 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:70d56ed4-ea59-45e8-871d-2ce74b0cce4d
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:54.736 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:54.739 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:55.115 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:55.216 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:fe9d5072-e511-47ed-909b-96e45a6b9172
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:55.640 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:55.641 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:55.678 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:55.753 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:55.755 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:55.762 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:c09d68f6-578a-477b-a996-02d2dddacf63
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:56.250 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:56.314 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:81801e01-16e6-45f0-a2bc-eeaa9a9d2934
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:56.761 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:56.764 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:56.811 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:56.861 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:bf9cf345-84d8-4d5b-9e62-15b177a77b72
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:57.380 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:57.415 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:7f20c068-24c4-4c68-815c-425ddbae226c
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:57.648 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:57.649 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:57.773 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:57.776 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:57.951 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:57.968 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:a3b0b68d-18e9-4921-a835-9f1d7b946222
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:58.524 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:58.527 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:aef44245-d3ee-42e7-be9c-ed22f59efec1
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:58.789 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:58.791 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:59.086 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:a6a346b5-fd19-40ae-965f-efc68b75747b
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:59.094 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:59.646 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:5942ae46-adc7-4d15-9b1b-7b63b1715502
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:59.661 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:05:59.661 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:59.662 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:59.803 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:05:59.805 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:00.197 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:d9e45bc4-620f-41f5-8951-a87233c032c6
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:00.221 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:00.743 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:1bc59da5-757c-4216-b668-682add97c7fe
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:00.780 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:00.810 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:00.812 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:01.289 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:9de0d35e-9cd4-4402-84ad-c588ad7d617d
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:01.344 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:01.674 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:01.676 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:01.814 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:01.817 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:01.834 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:95552ae5-c2d6-4ea5-abed-bc88fe5234b5
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:01.910 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:02.383 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:2edd77be-f9b4-4cf7-82ac-0815df97174d
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:02.467 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:02.821 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:02.823 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:02.933 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:4c618eb5-65b9-400b-8a21-c7336158faff
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:03.022 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:03.480 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:ff04f93e-227a-46b3-9f98-64e1f77a7754
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:03.588 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:03.677 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:03.678 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:03.833 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:03.834 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:04.020 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:b67873ac-24ec-4a3e-8344-e8022314f96c
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:04.139 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:04.568 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:c8fc3952-c589-4c86-b959-8128c38f4d74
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:04.700 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:04.839 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:04.841 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:05.110 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:6efa797c-93bc-4da8-bfb5-6e3702ec9ee5
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:05.261 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:05.647 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:ed048ae0-b7e5-4a87-a941-0cd04aa501d2
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:05.691 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:05.694 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:05.809 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:05.844 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:05.846 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:06.194 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:cb3315ba-ccc4-490b-8f11-d9fb29e94c35
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:06.374 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:06.750 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:1429ae20-6575-4bc6-804f-b21d0140cee8
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:06.850 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:06.852 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:06.924 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:07.333 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:10f024f5-92f0-42b7-aff2-62d0cd70376d
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:07.472 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:07.697 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:07.699 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:07.855 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:07.857 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:07.877 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:8f6199d7-2b84-4207-9487-1e47a63b98e9
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:08.022 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:08.414 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:ce523deb-95b1-44bb-8b01-b3af02b01967
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:08.588 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:08.861 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:08.863 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:08.966 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:125fd0b2-21d6-4ae7-b996-1a39188a125b
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:09.149 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:09.518 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:4429b7f4-678f-4be3-b984-de02f73798ce
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:09.699 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:09.701 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:09.704 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:09.871 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:09.873 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:10.062 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:d4c54a40-a5d7-45d9-ab80-1796d81d551a
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:10.303 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:10.608 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:b1c6fdfa-20c4-44cc-aa34-feb016d496dc
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:10.866 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:10.889 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:10.892 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:11.153 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:ce03c7a5-c095-45bc-93f9-0c1ec933a0e4
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:11.414 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:11.695 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:4605189e-8a1f-4bc9-85f4-6364ae15a7bd
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:11.711 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:11.713 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:11.898 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:11.900 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:11.980 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:12.244 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:34f5b436-19ea-44f7-abda-72f2dc79cd58
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:12.532 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:12.782 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:f0c459b6-7181-48e8-9dc8-c7fd1e3a601b
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:12.903 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:12.905 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:13.091 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:13.320 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:41d58890-8fc4-49f0-9f03-819de4874f5b
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:13.633 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:13.719 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:13.721 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:13.863 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:95c34563-3b29-4025-bfe8-f6a2faac4aad
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:13.919 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:13.921 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:14.192 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:14.411 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:c26869f9-8234-4ffb-8974-e7fdad5f9fac
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:14.742 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:14.934 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:14.936 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:14.952 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:10f7f6e1-bf11-48d8-a767-5c581fbf6b30
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:15.296 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:15.487 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:fa8804d8-8ca2-4529-b745-c806196140dd
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:15.722 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:15.724 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:15.836 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:15.937 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:15.939 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:16.029 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:96691c1d-26f9-42bd-858c-06fd9a9b9ba2
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:16.385 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:16.574 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:79ea6a8f-80ef-413e-a497-dcb31ca61807
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:16.931 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:16.952 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:16.953 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:17.110 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:eb9d1c3d-7723-42d3-84e6-8c43d6b33d99
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:17.474 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:17.652 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:76f9e67d-8ac1-4a6f-90f4-77653fbd0a34
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:17.730 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:17.732 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:17.967 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:17.970 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:18.022 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:18.205 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:50c1140a-6340-4fc5-bcf1-3bb29fb79278
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:18.571 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:18.747 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:a2d3bcc0-5adb-48fa-99e9-efc296c9108c
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:18.982 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:18.984 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:19.111 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:19.290 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:7e53cd99-ee36-4b4c-b01d-213d847bdbce
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:19.655 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:19.742 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:19.744 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:19.836 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:64eae1c7-ae5c-4eff-b1b2-06ac16f5a684
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:19.992 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:19.993 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:20.205 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:20.381 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:b1e4afee-d593-46b4-8c8f-1e57f5d380cc
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:20.746 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:20.927 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:af8a3154-ad3e-45d4-8c15-b7113994fc92
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:21.005 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:21.007 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:21.296 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:21.469 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:0047a696-8a2a-4b14-8c3e-298893ae530b
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:21.753 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:21.756 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:21.853 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:22.009 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:03298ba7-574b-49eb-873f-a6bf1819627b
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:22.018 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:22.020 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:22.416 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:22.567 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:bb10f1c7-85f1-489d-b563-73b26384434d
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:22.971 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:23.024 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:23.027 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:23.117 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:7b51ffcd-ce98-4014-8a72-1d4f848f210f
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:23.531 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:23.651 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:e10d4398-0f22-4444-970d-0d58f7b61af3
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:23.762 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:23.765 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:24.040 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:24.042 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:24.079 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:24.202 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:03ac5e0d-6b6a-499e-82ca-54f3c755fced
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:24.636 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:24.747 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:8bfdbb7d-510b-489f-a0bc-0c74e9f8129d
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:25.054 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:25.056 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:25.194 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:25.290 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:afee7b27-9b57-45f6-a06a-643c5505a6ba
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:25.747 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:25.767 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:25.769 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:25.834 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:5a54a93e-a160-46af-99ec-8c01402dbe22
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:26.062 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:26.063 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:26.308 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:26.379 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:60eea066-4d30-4d7d-8ca8-c0dd5d8db9bb
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:26.869 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:26.924 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:b685a138-9219-4271-bd27-ae6dc5b0b4d2
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:27.073 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:27.076 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:27.428 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:27.463 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:52776e87-a165-4579-93be-81ff746904db
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:27.781 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:27.783 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:27.981 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:28.013 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:4de82fe0-66b1-4c55-9cab-d0ab23d53bcf
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:28.091 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:28.093 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:28.543 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:28.563 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:9614aef6-05b1-4e24-a194-5db907a0e1f7
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:29.099 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:29.101 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:29.104 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:29.106 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:5302422e-4b87-43a1-8f31-508c8b6756c9
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:29.649 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:4b78c21c-56dd-458f-af00-dcfa1a989645
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:29.659 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:29.798 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:29.800 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:30.109 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:30.111 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:30.195 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:512882f1-3dbf-42ad-9f00-912079e8c4ff
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:30.213 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:30.732 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:2d015414-7dd6-4f90-8eaa-c106e02711a2
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:30.775 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:31.117 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:31.119 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:31.277 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:eb29c165-1e81-454f-b3f2-28b97f89dbdd
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:31.331 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:31.813 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:31.815 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:31.816 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:643a004a-5419-4a8a-91ab-9550ea34bd02
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:31.884 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:32.123 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:32.125 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:32.367 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:ef03c06c-587e-42cc-a50e-134ced9956ad
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:32.456 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:32.917 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:43aee4e0-6a75-42e3-b533-47b8baa5a4fc
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:33.008 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:33.131 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:33.133 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:33.466 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:c7269a8e-99fa-442a-9c43-7329256dad29
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:33.563 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:33.817 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:33.818 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:34.008 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:2db56a15-ab69-4520-b989-4ac8a378fc66
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:34.131 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:34.141 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:34.143 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:34.546 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:2af80ac0-1b95-4f50-9ccf-2bf6bdfaf25d
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:34.679 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:35.086 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:250196d7-9ec5-4bde-bd45-4d19c28bae0a
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:35.145 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:35.147 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:35.232 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:35.633 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:54572ed8-2a24-4338-9c7b-6a093aebfe8f
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:35.783 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:35.829 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:35.831 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:36.154 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:36.156 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:36.170 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:24d7faf0-5df4-421e-9ea7-7135970d37ae
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:36.336 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:36.711 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:00b0fbed-29e1-4ea3-a4cd-724dc6cd980c
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:36.901 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:37.165 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:37.167 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:37.264 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:2ee857f2-f928-405a-923b-72ef57f60d74
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:37.458 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:37.813 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:9eb4f136-f289-4931-a3bb-d63b16ae1bd0
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:37.835 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:37.836 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:38.017 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:38.177 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:38.179 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:38.348 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:46f82920-2263-4cdf-ace6-a08c34b2628c
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:38.578 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:38.894 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:94634849-0c06-4af9-8c3f-34a06f64285d
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:39.134 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:39.184 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:39.186 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:39.440 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:bf5325d0-d2e7-4f8e-8ff6-69a2a42bfe49
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:39.708 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:39.883 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:39.886 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:39.980 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:ddefc4e9-73fa-4a3c-8a51-44890141c818
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:40.192 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:40.195 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:40.266 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:40.520 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:ae25ee17-3a25-468d-b9bd-3fa8286fb38a
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:40.825 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:41.057 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:35b6194d-2306-4a52-a75b-8d12a6bc02f9
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:41.195 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:41.197 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:41.372 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:41.601 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:dc64f0b4-2d96-4cd1-8a26-7b420c63e725
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:41.896 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:41.898 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:41.918 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:42.146 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:87bec106-cd57-41ba-9950-b0f86eb70fc7
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:42.208 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:42.210 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:42.464 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:42.686 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:ba04f924-fed1-4ea2-860c-e818739eb077
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:43.018 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:43.227 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:43.227 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:d7cbbeec-f0af-40eb-9c4c-e7cfe8249ec1
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:43.228 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:43.562 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:43.769 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:a68bd98b-e2c0-40f6-8559-45e29b224eac
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:43.908 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:43.910 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:44.105 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:44.235 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:44.237 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:44.316 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:562c764e-92b4-46a0-b1bf-9aba7d5d0918
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:44.663 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:44.852 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:8a686eae-c2af-428b-a6f3-cb1132eeac0c
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:45.226 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:45.242 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:45.244 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:45.400 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:7ba18f34-3443-45d4-9bd6-b6139c8019db
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:45.784 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:45.912 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:45.914 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:45.941 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:bd7e9673-538a-49ed-a86c-c5356b234ee3
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:46.256 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:46.257 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:46.333 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:46.485 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:d1792bf4-c004-4bdb-bbe0-c011f0f79f40
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:46.883 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:47.027 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:0e0fb7bc-0384-409b-b7a8-9197cf124ae0
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:47.265 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:47.266 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:47.427 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:47.570 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:825d6a6a-8ba4-4281-8996-75cdfad5f6b3
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:47.915 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:47.917 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:47.967 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:48.112 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:edc0fc6c-95e8-406f-bed3-8dec987077cc
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:48.272 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:48.274 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:48.514 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:48.648 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:6171b0df-2229-4b9d-8f96-28591cbc0c9d
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:49.059 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:49.187 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:6d4ecca3-a9fd-4e95-9396-2a5109c16975
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:49.282 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:49.283 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:49.605 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:49.738 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:87a2a9da-62f0-4506-8e27-4045bc38f6be
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:49.923 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:49.924 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:50.152 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:50.282 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:93fd40d8-660f-44cb-a4df-63b1bef11cbf
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:50.300 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:50.301 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:50.694 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:50.824 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:84e61e58-6f8f-4ae3-9194-d5a7af3a79a2
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:51.241 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:51.310 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:51.312 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:51.369 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:bc797ae7-990b-4c3b-8d13-e8dbc73a46ab
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:51.781 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:51.914 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:8caa753d-a4ea-4a53-9b37-26cb410fd22c
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:51.931 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:51.933 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:52.321 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:52.323 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:52.326 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:52.459 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:be9eecc0-2777-47c9-9cb5-8aa87716ce17
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:52.869 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:52.999 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:8f0bbe44-2086-4e5f-bd08-0e8b6f374421
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:53.329 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:53.330 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:53.412 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:53.528 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:96370f64-cc42-49be-a2df-a4ba95623ffd
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:53.936 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:53.938 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:53.958 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:54.070 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:8f00a4c4-f117-4665-8489-6edce3f4f2eb
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:54.339 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:54.341 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:54.499 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:54.617 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:64e0d6e1-fa62-47dc-bccc-3fd4f01680da
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:55.046 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:55.162 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:593f9bae-f9f7-40fb-915f-b98f3d18f20c
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:55.347 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:55.349 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:55.585 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:55.701 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:2d1eb4d1-7969-4c0f-9788-30f8a0275740
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:55.953 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:55.954 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:56.135 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:56.253 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:a8d6feee-351b-47bf-b747-8e8f5d37748c
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:56.356 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:56.357 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:56.690 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:56.789 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:8b13d921-df0a-4d0e-afd6-aaf8a8f1c730
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:57.257 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:57.337 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:8be8528c-7072-42cc-8256-5a4e334b72bb
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:57.361 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:57.363 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:57.802 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:57.888 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:a29016df-b58e-472d-9c92-cea62976021f
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:57.963 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:57.966 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:58.361 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:58.365 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:58.367 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:58.431 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:77b3fb83-42a2-4d90-bad5-311ce1e9b07b
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:58.927 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:58.974 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:c1db4e84-600c-4601-a15d-e861219c5f7b
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:59.383 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:59.385 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:59.483 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:59.521 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:33f65f9d-7ad0-4098-979c-3e9f1395a692
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:06:59.981 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:06:59.983 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:00.041 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:00.060 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:c815148e-3ec8-40bf-83b8-f9429dc74f7b
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:00.402 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:00.403 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:00.603 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:00.607 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:c32f5b76-ed78-42e7-bb7b-91a87a0c13f3
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:01.147 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:dde37a89-d161-4b64-b5fd-76241198db8f
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:01.155 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:01.407 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:01.408 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:01.682 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:65182541-7d5d-492e-bd4f-ae0806f560fb
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:01.706 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:01.996 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:01.998 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:02.230 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:22c12a7d-1993-4947-a225-c706ffe79a67
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:02.256 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:02.411 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:02.413 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:02.770 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:aa318bd6-f039-4b8a-9d53-15d85f87f8e5
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:02.807 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:03.312 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:35d68d62-d901-4e19-ab8a-248fffdc6f67
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:03.368 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:03.430 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:03.434 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:03.870 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:42a17c85-d1e9-46da-aad4-7d30d8840410
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:03.917 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:04.013 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:04.016 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:04.415 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:73a4e84e-97cf-42b1-9753-3a6f8293a160
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:04.445 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:04.447 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:04.466 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:04.952 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:896e8301-db13-4bbf-9c5a-1beb3f2bb61f
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:05.021 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:05.448 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:05.450 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:05.495 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:67e00178-5b12-483b-89e5-a7c8621b7709
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:05.564 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:06.023 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:06.026 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:06.040 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:036275d8-cf5e-47e4-a0b4-429783223397
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:06.110 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:06.457 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:06.459 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:06.580 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:17c27524-6bdc-4293-b306-c03175f0cec0
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:06.652 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:07.122 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:2c036199-8120-4783-ae83-9a18e7bd837e
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:07.190 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:07.466 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:07.468 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:07.665 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:f26701b0-3298-4536-a14c-07b742d3cefa
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:07.737 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:08.039 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:08.041 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:08.209 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:773b2143-1af8-48ba-adab-0b47e93dd45d
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:08.279 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:08.473 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:08.476 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:08.755 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:a8e78364-98e8-4b3c-abb0-b183b586c6b3
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:08.824 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:09.300 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:b457d70b-4b5f-4900-bb2c-7eb2777f7618
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:09.368 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:09.488 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:09.490 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:09.842 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:62fc583d-4dda-4c27-a133-045bce77b4d2
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:09.910 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:10.043 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:10.044 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:10.382 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:7a397faf-d885-4aeb-9e5b-b69f7cd6908a
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:10.453 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:10.491 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:10.492 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:10.920 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:73fb41b2-4cea-49eb-b611-f9b069f2cb65
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:11.003 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:11.461 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:27e4dfad-5d75-486e-a1cf-c5ee848d0a40
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:11.507 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:11.509 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:11.543 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:12.003 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:fbfbfc41-4553-4a69-a961-ac0dec5c8800
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:12.050 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:12.051 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:12.087 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:12.515 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:12.516 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:12.542 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:c07ee015-e832-4963-8ac7-507e1268db13
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:12.629 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:13.087 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:d70e31e7-f1df-4897-9272-1f112991a8f3
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:13.175 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:13.520 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:13.521 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:13.623 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:0b9531f9-6694-4964-b7cc-7b2df6b34a4f
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:13.728 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:14.062 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:14.064 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:14.174 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:c1d2645c-2f28-4c37-9199-27569ccf2443
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:14.270 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:14.525 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:14.527 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:14.710 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:70fb6f4b-e860-4745-b283-92049ef789c7
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:14.815 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:15.258 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:ff654172-c7f3-4940-97e4-b62c9492c9c6
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:15.358 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:15.537 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:15.539 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:15.800 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:5d8864e5-29a8-44e3-a94d-49d3957162c8
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:15.900 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:16.077 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:16.079 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:16.339 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:b27e1585-e1fc-43f7-8939-7243744cbb2f
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:16.441 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:16.545 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:16.547 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:16.884 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:94a6fbfa-54a2-43e7-baad-a69cdf8510fb
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:16.986 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:17.427 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:f6702b99-da42-4b1b-9643-2b2ad7c4e339
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:17.527 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:17.552 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:17.554 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:17.971 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:ca5a0c13-7446-4b60-83a8-4597a122835f
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:18.070 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:18.080 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startTwoEdgTask(OpcEdgTask.java:42)
+	at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:18.081 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcEdgTask.startEdgTaskChild(OpcEdgTask.java:46)
+	at com.mes.job.OpcEdgTask.startOneEdgTask(OpcEdgTask.java:37)
+	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:18.509 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:c9e89cd5-be28-4773-9f1a-96dc826ebfed
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:18.554 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:18.556 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:18.623 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:19.075 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:b7423ff2-05a9-4935-9b35-88fb9793633e
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:19.166 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:19.562 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startOneOpcTask(OpcCacheGlassNewTask.java:107)
+	at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:19.563 [task-cache5] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+java.lang.NullPointerException: null
+	at com.mes.job.OpcCacheGlassNewTask.startTwoOpcTask(OpcCacheGlassNewTask.java:119)
+	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+2025-05-08 10:07:19.609 [Druid-ConnectionPool-Create-622938007] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;databasename=north_glass_mes, errorCode 18456, state S0001
+com.microsoft.sqlserver.jdbc.SQLServerException: 鐢ㄦ埛 'sa' 鐧诲綍澶辫触銆� ClientConnectionId:f876bff1-afee-4c87-a55f-29cf12db39e6
+	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
+	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)
+	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373)
+	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)
+	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)
+	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:623)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:19.707 [Druid-ConnectionPool-Create-1027623306] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-05-08 10:07:19.894 [task-cache9] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
+### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+### The error may exist in com/mes/engineering/mapper/EngineeringMapper.java (best guess)
+### The error may involve com.mes.engineering.mapper.EngineeringMapper.selectOne
+### The error occurred while executing a query
+### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)
+	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)
+	at com.sun.proxy.$Proxy118.selectOne(Unknown Source)
+	at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:159)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:90)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
+	at com.sun.proxy.$Proxy160.selectOne(Unknown Source)
+	at com.mes.edgstoragecage.service.impl.EdgStorageCageDetailsServiceImpl.queryCurrentCutDrawing(EdgStorageCageDetailsServiceImpl.java:89)
+	at com.mes.edgstoragecage.service.impl.EdgStorageCageDetailsServiceImpl$$FastClassBySpringCGLIB$$affee158.invoke(<generated>)
+	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
+	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
+	at com.mes.edgstoragecage.service.impl.EdgStorageCageDetailsServiceImpl$$EnhancerBySpringCGLIB$$71b17980.queryCurrentCutDrawing(<generated>)
+	at com.mes.job.PushMessageToIndex.currentCutDrawingTaskChild(PushMessageToIndex.java:109)
+	at com.mes.job.PushMessageToIndex.currentCutDrawingOneTask(PushMessageToIndex.java:100)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: org.apache.ibatis.exceptions.PersistenceException: 
+### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+### The error may exist in com/mes/engineering/mapper/EngineeringMapper.java (best guess)
+### The error may involve com.mes.engineering.mapper.EngineeringMapper.selectOne
+### The error occurred while executing a query
+### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76)
+	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 org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
+	... 26 common frames omitted
+Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81)
+	at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
+	at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
+	at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
+	at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.prepareStatement(MybatisSimpleExecutor.java:93)
+	at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:68)
+	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
+	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
+	at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.query(MybatisCachingExecutor.java:165)
+	at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:65)
+	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
+	at com.sun.proxy.$Proxy264.query(Unknown Source)
+	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 org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)
+	at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:93)
+	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
+	at com.sun.proxy.$Proxy264.query(Unknown Source)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
+	... 33 common frames omitted
+Caused by: java.sql.SQLException: null
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1465)
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionDirect(DruidDataSource.java:1248)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4619)
+	at com.alibaba.druid.filter.FilterAdapter.dataSource_getConnection(FilterAdapter.java:2745)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4615)
+	at com.alibaba.druid.filter.stat.StatFilter.dataSource_getConnection(StatFilter.java:680)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4615)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1226)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1218)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:90)
+	at com.baomidou.dynamic.datasource.ds.ItemDataSource.getConnection(ItemDataSource.java:53)
+	at com.baomidou.dynamic.datasource.ds.AbstractRoutingDataSource.getConnection(AbstractRoutingDataSource.java:44)
+	at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:157)
+	at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
+	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
+	... 53 common frames omitted
+Caused by: java.lang.InterruptedException: null
+	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:2014)
+	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2048)
+	at com.alibaba.druid.pool.DruidDataSource.takeLast(DruidDataSource.java:1892)
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1453)
+	... 67 common frames omitted
+2025-05-08 10:07:19.894 [task-cache4] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
+### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+### The error may exist in file [D:\work\YiWuProject\hangzhoumesParent\moduleService\CacheGlassModule\target\classes\mapper\EdgStorageDeviceTaskMapper.xml]
+### The error may involve com.mes.opctask.mapper.EdgStorageDeviceTaskMapper.queryTaskMessage
+### The error occurred while executing a query
+### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)
+	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)
+	at com.sun.proxy.$Proxy118.selectOne(Unknown Source)
+	at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:159)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:90)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
+	at com.sun.proxy.$Proxy174.queryTaskMessage(Unknown Source)
+	at com.mes.opctask.service.impl.EdgStorageDeviceTaskServiceImpl.queryTaskMessage(EdgStorageDeviceTaskServiceImpl.java:55)
+	at com.mes.job.OpcCacheGlassNewTask.edgTwoOpcTask(OpcCacheGlassNewTask.java:205)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: org.apache.ibatis.exceptions.PersistenceException: 
+### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+### The error may exist in file [D:\work\YiWuProject\hangzhoumesParent\moduleService\CacheGlassModule\target\classes\mapper\EdgStorageDeviceTaskMapper.xml]
+### The error may involve com.mes.opctask.mapper.EdgStorageDeviceTaskMapper.queryTaskMessage
+### The error occurred while executing a query
+### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76)
+	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 org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
+	... 21 common frames omitted
+Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81)
+	at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
+	at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
+	at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
+	at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.prepareStatement(MybatisSimpleExecutor.java:93)
+	at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:68)
+	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
+	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
+	at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.query(MybatisCachingExecutor.java:165)
+	at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:65)
+	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
+	at com.sun.proxy.$Proxy264.query(Unknown Source)
+	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 org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)
+	at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:93)
+	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
+	at com.sun.proxy.$Proxy264.query(Unknown Source)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
+	... 28 common frames omitted
+Caused by: java.sql.SQLException: null
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1465)
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionDirect(DruidDataSource.java:1248)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4619)
+	at com.alibaba.druid.filter.FilterAdapter.dataSource_getConnection(FilterAdapter.java:2745)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4615)
+	at com.alibaba.druid.filter.stat.StatFilter.dataSource_getConnection(StatFilter.java:680)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4615)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1226)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1218)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:90)
+	at com.baomidou.dynamic.datasource.ds.ItemDataSource.getConnection(ItemDataSource.java:53)
+	at com.baomidou.dynamic.datasource.ds.AbstractRoutingDataSource.getConnection(AbstractRoutingDataSource.java:44)
+	at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:157)
+	at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
+	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
+	... 48 common frames omitted
+Caused by: java.lang.InterruptedException: null
+	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:2014)
+	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2048)
+	at com.alibaba.druid.pool.DruidDataSource.takeLast(DruidDataSource.java:1892)
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1453)
+	... 62 common frames omitted
+2025-05-08 10:07:19.894 [task-cache10] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
+### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+### The error may exist in com/mes/engineering/mapper/EngineeringMapper.java (best guess)
+### The error may involve com.mes.engineering.mapper.EngineeringMapper.selectOne
+### The error occurred while executing a query
+### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)
+	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)
+	at com.sun.proxy.$Proxy118.selectOne(Unknown Source)
+	at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:159)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:90)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
+	at com.sun.proxy.$Proxy160.selectOne(Unknown Source)
+	at com.mes.edgstoragecage.service.impl.EdgStorageCageDetailsServiceImpl.queryCurrentCutDrawing(EdgStorageCageDetailsServiceImpl.java:89)
+	at com.mes.edgstoragecage.service.impl.EdgStorageCageDetailsServiceImpl$$FastClassBySpringCGLIB$$affee158.invoke(<generated>)
+	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
+	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
+	at com.mes.edgstoragecage.service.impl.EdgStorageCageDetailsServiceImpl$$EnhancerBySpringCGLIB$$71b17980.queryCurrentCutDrawing(<generated>)
+	at com.mes.job.PushMessageToIndex.currentCutDrawingTaskChild(PushMessageToIndex.java:109)
+	at com.mes.job.PushMessageToIndex.currentCutDrawingTwoTask(PushMessageToIndex.java:105)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: org.apache.ibatis.exceptions.PersistenceException: 
+### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+### The error may exist in com/mes/engineering/mapper/EngineeringMapper.java (best guess)
+### The error may involve com.mes.engineering.mapper.EngineeringMapper.selectOne
+### The error occurred while executing a query
+### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76)
+	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 org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
+	... 26 common frames omitted
+Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81)
+	at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
+	at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
+	at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
+	at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.prepareStatement(MybatisSimpleExecutor.java:93)
+	at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:68)
+	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
+	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
+	at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.query(MybatisCachingExecutor.java:165)
+	at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:65)
+	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
+	at com.sun.proxy.$Proxy264.query(Unknown Source)
+	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 org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)
+	at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:93)
+	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
+	at com.sun.proxy.$Proxy264.query(Unknown Source)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
+	... 33 common frames omitted
+Caused by: java.sql.SQLException: null
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1465)
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionDirect(DruidDataSource.java:1248)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4619)
+	at com.alibaba.druid.filter.FilterAdapter.dataSource_getConnection(FilterAdapter.java:2745)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4615)
+	at com.alibaba.druid.filter.stat.StatFilter.dataSource_getConnection(StatFilter.java:680)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4615)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1226)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1218)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:90)
+	at com.baomidou.dynamic.datasource.ds.ItemDataSource.getConnection(ItemDataSource.java:53)
+	at com.baomidou.dynamic.datasource.ds.AbstractRoutingDataSource.getConnection(AbstractRoutingDataSource.java:44)
+	at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:157)
+	at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
+	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
+	... 53 common frames omitted
+Caused by: java.lang.InterruptedException: null
+	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:2014)
+	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2048)
+	at com.alibaba.druid.pool.DruidDataSource.takeLast(DruidDataSource.java:1892)
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1453)
+	... 67 common frames omitted
+2025-05-08 10:07:19.894 [task-cache3] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
+### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+### The error may exist in file [D:\work\YiWuProject\hangzhoumesParent\common\servicebase\target\classes\mapper\LargenScreenMapper.xml]
+### The error may involve com.mes.largenscreen.mapper.LargenScreenMapper.queryDailyProduction
+### The error occurred while executing a query
+### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)
+	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)
+	at com.sun.proxy.$Proxy118.selectList(Unknown Source)
+	at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
+	at com.sun.proxy.$Proxy177.queryDailyProduction(Unknown Source)
+	at com.mes.largenscreen.service.impl.LargenScreenServiceImpl.querySameDayProduction(LargenScreenServiceImpl.java:49)
+	at com.mes.job.PushMessageToIndex.querySameDayProductionTask(PushMessageToIndex.java:154)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: org.apache.ibatis.exceptions.PersistenceException: 
+### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+### The error may exist in file [D:\work\YiWuProject\hangzhoumesParent\common\servicebase\target\classes\mapper\LargenScreenMapper.xml]
+### The error may involve com.mes.largenscreen.mapper.LargenScreenMapper.queryDailyProduction
+### The error occurred while executing a query
+### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
+	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 org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
+	... 22 common frames omitted
+Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81)
+	at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
+	at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
+	at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
+	at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.prepareStatement(MybatisSimpleExecutor.java:93)
+	at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:68)
+	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
+	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
+	at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.query(MybatisCachingExecutor.java:165)
+	at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:65)
+	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
+	at com.sun.proxy.$Proxy264.query(Unknown Source)
+	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 org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)
+	at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:93)
+	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
+	at com.sun.proxy.$Proxy264.query(Unknown Source)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
+	... 28 common frames omitted
+Caused by: java.sql.SQLException: null
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1465)
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionDirect(DruidDataSource.java:1248)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4619)
+	at com.alibaba.druid.filter.FilterAdapter.dataSource_getConnection(FilterAdapter.java:2745)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4615)
+	at com.alibaba.druid.filter.stat.StatFilter.dataSource_getConnection(StatFilter.java:680)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4615)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1226)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1218)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:90)
+	at com.baomidou.dynamic.datasource.ds.ItemDataSource.getConnection(ItemDataSource.java:53)
+	at com.baomidou.dynamic.datasource.ds.AbstractRoutingDataSource.getConnection(AbstractRoutingDataSource.java:44)
+	at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:157)
+	at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
+	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
+	... 48 common frames omitted
+Caused by: java.lang.InterruptedException: null
+	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:2014)
+	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2048)
+	at com.alibaba.druid.pool.DruidDataSource.takeLast(DruidDataSource.java:1892)
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1453)
+	... 62 common frames omitted
+2025-05-08 10:07:19.894 [task-cache1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
+### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+### The error may exist in file [D:\work\YiWuProject\hangzhoumesParent\moduleService\CacheGlassModule\target\classes\mapper\EdgStorageDeviceTaskMapper.xml]
+### The error may involve com.mes.opctask.mapper.EdgStorageDeviceTaskMapper.queryTaskMessage
+### The error occurred while executing a query
+### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)
+	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)
+	at com.sun.proxy.$Proxy118.selectOne(Unknown Source)
+	at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:159)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:90)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
+	at com.sun.proxy.$Proxy174.queryTaskMessage(Unknown Source)
+	at com.mes.opctask.service.impl.EdgStorageDeviceTaskServiceImpl.queryTaskMessage(EdgStorageDeviceTaskServiceImpl.java:55)
+	at com.mes.job.OpcCacheGlassNewTask.edgOneOpcTask(OpcCacheGlassNewTask.java:194)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: org.apache.ibatis.exceptions.PersistenceException: 
+### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+### The error may exist in file [D:\work\YiWuProject\hangzhoumesParent\moduleService\CacheGlassModule\target\classes\mapper\EdgStorageDeviceTaskMapper.xml]
+### The error may involve com.mes.opctask.mapper.EdgStorageDeviceTaskMapper.queryTaskMessage
+### The error occurred while executing a query
+### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76)
+	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 org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
+	... 21 common frames omitted
+Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81)
+	at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
+	at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
+	at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
+	at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.prepareStatement(MybatisSimpleExecutor.java:93)
+	at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:68)
+	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
+	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
+	at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.query(MybatisCachingExecutor.java:165)
+	at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:65)
+	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
+	at com.sun.proxy.$Proxy264.query(Unknown Source)
+	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 org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)
+	at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:93)
+	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
+	at com.sun.proxy.$Proxy264.query(Unknown Source)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
+	... 28 common frames omitted
+Caused by: java.sql.SQLException: null
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1465)
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionDirect(DruidDataSource.java:1248)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4619)
+	at com.alibaba.druid.filter.FilterAdapter.dataSource_getConnection(FilterAdapter.java:2745)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4615)
+	at com.alibaba.druid.filter.stat.StatFilter.dataSource_getConnection(StatFilter.java:680)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4615)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1226)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1218)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:90)
+	at com.baomidou.dynamic.datasource.ds.ItemDataSource.getConnection(ItemDataSource.java:53)
+	at com.baomidou.dynamic.datasource.ds.AbstractRoutingDataSource.getConnection(AbstractRoutingDataSource.java:44)
+	at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:157)
+	at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
+	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
+	... 48 common frames omitted
+Caused by: java.lang.InterruptedException: null
+	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:2014)
+	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2048)
+	at com.alibaba.druid.pool.DruidDataSource.takeLast(DruidDataSource.java:1892)
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1453)
+	... 62 common frames omitted
+2025-05-08 10:07:19.894 [task-cache8] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
+### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+### The error may exist in com/mes/edgstoragecage/mapper/EdgStorageCageMapper.java (best guess)
+### The error may involve com.mes.edgstoragecage.mapper.EdgStorageCageMapper.selectJoinList-com-mes-edgstoragecage-entity-vo-EdgStorageCageVO
+### The error occurred while executing a query
+### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)
+	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)
+	at com.sun.proxy.$Proxy118.selectList(Unknown Source)
+	at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
+	at com.sun.proxy.$Proxy151.selectJoinList(Unknown Source)
+	at com.github.yulichang.base.MPJBaseService.selectJoinList(MPJBaseService.java:68)
+	at com.mes.edgstoragecage.service.impl.EdgStorageCageServiceImpl.selectEdgStorageCagesByDeviceId(EdgStorageCageServiceImpl.java:68)
+	at com.mes.edgstoragecage.service.impl.EdgStorageCageServiceImpl$$FastClassBySpringCGLIB$$2bbec790.invoke(<generated>)
+	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
+	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
+	at com.mes.edgstoragecage.service.impl.EdgStorageCageServiceImpl$$EnhancerBySpringCGLIB$$bb16cf28.selectEdgStorageCagesByDeviceId(<generated>)
+	at com.mes.job.PushMessageToIndex.CacheGlassTasksChild(PushMessageToIndex.java:71)
+	at com.mes.job.PushMessageToIndex.CacheGlassTwoTasks(PushMessageToIndex.java:65)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: org.apache.ibatis.exceptions.PersistenceException: 
+### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+### The error may exist in com/mes/edgstoragecage/mapper/EdgStorageCageMapper.java (best guess)
+### The error may involve com.mes.edgstoragecage.mapper.EdgStorageCageMapper.selectJoinList-com-mes-edgstoragecage-entity-vo-EdgStorageCageVO
+### The error occurred while executing a query
+### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
+	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 org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
+	... 28 common frames omitted
+Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81)
+	at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
+	at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
+	at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
+	at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.prepareStatement(MybatisSimpleExecutor.java:93)
+	at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:68)
+	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
+	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
+	at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.query(MybatisCachingExecutor.java:165)
+	at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:65)
+	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
+	at com.sun.proxy.$Proxy264.query(Unknown Source)
+	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 org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)
+	at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:93)
+	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
+	at com.sun.proxy.$Proxy264.query(Unknown Source)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
+	... 34 common frames omitted
+Caused by: java.sql.SQLException: null
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1465)
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionDirect(DruidDataSource.java:1248)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4619)
+	at com.alibaba.druid.filter.FilterAdapter.dataSource_getConnection(FilterAdapter.java:2745)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4615)
+	at com.alibaba.druid.filter.stat.StatFilter.dataSource_getConnection(StatFilter.java:680)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4615)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1226)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1218)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:90)
+	at com.baomidou.dynamic.datasource.ds.ItemDataSource.getConnection(ItemDataSource.java:53)
+	at com.baomidou.dynamic.datasource.ds.AbstractRoutingDataSource.getConnection(AbstractRoutingDataSource.java:44)
+	at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:157)
+	at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
+	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
+	... 54 common frames omitted
+Caused by: java.lang.InterruptedException: null
+	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:2014)
+	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2048)
+	at com.alibaba.druid.pool.DruidDataSource.takeLast(DruidDataSource.java:1892)
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1453)
+	... 68 common frames omitted
+2025-05-08 10:07:19.896 [task-cache7] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
+### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+### The error may exist in com/mes/edgstoragecage/mapper/EdgStorageCageMapper.java (best guess)
+### The error may involve com.mes.edgstoragecage.mapper.EdgStorageCageMapper.selectJoinList-com-mes-edgstoragecage-entity-vo-EdgStorageCageVO
+### The error occurred while executing a query
+### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)
+	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)
+	at com.sun.proxy.$Proxy118.selectList(Unknown Source)
+	at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
+	at com.sun.proxy.$Proxy151.selectJoinList(Unknown Source)
+	at com.github.yulichang.base.MPJBaseService.selectJoinList(MPJBaseService.java:68)
+	at com.mes.edgstoragecage.service.impl.EdgStorageCageServiceImpl.selectEdgStorageCagesByDeviceId(EdgStorageCageServiceImpl.java:68)
+	at com.mes.edgstoragecage.service.impl.EdgStorageCageServiceImpl$$FastClassBySpringCGLIB$$2bbec790.invoke(<generated>)
+	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
+	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
+	at com.mes.edgstoragecage.service.impl.EdgStorageCageServiceImpl$$EnhancerBySpringCGLIB$$bb16cf28.selectEdgStorageCagesByDeviceId(<generated>)
+	at com.mes.job.PushMessageToIndex.CacheGlassTasksChild(PushMessageToIndex.java:71)
+	at com.mes.job.PushMessageToIndex.CacheGlassOneTasks(PushMessageToIndex.java:60)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: org.apache.ibatis.exceptions.PersistenceException: 
+### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+### The error may exist in com/mes/edgstoragecage/mapper/EdgStorageCageMapper.java (best guess)
+### The error may involve com.mes.edgstoragecage.mapper.EdgStorageCageMapper.selectJoinList-com-mes-edgstoragecage-entity-vo-EdgStorageCageVO
+### The error occurred while executing a query
+### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
+	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 org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
+	... 28 common frames omitted
+Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81)
+	at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
+	at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
+	at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
+	at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.prepareStatement(MybatisSimpleExecutor.java:93)
+	at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:68)
+	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
+	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
+	at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.query(MybatisCachingExecutor.java:165)
+	at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:65)
+	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
+	at com.sun.proxy.$Proxy264.query(Unknown Source)
+	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 org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)
+	at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:93)
+	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
+	at com.sun.proxy.$Proxy264.query(Unknown Source)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
+	... 34 common frames omitted
+Caused by: java.sql.SQLException: null
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1465)
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionDirect(DruidDataSource.java:1248)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4619)
+	at com.alibaba.druid.filter.FilterAdapter.dataSource_getConnection(FilterAdapter.java:2745)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4615)
+	at com.alibaba.druid.filter.stat.StatFilter.dataSource_getConnection(StatFilter.java:680)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4615)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1226)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1218)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:90)
+	at com.baomidou.dynamic.datasource.ds.ItemDataSource.getConnection(ItemDataSource.java:53)
+	at com.baomidou.dynamic.datasource.ds.AbstractRoutingDataSource.getConnection(AbstractRoutingDataSource.java:44)
+	at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:157)
+	at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
+	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
+	... 54 common frames omitted
+Caused by: java.lang.InterruptedException: null
+	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:2014)
+	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2048)
+	at com.alibaba.druid.pool.DruidDataSource.takeLast(DruidDataSource.java:1892)
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1453)
+	... 68 common frames omitted
+2025-05-08 10:07:19.896 [task-cache6] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
+### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+### The error may exist in com/mes/edgglasstask/mapper/EdgGlassTaskInfoMapper.java (best guess)
+### The error may involve com.mes.edgglasstask.mapper.EdgGlassTaskInfoMapper.selectList
+### The error occurred while executing a query
+### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)
+	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)
+	at com.sun.proxy.$Proxy118.selectList(Unknown Source)
+	at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
+	at com.sun.proxy.$Proxy147.selectList(Unknown Source)
+	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 org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
+	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
+	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
+	at com.baomidou.dynamic.datasource.aop.DynamicDataSourceAnnotationInterceptor.invoke(DynamicDataSourceAnnotationInterceptor.java:51)
+	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
+	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
+	at com.sun.proxy.$Proxy148.selectList(Unknown Source)
+	at com.baomidou.mybatisplus.extension.service.IService.list(IService.java:279)
+	at com.baomidou.mybatisplus.extension.service.IService$$FastClassBySpringCGLIB$$f8525d18.invoke(<generated>)
+	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
+	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
+	at com.mes.edgglasstask.service.impl.EdgGlassTaskInfoServiceImpl$$EnhancerBySpringCGLIB$$5c181c82.list(<generated>)
+	at com.mes.job.PushMessageToIndex.largenScreen(PushMessageToIndex.java:178)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: org.apache.ibatis.exceptions.PersistenceException: 
+### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+### The error may exist in com/mes/edgglasstask/mapper/EdgGlassTaskInfoMapper.java (best guess)
+### The error may involve com.mes.edgglasstask.mapper.EdgGlassTaskInfoMapper.selectList
+### The error occurred while executing a query
+### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
+	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 org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
+	... 37 common frames omitted
+Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81)
+	at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
+	at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
+	at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
+	at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.prepareStatement(MybatisSimpleExecutor.java:93)
+	at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:68)
+	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
+	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
+	at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.query(MybatisCachingExecutor.java:165)
+	at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:65)
+	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
+	at com.sun.proxy.$Proxy264.query(Unknown Source)
+	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 org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)
+	at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:93)
+	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
+	at com.sun.proxy.$Proxy264.query(Unknown Source)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
+	... 43 common frames omitted
+Caused by: java.sql.SQLException: null
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1465)
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionDirect(DruidDataSource.java:1248)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4619)
+	at com.alibaba.druid.filter.FilterAdapter.dataSource_getConnection(FilterAdapter.java:2745)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4615)
+	at com.alibaba.druid.filter.stat.StatFilter.dataSource_getConnection(StatFilter.java:680)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4615)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1226)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1218)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:90)
+	at com.baomidou.dynamic.datasource.ds.ItemDataSource.getConnection(ItemDataSource.java:53)
+	at com.baomidou.dynamic.datasource.ds.AbstractRoutingDataSource.getConnection(AbstractRoutingDataSource.java:44)
+	at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:157)
+	at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
+	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
+	... 63 common frames omitted
+Caused by: java.lang.InterruptedException: null
+	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:2014)
+	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2048)
+	at com.alibaba.druid.pool.DruidDataSource.takeLast(DruidDataSource.java:1892)
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1453)
+	... 77 common frames omitted
+2025-05-08 10:07:19.896 [task-cache2] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
+### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+### The error may exist in com/mes/sysconfig/mapper/SysConfigMapper.java (best guess)
+### The error may involve com.mes.sysconfig.mapper.SysConfigMapper.selectById
+### The error occurred while executing a query
+### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)
+	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)
+	at com.sun.proxy.$Proxy118.selectOne(Unknown Source)
+	at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:159)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:90)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
+	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
+	at com.sun.proxy.$Proxy142.selectById(Unknown Source)
+	at com.baomidou.mybatisplus.extension.service.IService.getById(IService.java:201)
+	at com.mes.sysconfig.service.impl.SysConfigServiceImpl.queryConfigById(SysConfigServiceImpl.java:44)
+	at com.mes.sysconfig.service.impl.SysConfigServiceImpl.queryConfigValue(SysConfigServiceImpl.java:69)
+	at com.mes.sysconfig.service.impl.SysConfigServiceImpl$$FastClassBySpringCGLIB$$d9164fdc.invoke(<generated>)
+	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
+	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
+	at com.mes.sysconfig.service.impl.SysConfigServiceImpl$$EnhancerBySpringCGLIB$$44496e26.queryConfigValue(<generated>)
+	at com.mes.edgglasstask.service.impl.EdgGlassTaskInfoServiceImpl.selectEdgInfo(EdgGlassTaskInfoServiceImpl.java:43)
+	at com.mes.edgglasstask.service.impl.EdgGlassTaskInfoServiceImpl$$FastClassBySpringCGLIB$$7417b86e.invoke(<generated>)
+	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
+	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
+	at com.mes.edgglasstask.service.impl.EdgGlassTaskInfoServiceImpl$$EnhancerBySpringCGLIB$$5c181c82.selectEdgInfo(<generated>)
+	at com.mes.job.PushMessageToIndex.CacheGlassTaskss(PushMessageToIndex.java:131)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: org.apache.ibatis.exceptions.PersistenceException: 
+### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+### The error may exist in com/mes/sysconfig/mapper/SysConfigMapper.java (best guess)
+### The error may involve com.mes.sysconfig.mapper.SysConfigMapper.selectById
+### The error occurred while executing a query
+### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76)
+	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 org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
+	... 32 common frames omitted
+Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException
+	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81)
+	at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
+	at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
+	at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
+	at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.prepareStatement(MybatisSimpleExecutor.java:93)
+	at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:68)
+	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
+	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
+	at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.query(MybatisCachingExecutor.java:165)
+	at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:65)
+	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
+	at com.sun.proxy.$Proxy264.query(Unknown Source)
+	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 org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)
+	at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:93)
+	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
+	at com.sun.proxy.$Proxy264.query(Unknown Source)
+	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
+	... 39 common frames omitted
+Caused by: java.sql.SQLException: null
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1465)
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionDirect(DruidDataSource.java:1248)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4619)
+	at com.alibaba.druid.filter.FilterAdapter.dataSource_getConnection(FilterAdapter.java:2745)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4615)
+	at com.alibaba.druid.filter.stat.StatFilter.dataSource_getConnection(StatFilter.java:680)
+	at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4615)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1226)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1218)
+	at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:90)
+	at com.baomidou.dynamic.datasource.ds.ItemDataSource.getConnection(ItemDataSource.java:53)
+	at com.baomidou.dynamic.datasource.ds.AbstractRoutingDataSource.getConnection(AbstractRoutingDataSource.java:44)
+	at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:157)
+	at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
+	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
+	... 59 common frames omitted
+Caused by: java.lang.InterruptedException: null
+	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:2014)
+	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2048)
+	at com.alibaba.druid.pool.DruidDataSource.takeLast(DruidDataSource.java:1892)
+	at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1453)
+	... 73 common frames omitted
diff --git a/logs/cacheGlass/web_info.log b/logs/cacheGlass/web_info.log
new file mode 100644
index 0000000..bf1e52b
--- /dev/null
+++ b/logs/cacheGlass/web_info.log
@@ -0,0 +1,64 @@
+2025-05-08 10:04:56.371 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$a178ea9a] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-08 10:04:59.653 [main] INFO  com.mes.CacheGlassModuleApplication - The following profiles are active: dev
+2025-05-08 10:05:02.810 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
+2025-05-08 10:05:02.819 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
+2025-05-08 10:05:03.102 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 234ms. Found 0 repository interfaces.
+2025-05-08 10:05:03.982 [main] INFO  o.springframework.cloud.context.scope.GenericScope - BeanFactory id=5928c4e4-edf2-3221-bbd8-17ffaef195b0
+2025-05-08 10:05:04.351 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$855ee79d] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-08 10:05:04.464 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'spring.datasource.dynamic-com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-08 10:05:04.472 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$eeed586e] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-08 10:05:04.921 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'dsProcessor' of type [com.baomidou.dynamic.datasource.processor.DsHeaderProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-08 10:05:05.008 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration' of type [org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration$$EnhancerBySpringCGLIB$$1e0cafd7] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-08 10:05:05.024 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'objectPostProcessor' of type [org.springframework.security.config.annotation.configuration.AutowireBeanFactoryObjectPostProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-08 10:05:05.034 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@6d0e45a5' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-08 10:05:05.047 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration' of type [org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration$$EnhancerBySpringCGLIB$$42e15289] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-08 10:05:05.067 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-08 10:05:05.214 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$a178ea9a] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-08 10:05:06.210 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 10011 (http)
+2025-05-08 10:05:06.253 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-10011"]
+2025-05-08 10:05:06.285 [main] INFO  org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-05-08 10:05:06.286 [main] INFO  org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.24]
+2025-05-08 10:05:06.303 [main] INFO  org.apache.catalina.core.AprLifecycleListener - Loaded APR based Apache Tomcat Native library [1.3.1] using APR version [1.7.4].
+2025-05-08 10:05:06.304 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
+2025-05-08 10:05:06.305 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
+2025-05-08 10:05:06.323 [main] INFO  org.apache.catalina.core.AprLifecycleListener - OpenSSL successfully initialized [OpenSSL 3.0.14 4 Jun 2024]
+2025-05-08 10:05:06.808 [main] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
+2025-05-08 10:05:06.808 [main] INFO  org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 7103 ms
+2025-05-08 10:05:07.126 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join properties config complete
+2025-05-08 10:05:07.579 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1,northGlassMes} inited
+2025-05-08 10:05:07.596 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-2,pp} inited
+2025-05-08 10:05:07.602 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-3,salve_northGlassMes} inited
+2025-05-08 10:05:07.602 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [pp] success
+2025-05-08 10:05:07.604 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [salve_northGlassMes] success
+2025-05-08 10:05:07.605 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [northGlassMes] success
+2025-05-08 10:05:07.605 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource initial loaded [3] datasource,primary datasource named [northGlassMes]
+2025-05-08 10:05:07.842 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join SqlInjector init
+2025-05-08 10:05:20.668 [main] INFO  s.d.s.w.WebMvcPropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [public org.springframework.http.ResponseEntity<springfox.documentation.spring.web.json.Json> springfox.documentation.swagger2.web.Swagger2ControllerWebMvc.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest)]
+2025-05-08 10:05:20.928 [main] INFO  o.s.security.web.DefaultSecurityFilterChain - Creating filter chain: any request, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@2375a976, org.springframework.security.web.context.SecurityContextPersistenceFilter@4f552aa2, org.springframework.security.web.header.HeaderWriterFilter@49cceb19, org.springframework.web.filter.CorsFilter@4bc21e34, org.springframework.security.web.authentication.logout.LogoutFilter@6acb45c1, com.mes.common.filter.JwtAuthenticationTokenFilter@70f85235, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@2295566b, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@43d6262c, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@15a484a9, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@7544260a, org.springframework.security.web.session.SessionManagementFilter@131d977f, org.springframework.security.web.access.ExceptionTranslationFilter@212e39ee, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@41e7a544]
+2025-05-08 10:05:21.006 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-05-08 10:05:21.020 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-05-08 10:05:21.651 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
+2025-05-08 10:05:25.246 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-05-08 10:05:25.400 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService
+2025-05-08 10:05:26.423 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService 'taskScheduler'
+2025-05-08 10:05:29.999 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-05-08 10:05:31.946 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Documentation plugins bootstrapped
+2025-05-08 10:05:31.961 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
+2025-05-08 10:05:32.125 [main] INFO  s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
+2025-05-08 10:05:33.033 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: listByStateUsingPOST_1
+2025-05-08 10:05:33.070 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: selectDamageUsingPOST_1
+2025-05-08 10:05:33.496 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-10011"]
+2025-05-08 10:05:33.612 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 10011 (http) with context path ''
+2025-05-08 10:05:33.813 [main] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - nacos registry, cacheGlass 26.246.64.36:10011 register finished
+2025-05-08 10:05:36.973 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-05-08 10:05:36.976 [main] INFO  com.mes.CacheGlassModuleApplication - Started CacheGlassModuleApplication in 47.259 seconds (JVM running for 50.006)
+2025-05-08 10:05:36.983 [main] INFO  com.mes.AppRunnerConfig - 鍚姩瀹屾垚
+2025-05-08 10:07:19.878 [Thread-86] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Shutting down ExecutorService 'taskScheduler'
+2025-05-08 10:07:19.882 [Thread-86] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - De-registering from Nacos Server now...
+2025-05-08 10:07:19.892 [Thread-86] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - De-registration finished.
+2025-05-08 10:07:19.896 [Thread-86] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Shutting down ExecutorService 'applicationTaskExecutor'
+2025-05-08 10:07:19.915 [Thread-86] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource start closing ....
+2025-05-08 10:07:19.933 [Thread-86] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-2} closed
+2025-05-08 10:07:19.933 [Thread-86] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1} closed
+2025-05-08 10:07:19.935 [Thread-86] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-3} closed
+2025-05-08 10:07:19.935 [Thread-86] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
diff --git a/logs/cacheGlass/web_warn.log b/logs/cacheGlass/web_warn.log
new file mode 100644
index 0000000..b3f7176
--- /dev/null
+++ b/logs/cacheGlass/web_warn.log
@@ -0,0 +1,49 @@
+2025-05-08 10:05:03.624 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'edgGlassTaskInfoMapper' and 'com.mes.edgglasstask.mapper.EdgGlassTaskInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.625 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'edgStorageCageDetailsMapper' and 'com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.626 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'edgStorageCageMapper' and 'com.mes.edgstoragecage.mapper.EdgStorageCageMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.627 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'edgStorageDeviceTaskHistoryMapper' and 'com.mes.opctask.mapper.EdgStorageDeviceTaskHistoryMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.627 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'edgStorageDeviceTaskMapper' and 'com.mes.opctask.mapper.EdgStorageDeviceTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.627 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'taskCacheMapper' and 'com.mes.taskcache.mapper.TaskCacheMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.628 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'bigStorageCageTaskMapper' and 'com.mes.bigstoragecagetask.mapper.BigStorageCageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.628 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'damageMapper' and 'com.mes.damage.mapper.DamageMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.628 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'engineeringMapper' and 'com.mes.engineering.mapper.EngineeringMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.629 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'glassInfoMapper' and 'com.mes.glassinfo.mapper.GlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.629 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'largenScreenMapper' and 'com.mes.largenscreen.mapper.LargenScreenMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.629 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskHistoryDao' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskHistoryDao' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.629 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskMapper' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.629 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderMapper' and 'com.mes.order.mapper.OrderMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.630 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderdetailMapper' and 'com.mes.order.mapper.OrderdetailMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.630 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'ordersMapper' and 'com.mes.order.mapper.OrdersMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.631 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'basicDataProduceMapper' and 'com.mes.pp.mapper.BasicDataProduceMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.631 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'flowCardMapper' and 'com.mes.pp.mapper.FlowCardMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.631 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeDetailMapper' and 'com.mes.pp.mapper.OptimizeDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.631 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatDetailMapper' and 'com.mes.pp.mapper.OptimizeHeatDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.632 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatLayoutMapper' and 'com.mes.pp.mapper.OptimizeHeatLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.632 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeLayoutMapper' and 'com.mes.pp.mapper.OptimizeLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.632 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeProjectMapper' and 'com.mes.pp.mapper.OptimizeProjectMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.632 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkDetailMapper' and 'com.mes.pp.mapper.ReportingWorkDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.633 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkMapper' and 'com.mes.pp.mapper.ReportingWorkMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.633 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'awaitingRepairMapper' and 'com.mes.pp.mapper.request.AwaitingRepairMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.633 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingDamageMapper' and 'com.mes.pp.mapper.request.ReportingDamageMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.633 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageDetailsMapper' and 'com.mes.rawglassdetails.mapper.RawGlassStorageDetailsMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.633 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageStationMapper' and 'com.mes.rawglassstation.mapper.RawGlassStorageStationMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.634 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageTaskMapper' and 'com.mes.rawglasstask.mapper.RawGlassStorageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.634 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysConfigMapper' and 'com.mes.sysconfig.mapper.SysConfigMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.634 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictDataMapper' and 'com.mes.sysdict.mapper.SysDictDataMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.635 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictTypeMapper' and 'com.mes.sysdict.mapper.SysDictTypeMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.635 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'temperingGlassInfoMapper' and 'com.mes.temperingglass.mapper.TemperingGlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.636 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upPattenUsageMapper' and 'com.mes.uppattenusage.mapper.UpPattenUsageMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.636 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'workAssignmentMapper' and 'com.mes.work_assignment.mapper.WorkAssignmentMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.636 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.mes.menu.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.636 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.mes.role.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.636 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.mes.role.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.636 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserMapper' and 'com.mes.userinfo.mapper.SysUserMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.637 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.mes.userinfo.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-05-08 10:05:03.638 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.mes.*.mapper]' package. Please check your configuration.
+2025-05-08 10:05:08.959 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.taskcache.entity.TaskCache".
+2025-05-08 10:05:09.709 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orders".
+2025-05-08 10:05:16.835 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orderdetail".
+2025-05-08 10:05:17.327 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.Reportingdamage".
+2025-05-08 10:05:17.417 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.AwaitingRepair".
+2025-05-08 10:05:21.005 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
+2025-05-08 10:05:21.020 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
diff --git a/logs/loadGlass/web_debug.log b/logs/loadGlass/web_debug.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/logs/loadGlass/web_debug.log
diff --git a/logs/loadGlass/web_error.log b/logs/loadGlass/web_error.log
new file mode 100644
index 0000000..992e5f3
--- /dev/null
+++ b/logs/loadGlass/web_error.log
@@ -0,0 +1,113007 @@
+2025-06-13 08:15:44.427 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:44.443 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:44.970 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:45.498 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:46.020 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:46.543 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:47.065 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:47.586 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:48.106 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:48.626 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:49.150 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:49.671 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:50.198 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:50.723 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:51.249 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:51.770 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:52.291 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:52.826 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:53.344 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:53.868 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:54.393 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:54.917 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:55.440 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:55.966 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:56.492 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:57.006 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:57.534 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:58.056 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:58.583 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:59.106 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:15:59.631 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:00.153 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:00.680 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:01.202 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:01.729 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:02.253 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:02.772 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:03.297 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:03.819 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:04.343 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:04.862 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:05.387 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:05.910 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:06.433 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:06.958 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:07.479 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:08.005 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:08.527 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:09.054 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:09.578 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:10.092 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:10.616 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:11.135 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:11.660 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:12.181 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:12.702 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:13.223 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:13.748 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:14.270 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:14.794 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:15.319 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:15.840 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:16.367 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:16.891 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:17.418 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:17.939 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:18.465 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:18.989 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:19.503 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:20.021 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:20.548 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:21.073 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:21.591 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:22.115 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:22.639 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:23.163 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:23.689 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:24.215 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:24.737 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:25.263 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:25.786 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:26.301 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:26.824 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:27.350 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:27.872 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:28.393 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:28.919 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:29.441 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:29.965 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:30.485 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:31.008 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:31.536 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:32.058 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:32.581 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:33.105 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:33.618 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:34.139 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:34.665 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:35.187 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:35.710 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:36.233 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:36.757 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:37.277 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:37.799 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:38.326 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:38.838 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:39.350 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:39.865 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:40.379 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:40.904 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:41.416 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:41.938 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:42.464 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:42.990 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:43.513 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:44.043 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:44.555 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:45.080 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:45.603 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:46.126 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:46.652 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:47.175 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:47.701 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:48.225 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:48.747 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:49.274 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:49.800 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:16:50.325 [Druid-ConnectionPool-Create-862090614] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1045, state 28000
+java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:17:53.627 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:17:53.642 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:17:54.157 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:17:54.683 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:17:55.208 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:17:55.728 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:17:56.247 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:17:56.774 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:17:57.298 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:17:57.826 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:17:58.346 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:17:58.875 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:17:59.398 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:17:59.919 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:00.436 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:00.962 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:01.485 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:02.012 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:02.533 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:03.063 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:03.585 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:04.111 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:04.643 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:05.164 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:05.688 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:06.213 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:06.738 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:07.265 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:07.792 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:08.310 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:08.832 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:09.354 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:09.883 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:10.408 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:10.935 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:11.462 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:11.988 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:12.508 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:13.037 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:13.668 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:14.181 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:14.705 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:15.231 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:15.752 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:16.280 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:16.803 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:17.328 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:17.855 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:18.378 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:18.902 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:19.417 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:19.929 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:20.454 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:20.967 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:21.496 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:22.016 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:22.537 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:23.061 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:23.581 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:24.095 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:24.622 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:25.133 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:25.656 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:26.169 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:26.693 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:27.219 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:27.742 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:28.255 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:28.779 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:29.304 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:29.819 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:30.342 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:30.868 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:31.393 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:31.908 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:32.421 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:32.950 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:33.470 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:34.000 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:34.526 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:35.058 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:35.574 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:36.097 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:36.623 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:37.149 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:37.674 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:38.186 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:38.709 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:39.222 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:39.749 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:40.261 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:40.773 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:41.284 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:41.811 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:42.333 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:42.847 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:43.372 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:43.896 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:44.419 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:44.944 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:45.470 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:45.998 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:46.523 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:47.048 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:47.561 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:48.082 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:48.606 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:49.129 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:49.654 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:50.176 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:50.697 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:51.223 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:51.750 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:52.264 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:52.786 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:53.299 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:53.813 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:54.340 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:54.863 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:55.387 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:55.909 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:56.435 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:56.957 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:57.484 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:58.008 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:58.532 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:59.057 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:18:59.582 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:00.105 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:00.628 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:01.152 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:01.665 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:02.192 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:02.706 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:03.230 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:03.757 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:04.281 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:04.806 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:05.334 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:05.856 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:06.381 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:06.899 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:07.421 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:07.944 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:08.466 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:08.991 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:09.513 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:10.026 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:10.538 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:11.051 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:11.570 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:12.093 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:12.617 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:13.130 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:13.654 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:14.168 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:14.692 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:15.204 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:15.720 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:16.242 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:16.768 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:17.294 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:17.809 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:18.328 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:18.851 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:19.378 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:19.904 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:20.415 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:20.927 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:21.439 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:21.967 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:22.488 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:23.009 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:23.535 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:24.057 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:24.579 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:25.094 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:25.617 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:26.142 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:26.661 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:27.178 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:27.697 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:28.209 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:28.734 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:29.256 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:29.770 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:30.291 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:30.815 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:31.341 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:31.853 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:32.382 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:32.899 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:33.424 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:33.948 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:34.460 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:34.971 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:35.495 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:36.020 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:36.543 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:37.065 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:37.590 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:38.102 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:38.624 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:39.149 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:39.662 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:40.174 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:40.704 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:41.223 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:41.742 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:42.266 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:42.789 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:43.313 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:43.838 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:44.358 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:44.881 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:45.404 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:45.918 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:46.442 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:46.965 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:47.486 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:48.000 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:48.521 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:49.043 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:49.567 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:50.088 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:50.602 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:51.127 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:51.654 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:52.169 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:52.693 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:53.214 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:53.726 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:54.250 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:54.776 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:55.290 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:55.814 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:56.326 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:56.850 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:57.367 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:57.891 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:58.415 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:58.938 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:59.465 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:19:59.989 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:20:00.510 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:20:01.032 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:20:01.543 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:20:02.056 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:20:02.581 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:20:03.103 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:20:03.624 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:20:04.145 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:20:04.669 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:20:05.181 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:20:05.707 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:20:06.234 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:20:06.760 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:20:07.285 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:20:07.808 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:20:08.332 [Druid-ConnectionPool-Create-1970590893] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/north_glass_mes?serverTimezone=GMT%2b8, errorCode 1049, state 42000
+java.sql.SQLSyntaxErrorException: Unknown database 'north_glass_mes'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:827)
+	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
+	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
+	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:149)
+	at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:786)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
+	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:143)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1515)
+	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
+	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2451)
+2025-06-13 08:21:05.979 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:21:16.011 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:21:26.019 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:21:36.035 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:21:46.055 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:21:56.062 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:22:06.070 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:22:16.085 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:22:26.098 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:22:36.109 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:22:46.126 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:22:56.146 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:23:06.153 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:23:42.755 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:23:52.763 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:24:02.800 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:24:12.809 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:24:22.845 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:24:32.860 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:24:42.893 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:24:52.899 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:25:02.931 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:25:12.947 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:25:22.973 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:25:32.985 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:25:43.016 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:25:53.027 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:26:03.048 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:26:13.051 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:26:23.074 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:26:33.076 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:26:43.135 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:26:53.149 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:27:03.174 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:27:13.190 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:27:23.215 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:27:33.229 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:27:43.250 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:27:53.256 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:28:03.272 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:28:13.275 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:28:23.296 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:28:33.303 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:28:43.318 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:28:53.324 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 08:29:03.349 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:29:13.357 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:29:23.383 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:29:33.395 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:29:43.418 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:29:53.426 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:30:03.451 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:30:13.460 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:30:23.478 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:30:33.479 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:30:43.497 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:30:53.499 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:31:03.517 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:31:13.524 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:31:23.548 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:31:33.560 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:31:43.585 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:31:53.601 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:32:03.619 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:32:13.624 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:32:23.636 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:32:33.648 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:32:43.663 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:32:53.667 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:33:03.698 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:33:13.710 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:33:23.738 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:33:33.749 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:33:43.765 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:33:53.781 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:34:03.797 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:34:13.805 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:34:23.820 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:34:33.828 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:34:43.855 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:34:53.862 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:35:03.880 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:35:13.887 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:35:23.908 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:35:33.918 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:35:43.937 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:35:53.946 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:36:03.970 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:36:13.974 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:36:24.003 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:36:34.020 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:36:44.035 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:36:54.042 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:37:04.068 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:37:14.069 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:37:24.090 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:37:34.094 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:37:44.114 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:37:54.132 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:38:04.149 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:38:14.154 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:38:24.176 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:38:34.192 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:38:44.218 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:38:54.231 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:39:04.264 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:39:14.280 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:39:24.301 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:39:34.314 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:39:44.341 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:39:54.345 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:40:04.373 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:40:14.383 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:40:24.394 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:40:34.399 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:40:44.418 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:40:54.427 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:41:04.451 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:41:14.462 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:41:24.483 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:41:34.497 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:41:44.521 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:41:54.527 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:42:04.543 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:42:14.545 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:42:24.559 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:42:34.562 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:42:44.580 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:42:54.592 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:43:04.607 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:43:14.617 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:43:24.633 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:43:34.639 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:43:44.656 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:43:54.658 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:44:04.675 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:44:14.689 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:44:24.715 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:44:34.724 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:44:44.744 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:44:54.756 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:45:04.770 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:45:14.774 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:45:24.790 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:45:34.796 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:45:44.816 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:45:54.821 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:46:04.838 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:46:14.841 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:46:24.854 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:46:34.863 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:46:44.892 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:46:54.897 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:47:04.918 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:47:14.921 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:47:24.935 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:47:34.948 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:47:44.965 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:47:54.976 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:48:04.999 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:48:15.016 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:48:25.036 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:48:35.047 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:48:45.064 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:48:55.078 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:49:05.098 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:49:15.105 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:49:25.116 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:49:35.133 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:49:45.157 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:49:55.168 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:50:05.181 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:50:15.190 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:50:25.214 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:50:35.231 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:50:45.245 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:50:55.262 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:51:05.287 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:51:15.303 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:51:25.323 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:51:35.340 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:51:45.357 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:51:55.373 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:52:05.387 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:52:15.400 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:52:25.415 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:52:35.424 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:52:45.436 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:52:55.448 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:53:05.464 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:53:15.467 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:53:25.481 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:53:35.491 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:53:45.506 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:53:55.521 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:54:05.540 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:54:15.547 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:54:25.574 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:54:35.590 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:54:45.600 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:54:55.605 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:55:05.618 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:55:15.622 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:55:25.645 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:55:35.658 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:55:45.677 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:55:55.694 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:56:05.709 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:56:15.710 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:56:25.724 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:56:35.727 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:56:45.751 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:56:55.754 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:57:05.772 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:57:15.782 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:57:25.794 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:57:35.806 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:57:45.826 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:57:55.832 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:58:05.844 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:58:15.847 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:58:25.859 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:58:35.862 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:58:45.877 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:58:55.887 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:59:05.907 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:59:15.918 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:59:25.942 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:59:35.957 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:59:45.980 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 08:59:55.996 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:00:06.022 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:00:16.027 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:00:26.052 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:00:36.061 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:00:46.086 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:00:56.093 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:01:06.116 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:01:16.119 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:01:26.137 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:01:36.140 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:01:46.169 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:01:56.185 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:02:06.206 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:02:16.211 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:02:26.221 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:02:36.236 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:02:46.249 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:02:56.256 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:03:06.278 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:03:16.283 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:03:26.304 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:03:36.310 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:03:46.332 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:03:56.340 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:04:06.362 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:04:16.372 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:04:26.399 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:04:36.401 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:04:46.424 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:04:56.432 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:05:06.453 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:05:16.470 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:05:26.491 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:05:36.509 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:05:46.524 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:05:56.532 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:06:06.548 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:06:16.553 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:06:26.572 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:06:36.582 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:06:46.607 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:06:56.622 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:07:06.639 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:07:16.644 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:07:26.666 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:07:36.682 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:07:46.699 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:07:56.714 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:08:06.735 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:08:16.739 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:08:26.759 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:08:36.770 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:08:46.783 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:08:56.792 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:09:06.808 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:09:16.816 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:09:26.833 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:09:36.847 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:09:46.862 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:09:56.866 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:10:06.882 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:10:16.896 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:10:26.915 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:10:36.921 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:10:46.942 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:10:56.956 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:11:06.979 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:11:16.985 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:11:27.004 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:11:37.013 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:11:47.031 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:11:57.047 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:12:07.058 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:12:17.074 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:12:27.086 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:12:37.089 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:12:47.102 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:12:57.118 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:13:07.133 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:13:17.148 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:13:27.159 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:13:37.169 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:13:47.187 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:13:57.194 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:14:07.215 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:14:17.221 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:14:27.249 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:14:37.265 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:14:47.287 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:14:57.296 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:15:07.322 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:15:17.329 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:15:27.350 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:15:37.362 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:15:47.378 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:15:57.394 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:16:07.404 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:16:17.409 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:16:27.433 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:16:37.446 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:16:47.468 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:16:57.477 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:17:07.488 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:17:17.494 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:17:27.512 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:17:37.527 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:17:47.547 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:17:57.560 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:18:07.577 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:18:17.580 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:18:27.606 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:18:37.610 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:18:47.621 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:18:57.625 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:19:07.648 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:19:17.655 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:19:27.679 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:19:37.685 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:19:47.697 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:19:57.707 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:20:07.731 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:20:17.747 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:20:27.761 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:20:37.778 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:20:47.793 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:20:57.809 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:21:07.825 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:21:17.828 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:21:27.840 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:21:37.847 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:21:47.860 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:21:57.875 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:22:07.890 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:22:17.895 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:22:27.919 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:22:37.922 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:22:47.936 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:22:57.952 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:23:07.975 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:23:17.980 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:23:27.993 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:23:38.004 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:23:48.026 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:23:58.034 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:24:08.046 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:24:18.050 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:24:28.066 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:24:38.079 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:24:48.096 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:24:58.109 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:25:08.121 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:25:18.128 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:25:28.141 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:25:38.147 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:25:48.168 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:25:58.170 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:26:08.193 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:26:18.197 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:26:28.210 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:26:38.217 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:26:48.228 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:26:58.236 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:27:08.249 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:27:18.264 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:27:28.279 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:27:38.282 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:27:48.300 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:27:58.308 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:28:08.329 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:28:18.341 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:28:28.355 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:28:38.372 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:28:48.396 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:28:58.404 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:29:08.428 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:29:18.442 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:29:28.464 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:29:38.476 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:29:48.487 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:29:58.491 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:30:08.509 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:30:18.511 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:30:28.536 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:30:38.552 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:30:48.570 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:30:58.580 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:31:08.591 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:31:18.601 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:31:28.615 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:31:38.623 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:31:48.640 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:31:58.653 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:32:08.669 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:32:18.680 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:32:28.694 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:32:38.708 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:32:48.739 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:32:58.748 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:33:08.768 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:33:18.770 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:33:28.796 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:33:38.810 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:33:48.829 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:33:58.841 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:34:08.865 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:34:18.868 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:34:28.893 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:34:38.906 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:34:48.925 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:34:58.933 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:35:08.952 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:35:18.960 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:35:28.971 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:35:38.985 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:35:49.006 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:35:59.021 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:36:09.052 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:36:19.065 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:36:29.090 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:36:39.093 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:36:49.119 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:36:59.132 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:37:09.144 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:37:19.151 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:37:29.161 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:37:39.168 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:37:49.185 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:37:59.198 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:38:09.215 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:38:19.219 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:38:29.233 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:38:39.244 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:38:49.256 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:38:59.270 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:39:09.287 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:39:19.293 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:39:29.312 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:39:39.315 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:39:49.331 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:39:59.335 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:40:09.354 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:40:19.366 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:40:29.390 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:40:39.398 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:40:49.410 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:40:59.417 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:41:09.442 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:41:19.454 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:41:29.472 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:41:39.478 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:41:49.489 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:41:59.504 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:42:09.522 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:42:19.533 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:42:29.544 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:42:39.558 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:42:49.577 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:42:59.587 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:43:09.613 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:43:19.629 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:43:29.648 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:43:39.669 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:43:49.684 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:43:59.695 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:44:09.715 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:44:19.733 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:44:29.756 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:44:32.506 [http-nio-10015-exec-1] ERROR o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
+java.lang.NullPointerException: null
+	at com.mes.userinfo.service.impl.SysUserServiceImpl.getUserAuthorityInfo(SysUserServiceImpl.java:180)
+	at com.mes.userinfo.service.impl.SysUserServiceImpl$$FastClassBySpringCGLIB$$2867d89d.invoke(<generated>)
+	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
+	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
+	at com.mes.userinfo.service.impl.SysUserServiceImpl$$EnhancerBySpringCGLIB$$2c4e57ee.getUserAuthorityInfo(<generated>)
+	at com.mes.common.filter.JwtAuthenticationTokenFilter.doFilterInternal(JwtAuthenticationTokenFilter.java:70)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:74)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
+	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
+	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)
+	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
+	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
+	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
+	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
+	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
+	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
+	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
+	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
+	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
+	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
+	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
+	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 09:44:32.506 [http-nio-10015-exec-8] ERROR o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
+java.lang.NullPointerException: null
+	at com.mes.userinfo.service.impl.SysUserServiceImpl.getUserAuthorityInfo(SysUserServiceImpl.java:180)
+	at com.mes.userinfo.service.impl.SysUserServiceImpl$$FastClassBySpringCGLIB$$2867d89d.invoke(<generated>)
+	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
+	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
+	at com.mes.userinfo.service.impl.SysUserServiceImpl$$EnhancerBySpringCGLIB$$2c4e57ee.getUserAuthorityInfo(<generated>)
+	at com.mes.common.filter.JwtAuthenticationTokenFilter.doFilterInternal(JwtAuthenticationTokenFilter.java:70)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:74)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
+	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
+	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)
+	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
+	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
+	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
+	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
+	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
+	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
+	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
+	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
+	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
+	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
+	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
+	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 09:44:38.557 [http-nio-10015-exec-2] ERROR o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
+java.lang.NullPointerException: null
+	at com.mes.userinfo.service.impl.SysUserServiceImpl.getUserAuthorityInfo(SysUserServiceImpl.java:180)
+	at com.mes.userinfo.service.impl.SysUserServiceImpl$$FastClassBySpringCGLIB$$2867d89d.invoke(<generated>)
+	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
+	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
+	at com.mes.userinfo.service.impl.SysUserServiceImpl$$EnhancerBySpringCGLIB$$2c4e57ee.getUserAuthorityInfo(<generated>)
+	at com.mes.common.filter.JwtAuthenticationTokenFilter.doFilterInternal(JwtAuthenticationTokenFilter.java:70)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:74)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
+	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
+	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)
+	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
+	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
+	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
+	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
+	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
+	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
+	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
+	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
+	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
+	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
+	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
+	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 09:44:38.557 [http-nio-10015-exec-5] ERROR o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
+java.lang.NullPointerException: null
+	at com.mes.userinfo.service.impl.SysUserServiceImpl.getUserAuthorityInfo(SysUserServiceImpl.java:180)
+	at com.mes.userinfo.service.impl.SysUserServiceImpl$$FastClassBySpringCGLIB$$2867d89d.invoke(<generated>)
+	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
+	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
+	at com.mes.userinfo.service.impl.SysUserServiceImpl$$EnhancerBySpringCGLIB$$2c4e57ee.getUserAuthorityInfo(<generated>)
+	at com.mes.common.filter.JwtAuthenticationTokenFilter.doFilterInternal(JwtAuthenticationTokenFilter.java:70)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:74)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
+	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
+	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)
+	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
+	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
+	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
+	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
+	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
+	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
+	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
+	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
+	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
+	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
+	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
+	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 09:44:39.760 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:44:49.799 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:44:59.807 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:45:09.826 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:45:19.836 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:45:29.863 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:45:39.869 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:45:49.906 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:45:59.919 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:46:09.949 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:46:19.964 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:46:29.985 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:46:39.996 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:46:50.013 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:47:00.026 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:47:10.063 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:47:20.067 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:47:30.087 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:47:40.111 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:47:50.134 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:48:00.152 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:48:10.185 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:48:20.192 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:48:22.012 [http-nio-10015-exec-6] ERROR o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
+java.lang.NullPointerException: null
+	at com.mes.userinfo.service.impl.SysUserServiceImpl.getUserAuthorityInfo(SysUserServiceImpl.java:180)
+	at com.mes.userinfo.service.impl.SysUserServiceImpl$$FastClassBySpringCGLIB$$2867d89d.invoke(<generated>)
+	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
+	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
+	at com.mes.userinfo.service.impl.SysUserServiceImpl$$EnhancerBySpringCGLIB$$2c4e57ee.getUserAuthorityInfo(<generated>)
+	at com.mes.common.filter.JwtAuthenticationTokenFilter.doFilterInternal(JwtAuthenticationTokenFilter.java:70)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:74)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
+	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
+	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)
+	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
+	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
+	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
+	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
+	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
+	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
+	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
+	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
+	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
+	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
+	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
+	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 09:48:22.024 [http-nio-10015-exec-4] ERROR o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
+java.lang.NullPointerException: null
+	at com.mes.userinfo.service.impl.SysUserServiceImpl.getUserAuthorityInfo(SysUserServiceImpl.java:180)
+	at com.mes.userinfo.service.impl.SysUserServiceImpl$$FastClassBySpringCGLIB$$2867d89d.invoke(<generated>)
+	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
+	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
+	at com.mes.userinfo.service.impl.SysUserServiceImpl$$EnhancerBySpringCGLIB$$2c4e57ee.getUserAuthorityInfo(<generated>)
+	at com.mes.common.filter.JwtAuthenticationTokenFilter.doFilterInternal(JwtAuthenticationTokenFilter.java:70)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:74)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
+	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
+	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)
+	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
+	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
+	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
+	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
+	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
+	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
+	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
+	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
+	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
+	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
+	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
+	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 09:48:30.222 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:48:40.240 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:48:50.256 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:49:00.270 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:49:10.301 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:49:20.313 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:49:30.334 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:49:40.338 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:49:50.370 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:50:19.453 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:50:29.463 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:50:39.490 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:50:49.508 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:50:59.535 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:51:09.541 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:51:19.567 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:51:29.574 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:51:39.599 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:51:49.617 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:51:59.638 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:52:09.648 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:52:19.689 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:52:29.698 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:52:39.715 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:52:49.718 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:52:59.728 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:53:09.745 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:53:19.765 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:53:29.783 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:53:39.802 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:53:49.810 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:53:59.821 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:54:09.839 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:54:19.855 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:54:29.870 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:54:39.892 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:54:49.901 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:54:59.925 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:55:09.936 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:55:19.954 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:55:29.965 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 09:55:39.977 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:55:49.986 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:56:00.002 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:56:10.016 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:56:20.040 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:56:30.058 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:56:40.076 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:56:50.081 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:57:00.102 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:57:10.117 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:57:20.128 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:57:30.142 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:57:40.167 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:57:50.179 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:58:00.198 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:58:10.211 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:58:20.225 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:58:30.234 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:58:40.261 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:58:50.272 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:59:00.292 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:59:10.308 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:59:20.323 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:59:30.341 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:59:40.356 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 09:59:50.368 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:00:00.383 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:00:10.388 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:00:20.405 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:00:30.410 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:00:40.420 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:00:50.427 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:01:00.443 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:01:10.450 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:01:20.465 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:01:30.476 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:01:40.486 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:01:50.502 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:02:00.516 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:02:10.525 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:02:20.536 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:02:30.545 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:02:40.567 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:02:50.573 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:03:00.596 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:03:10.610 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:03:20.629 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:03:30.632 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:03:40.651 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:03:50.665 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:04:00.684 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:04:10.691 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:04:20.711 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:04:30.717 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:04:40.726 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:04:48.362 [http-nio-10015-exec-2] ERROR o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
+java.lang.NullPointerException: null
+	at com.mes.userinfo.service.impl.SysUserServiceImpl.getUserAuthorityInfo(SysUserServiceImpl.java:180)
+	at com.mes.userinfo.service.impl.SysUserServiceImpl$$FastClassBySpringCGLIB$$2867d89d.invoke(<generated>)
+	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
+	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
+	at com.mes.userinfo.service.impl.SysUserServiceImpl$$EnhancerBySpringCGLIB$$6779f48e.getUserAuthorityInfo(<generated>)
+	at com.mes.common.filter.JwtAuthenticationTokenFilter.doFilterInternal(JwtAuthenticationTokenFilter.java:70)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:74)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
+	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
+	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)
+	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
+	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
+	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
+	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
+	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
+	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
+	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
+	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
+	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
+	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
+	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
+	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 10:04:50.732 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:05:00.753 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:05:10.768 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:05:20.778 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:05:30.790 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:05:40.798 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:05:50.806 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:06:00.827 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:06:10.837 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:06:17.480 [http-nio-10015-exec-2] ERROR o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
+java.lang.NullPointerException: null
+	at com.mes.userinfo.service.impl.SysUserServiceImpl.getUserAuthorityInfo(SysUserServiceImpl.java:180)
+	at com.mes.userinfo.service.impl.SysUserServiceImpl$$FastClassBySpringCGLIB$$2867d89d.invoke(<generated>)
+	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
+	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
+	at com.mes.userinfo.service.impl.SysUserServiceImpl$$EnhancerBySpringCGLIB$$6779f48e.getUserAuthorityInfo(<generated>)
+	at com.mes.common.filter.JwtAuthenticationTokenFilter.doFilterInternal(JwtAuthenticationTokenFilter.java:70)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:74)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
+	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
+	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
+	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)
+	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
+	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
+	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
+	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
+	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
+	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
+	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
+	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
+	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
+	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
+	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
+	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 10:06:20.852 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:06:30.866 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:06:40.887 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:06:50.897 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:07:00.909 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:07:10.917 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:07:20.925 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:07:30.938 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:07:40.946 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:07:50.952 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:08:00.978 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:08:10.983 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:08:20.991 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:08:31.005 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:08:41.023 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:08:51.027 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:09:01.038 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:09:11.044 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:09:21.067 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:09:31.083 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:09:41.096 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:09:51.108 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:10:01.116 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:10:11.131 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:10:21.152 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:10:31.162 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:10:41.173 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:10:51.186 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:11:01.207 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:11:11.224 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:11:21.240 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:11:31.253 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:11:41.274 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:11:51.287 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:12:01.300 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:12:11.311 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:12:21.330 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:12:31.349 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:12:41.365 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:12:51.371 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:13:01.382 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:13:11.398 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:13:21.409 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:13:31.418 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:13:41.440 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:13:51.448 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:14:01.458 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:14:11.470 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:14:21.483 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:14:31.487 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:14:41.502 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:14:51.516 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:15:01.530 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:15:11.545 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:15:21.555 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:15:31.561 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:15:41.569 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:15:51.573 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:16:01.585 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:16:11.594 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:16:21.605 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:16:31.621 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:16:41.641 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:16:51.653 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:17:01.664 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:17:11.669 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:17:21.680 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:17:31.689 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:17:41.702 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:17:51.715 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:18:01.726 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:18:11.740 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:18:21.758 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:18:31.773 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:18:41.788 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:18:51.809 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:19:01.827 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:19:11.840 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:19:21.861 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:19:31.873 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:19:41.893 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:19:51.898 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:20:01.913 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:20:11.925 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:20:21.932 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:20:31.946 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:20:41.960 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:20:51.965 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:21:01.978 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:21:11.990 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:21:21.999 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:21:32.015 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:21:42.038 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:21:52.044 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:22:02.056 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:22:12.063 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:22:22.080 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:22:32.097 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:22:42.107 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:22:52.113 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:23:02.129 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:23:12.141 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:23:22.162 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:23:32.173 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:23:42.190 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:23:52.196 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:24:02.211 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:24:12.225 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:24:22.241 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:24:32.244 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:24:40.641 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:24:50.646 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:25:00.664 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:25:10.671 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:25:20.684 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:25:30.693 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:25:40.712 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:25:50.722 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:26:00.741 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:26:10.743 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:26:20.758 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:26:30.762 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:26:40.782 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:26:50.784 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:27:00.801 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:27:10.811 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:27:20.821 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:27:30.825 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:27:40.835 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:27:50.844 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:28:00.865 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:28:10.876 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:28:20.888 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:28:30.898 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:28:40.910 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:28:50.918 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:29:00.929 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:29:10.943 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:29:20.960 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:29:30.973 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:29:40.985 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:29:51.002 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:30:01.025 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:30:11.035 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:30:21.057 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:30:31.068 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:30:41.088 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:30:51.096 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:31:01.113 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:31:11.127 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:31:21.144 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:31:31.159 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:31:41.173 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:31:51.182 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:32:01.201 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:32:11.207 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:32:21.233 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:32:31.240 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:32:41.255 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:32:51.258 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:33:01.277 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:33:11.293 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:33:21.314 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:33:31.327 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:33:41.343 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:33:51.351 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:34:01.369 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:34:11.384 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:34:21.403 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:34:31.416 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:34:41.433 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:34:51.440 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:35:01.457 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:35:11.464 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:35:21.476 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:35:31.480 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:35:41.488 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:35:51.491 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:36:01.503 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:36:11.507 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:36:21.523 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:36:31.532 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:36:41.539 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:36:51.551 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:37:01.569 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:37:11.581 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:37:21.602 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:37:31.613 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:37:41.628 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:37:51.635 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:38:01.650 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:38:11.666 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:38:21.679 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:38:31.693 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:38:41.712 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:38:51.725 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:39:01.747 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:39:11.763 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:39:21.788 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:39:31.801 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:39:41.810 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:39:51.820 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:40:01.833 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:40:11.849 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:40:21.867 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:40:31.873 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:40:41.895 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:40:51.908 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:41:01.930 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:41:11.935 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:41:21.953 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:41:31.965 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:41:41.978 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:41:51.986 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:42:01.997 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:42:12.001 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:42:22.015 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:42:32.023 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:42:42.044 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:42:52.061 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:43:02.069 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:43:12.085 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:43:22.105 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:43:32.112 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:43:42.123 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:43:52.135 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:44:02.153 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:44:12.171 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:44:22.187 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:44:32.206 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:44:42.222 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:44:52.244 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:45:02.276 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:45:12.288 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:45:22.316 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:45:32.323 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:45:42.343 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:45:52.351 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:46:02.380 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:46:12.386 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:46:22.412 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:46:32.416 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:46:42.432 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:46:52.453 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:47:02.473 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:47:12.481 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:47:22.498 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:47:32.511 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:47:42.525 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:47:52.533 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:48:02.553 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:48:12.562 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:48:22.582 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:48:32.596 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:48:42.617 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:48:52.629 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:49:02.647 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:49:12.660 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:49:22.690 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:49:32.697 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:49:42.723 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:49:52.733 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:50:02.764 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:50:12.774 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:50:22.792 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:50:32.797 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:50:42.818 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:50:52.836 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:51:02.861 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:51:12.878 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:51:22.891 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:51:32.900 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:51:42.933 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:51:52.950 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:52:02.969 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:52:12.987 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:52:23.003 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:52:33.026 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:52:43.046 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:52:53.058 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:53:03.093 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:53:13.110 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:53:23.132 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:53:33.148 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:53:43.167 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:53:53.182 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:54:03.206 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:54:13.218 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:54:23.241 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:54:33.246 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:54:43.273 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:54:53.279 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:55:03.301 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:55:13.317 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:55:23.338 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:55:33.352 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:55:43.371 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:55:53.390 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:56:03.414 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:56:13.427 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:56:23.447 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:56:33.466 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:56:43.493 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:56:53.507 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:57:03.534 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:57:13.552 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:57:23.576 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:57:33.593 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:57:43.613 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:57:53.639 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:58:03.660 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:58:13.669 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:58:23.699 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:58:33.707 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:58:43.739 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:58:53.750 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:59:03.766 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:59:13.775 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:59:23.804 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:59:33.818 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:59:43.841 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 10:59:53.854 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:00:03.882 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:00:13.899 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:00:23.920 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:00:33.942 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:00:43.964 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:00:53.982 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:01:04.011 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:01:14.021 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:01:24.047 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:01:34.053 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:01:44.070 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:01:54.093 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:02:04.117 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:02:14.134 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:02:24.152 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:02:34.175 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:02:44.194 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:02:54.211 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:03:04.229 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:03:14.241 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:03:24.259 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:03:34.281 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:03:44.311 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:03:54.331 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:04:04.350 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:04:14.369 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:04:24.395 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:04:34.412 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:04:44.425 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:04:54.447 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:05:04.457 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:05:14.463 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:05:24.481 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:05:34.488 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:05:44.507 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:05:54.519 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:06:04.545 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:06:14.559 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:06:24.575 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:06:34.596 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:06:44.614 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:06:54.618 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:07:04.638 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:07:14.656 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:07:24.672 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:07:34.680 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:07:44.708 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:07:54.717 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:08:04.743 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:08:14.762 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:08:24.786 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:08:34.801 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:08:44.826 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:08:54.842 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:09:04.863 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:09:14.871 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:09:24.882 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:09:34.904 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:09:44.926 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:09:54.944 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:10:04.971 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:10:14.974 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:10:24.994 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:10:35.006 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:10:45.028 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:10:55.037 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:11:05.049 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:11:15.062 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:11:25.098 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:11:35.114 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:11:45.138 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:11:55.154 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:12:05.183 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:12:15.193 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:12:25.224 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:12:35.231 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:12:45.247 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:12:55.259 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:13:05.271 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:13:15.274 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:13:25.290 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:13:35.303 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:13:45.316 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:13:55.320 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:14:05.359 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:14:15.362 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:14:25.383 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:14:35.400 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:14:45.418 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:14:55.428 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:15:05.446 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:15:15.453 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:15:25.468 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:15:35.473 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:15:45.487 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:15:55.495 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:16:05.518 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:16:15.528 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:16:25.549 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:16:35.569 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:16:45.591 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:16:55.597 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:17:05.617 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:17:15.628 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:17:25.648 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:17:35.663 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:17:45.683 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:17:55.697 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:18:05.723 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:18:15.740 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:18:25.751 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:18:35.756 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:18:45.778 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:18:55.788 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:19:05.802 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:19:15.819 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:19:25.844 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:19:35.856 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:19:45.877 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:19:55.884 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:20:05.904 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:20:15.916 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:20:25.924 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:20:35.930 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:20:45.945 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:20:55.950 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:21:05.974 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:21:15.993 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:21:26.016 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:21:36.026 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:21:46.040 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:21:56.045 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:22:06.069 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:22:16.083 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:22:26.108 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:22:36.114 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:22:46.134 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:22:56.141 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:23:06.162 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:23:16.169 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:23:26.192 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:23:36.195 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:23:46.218 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:23:56.235 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:24:06.255 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:24:16.260 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:24:26.299 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:24:36.315 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:24:46.334 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:24:56.349 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:25:06.363 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:25:16.376 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:25:26.407 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:25:36.416 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:25:46.438 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:25:56.452 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:26:06.467 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:26:16.482 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:26:26.501 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:26:36.509 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:26:46.534 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:26:56.537 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:27:06.570 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:27:16.574 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:27:26.590 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:27:36.607 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:27:46.631 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:27:56.637 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:28:06.648 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:28:16.657 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:28:26.677 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:28:36.705 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:28:46.720 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:28:56.726 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:29:06.749 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:29:16.767 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:29:26.783 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:29:36.787 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:29:46.810 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:29:56.821 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:30:06.837 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:30:16.848 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:30:26.861 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:30:36.869 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:30:46.899 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:30:56.913 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:31:06.940 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:31:16.950 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:31:26.979 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:31:36.988 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:31:47.009 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:31:57.025 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:32:07.035 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:32:17.052 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:32:27.079 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:32:37.083 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:32:47.102 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:32:57.115 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:33:07.144 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:33:17.153 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:33:27.172 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:33:37.186 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:33:47.200 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:33:57.212 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:34:07.229 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:34:17.243 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:34:27.254 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:34:37.271 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:34:47.281 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:34:57.300 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:35:07.328 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:35:17.339 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:35:27.365 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:35:37.383 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:35:47.399 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:35:57.410 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:36:07.425 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:36:17.444 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:36:27.461 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:36:37.474 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:36:47.501 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:36:57.518 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:37:07.539 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:37:17.554 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:37:27.573 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:37:37.591 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:37:47.607 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:37:57.614 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:38:07.623 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:38:17.638 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:38:27.658 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:38:37.670 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:38:47.691 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:38:57.704 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:39:07.730 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:39:17.736 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:39:27.756 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:39:37.764 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:39:47.781 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:39:57.789 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:40:07.803 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:40:17.810 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:40:27.822 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:40:37.840 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:40:47.859 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:40:57.874 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:41:07.904 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:41:17.916 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:41:27.938 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:41:37.944 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:41:47.956 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:41:57.963 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:42:07.994 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:42:18.001 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:42:28.028 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:42:38.033 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:42:48.054 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:42:58.067 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:43:08.094 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:43:18.119 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:43:28.145 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:43:38.155 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:43:48.165 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:43:58.184 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:44:08.199 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:44:18.220 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:44:28.230 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:44:38.239 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:44:48.262 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:44:58.279 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:45:08.295 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:45:18.310 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:45:28.328 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:45:38.341 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:45:48.363 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:45:58.371 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:46:08.386 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:46:18.412 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:46:28.422 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:46:38.434 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:46:48.448 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:46:58.453 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:47:08.473 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:47:18.490 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:47:28.517 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:47:38.531 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:47:48.546 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:47:58.560 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:48:08.581 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:48:18.595 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:48:28.622 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:48:38.638 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:48:48.650 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:48:58.655 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:49:08.668 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:49:18.682 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:49:28.701 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:49:38.716 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:49:48.729 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:49:58.734 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:50:08.743 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:50:18.756 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:50:28.768 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:50:38.782 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:50:48.805 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:50:58.814 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:51:08.824 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:51:18.832 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:51:28.852 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:51:38.859 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:51:48.874 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:51:58.883 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:52:08.908 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:52:18.927 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:52:28.952 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:52:38.963 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:52:48.980 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:52:58.993 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:53:09.016 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:53:19.021 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:53:29.034 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:53:39.045 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:53:49.062 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:53:59.081 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:54:09.095 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:54:19.111 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:54:29.127 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:54:39.138 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:54:49.156 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:54:59.170 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:55:09.180 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:55:19.197 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:55:29.210 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:55:39.223 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:55:49.230 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:55:59.246 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:56:09.262 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:56:19.281 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:56:29.301 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:56:39.317 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:56:49.328 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:56:59.332 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:57:09.350 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:57:19.367 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:57:29.387 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:57:39.394 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:57:49.405 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:57:59.413 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:58:09.431 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:58:19.449 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:58:29.466 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:58:39.484 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:58:49.510 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:58:59.523 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:59:09.536 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:59:19.566 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:59:29.585 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:59:39.594 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:59:49.610 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 11:59:59.621 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:00:09.639 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:00:19.647 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:00:29.670 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:00:39.686 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:00:49.711 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:00:59.725 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:01:09.743 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:01:19.759 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:01:29.771 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:01:39.783 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:01:49.803 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:01:59.808 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:02:09.838 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:02:19.845 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:02:29.862 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:02:39.882 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:02:49.897 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:02:59.909 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:03:09.923 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:03:19.941 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:03:29.967 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:03:39.983 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:03:50.000 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:04:00.022 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:04:10.037 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:04:20.039 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:04:30.058 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:04:40.073 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:04:50.093 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:05:00.109 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:05:10.130 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:05:20.134 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:05:30.143 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:05:40.154 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:05:50.166 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:06:00.179 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:06:10.203 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:06:20.207 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:06:30.226 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:06:40.231 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:06:50.244 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:07:00.259 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:07:10.287 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:07:20.296 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:07:30.337 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:07:40.345 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:07:50.355 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:08:00.365 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:08:10.381 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:08:20.383 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:08:30.412 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:08:40.416 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:08:50.439 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:09:00.455 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:09:10.501 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:09:20.507 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:09:30.523 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:09:40.546 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:09:50.572 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:10:00.588 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:10:10.604 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:10:20.610 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:10:30.630 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:10:40.634 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:10:50.654 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:11:00.672 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:11:10.681 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:11:20.696 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:11:30.726 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:11:40.735 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:11:50.764 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:12:00.774 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:12:10.809 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:12:20.815 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:12:30.839 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:12:40.853 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:12:50.862 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:13:00.875 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:13:10.894 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:13:20.905 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:13:30.932 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:13:40.935 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:13:50.954 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:14:00.963 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:14:10.985 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:14:20.991 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:14:31.011 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:14:41.026 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:14:51.055 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:15:01.064 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:15:11.093 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:15:21.103 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:15:31.124 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:15:41.127 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:15:51.139 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:16:01.151 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:16:11.163 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:16:21.175 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:16:31.187 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:16:41.204 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:16:51.228 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:17:01.241 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:17:11.261 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:17:21.273 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:17:31.288 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:17:41.303 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:17:51.317 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:18:01.329 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:18:11.343 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:18:21.353 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:18:31.366 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:18:41.379 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:18:51.391 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:19:01.410 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:19:11.431 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:19:21.438 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:19:31.470 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:19:41.475 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:19:51.515 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:20:01.522 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:20:11.539 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:20:21.551 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:20:31.569 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:20:41.589 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:20:51.606 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:21:01.619 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:21:11.638 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:21:21.643 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:21:31.668 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:21:41.672 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:21:51.691 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:22:01.710 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:22:11.724 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:22:21.730 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:22:31.769 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:22:41.781 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:22:51.806 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:23:01.823 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:23:11.847 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:23:21.850 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:23:31.879 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:23:41.885 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:23:51.904 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:24:01.917 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:24:11.930 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:24:21.945 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:24:31.963 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:24:41.968 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:24:51.979 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:25:01.991 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:25:12.009 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:25:22.022 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:25:32.046 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:25:42.050 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:25:52.076 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:26:02.091 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:26:12.104 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:26:22.107 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:26:32.127 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:26:42.134 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:26:52.162 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:27:02.178 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:27:12.190 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:27:22.207 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:27:32.231 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:27:42.239 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:27:52.253 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:28:02.264 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:28:12.287 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:28:22.292 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:28:32.315 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:28:42.325 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:28:52.334 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:29:02.355 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:29:12.369 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:29:22.386 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:29:32.418 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:29:42.431 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:29:52.463 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:30:02.483 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:30:12.498 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:30:22.513 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:30:32.546 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:30:42.560 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:30:52.569 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:31:02.584 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:31:12.606 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:31:22.621 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:31:32.641 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:31:42.653 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:31:52.663 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:32:02.670 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:32:12.689 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:32:22.694 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:32:32.710 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:32:42.715 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:32:52.730 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:33:02.739 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:33:12.748 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:33:22.752 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:33:32.766 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:33:42.781 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:33:52.802 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:34:02.818 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:34:12.836 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:34:22.843 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:34:32.857 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:34:42.869 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:34:52.888 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:35:02.898 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:35:12.918 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:35:22.931 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:35:32.954 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:35:42.973 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:35:52.987 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:36:02.991 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 12:36:13.014 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:26:23.156 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:26:33.167 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:26:43.195 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:26:53.213 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:27:03.230 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:27:13.246 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:27:23.278 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:27:33.292 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:27:43.307 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:27:53.310 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:28:03.324 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:28:13.332 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:28:23.352 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:28:33.370 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:28:43.405 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:28:53.409 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:29:03.436 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:29:13.446 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:29:23.520 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:29:33.536 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:29:43.560 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:29:47.177 [main] ERROR org.apache.catalina.util.LifecycleBase - Failed to start component [Connector[HTTP/1.1-10015]]
+org.apache.catalina.LifecycleException: Protocol handler start failed
+	at org.apache.catalina.connector.Connector.startInternal(Connector.java:1008)
+	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
+	at org.apache.catalina.core.StandardService.addConnector(StandardService.java:227)
+	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:263)
+	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:195)
+	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.startWebServer(ServletWebServerApplicationContext.java:297)
+	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:163)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:552)
+	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141)
+	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:744)
+	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:391)
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:312)
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215)
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1204)
+	at com.mes.LoadGlassModuleApplication.main(LoadGlassModuleApplication.java:24)
+Caused by: java.net.BindException: Address already in use: bind
+	at sun.nio.ch.Net.bind0(Native Method)
+	at sun.nio.ch.Net.bind(Net.java:433)
+	at sun.nio.ch.Net.bind(Net.java:425)
+	at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
+	at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
+	at org.apache.tomcat.util.net.NioEndpoint.initServerSocket(NioEndpoint.java:230)
+	at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:213)
+	at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1124)
+	at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1210)
+	at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:585)
+	at org.apache.catalina.connector.Connector.startInternal(Connector.java:1005)
+	... 14 common frames omitted
+2025-06-13 13:29:47.221 [main] ERROR o.s.b.diagnostics.LoggingFailureAnalysisReporter - 
+
+***************************
+APPLICATION FAILED TO START
+***************************
+
+Description:
+
+The Tomcat connector configured to listen on port 10015 failed to start. The port may already be in use or the connector may be misconfigured.
+
+Action:
+
+Verify the connector's configuration, identify and stop any process that's listening on port 10015, or configure this application to listen on another port.
+
+2025-06-13 13:29:53.571 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:30:03.598 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:30:13.604 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:30:23.618 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:30:33.638 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:30:43.655 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:30:53.662 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:31:03.685 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:31:13.699 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:31:23.722 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:31:33.731 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:31:43.745 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor188.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:31:53.754 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:32:03.779 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor188.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:32:13.794 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:32:23.808 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor188.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:32:33.825 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:32:43.850 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor188.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:32:53.859 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:33:03.885 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor188.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:39:16.915 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:39:26.927 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:39:36.958 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:39:46.970 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:39:56.999 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:40:07.014 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:40:17.068 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:40:27.082 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:40:37.106 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:40:47.115 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:40:57.131 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:41:07.137 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:41:17.152 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:41:27.163 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:41:37.182 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:41:47.199 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:41:57.217 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:42:07.223 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:42:17.247 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:42:27.258 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:42:37.271 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:42:47.282 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:42:57.302 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:43:07.305 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:43:17.321 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:43:27.330 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:43:37.354 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:43:47.356 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:43:57.371 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:44:07.383 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:44:17.406 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:44:27.412 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 13:44:37.433 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:44:47.439 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:44:57.461 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:45:07.473 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:45:17.485 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:45:27.492 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:45:37.511 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:45:47.516 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:45:57.541 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:46:07.556 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:46:17.582 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:46:27.589 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:46:37.607 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:46:47.622 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:46:57.637 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:47:07.640 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:47:17.657 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:47:27.659 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:47:37.684 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:47:47.693 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:47:57.713 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:48:07.727 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:48:17.752 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:48:27.757 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:48:37.772 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:48:47.787 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:48:57.805 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:49:07.823 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:49:17.843 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:49:27.851 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:49:37.875 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:49:47.890 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:49:57.906 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:50:07.910 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:50:17.935 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:50:27.942 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:50:37.959 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:50:47.975 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:50:57.997 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:51:08.006 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:51:18.021 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:51:28.030 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:51:38.054 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:51:48.067 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:51:58.093 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:52:08.106 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:52:18.118 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:52:28.127 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:52:38.151 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:52:48.154 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:52:58.172 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:53:08.187 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:53:18.207 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:53:28.217 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:53:38.231 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:53:48.248 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:53:58.265 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:54:08.268 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:54:18.289 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:54:28.306 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:54:38.327 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:54:48.330 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:54:58.344 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:55:08.361 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:55:18.383 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:55:28.399 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:55:38.421 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:55:48.438 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:55:58.448 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:56:08.455 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:56:18.476 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:56:28.489 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:56:38.512 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:56:48.521 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:56:58.535 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:57:08.551 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:57:18.574 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:57:28.586 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:57:38.598 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:57:48.611 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:57:58.621 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:58:08.629 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:58:18.651 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:58:28.667 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:58:38.690 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:58:48.693 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:58:58.717 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:59:08.732 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:59:18.759 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:59:28.777 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:59:38.791 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:59:48.792 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 13:59:58.810 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:00:08.821 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:00:18.835 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:00:28.850 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:00:38.865 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:00:48.874 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:00:58.891 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:01:08.901 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:01:18.917 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:01:28.930 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:01:38.946 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:01:48.949 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:01:58.963 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:02:08.974 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:02:18.998 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:02:29.014 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:02:39.029 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:02:49.033 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:02:59.054 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:03:09.059 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:03:19.073 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:03:29.077 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:03:39.101 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:03:49.111 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:03:59.126 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:04:09.133 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:04:19.144 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:04:29.160 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:04:39.183 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:04:49.186 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:04:59.204 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:05:09.206 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:05:19.227 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:05:29.238 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:05:39.264 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:05:49.267 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:05:59.286 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:06:09.295 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:06:19.309 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:06:29.313 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:06:39.332 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:06:49.340 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:06:59.385 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:07:09.398 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:07:19.443 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:07:29.462 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:07:39.506 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:07:49.111 [milo-netty-event-loop-1] ERROR o.e.m.o.s.c.t.uasc.UascClientMessageHandler - [remote=/10.153.19.150:49320] Exception caught: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+	at sun.nio.ch.SocketDispatcher.read0(Native Method)
+	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
+	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
+	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
+	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
+	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
+	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
+	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
+	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
+	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
+	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
+	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 14:07:49.512 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:07:59.528 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:08:09.532 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:08:09.797 [milo-netty-event-loop-3] ERROR o.e.m.o.s.c.t.uasc.UascClientMessageHandler - [remote=/10.153.19.150:49320] Exception caught: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+	at sun.nio.ch.SocketDispatcher.read0(Native Method)
+	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
+	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
+	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
+	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
+	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
+	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
+	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
+	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
+	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
+	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
+	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 14:08:09.891 [milo-netty-event-loop-5] ERROR o.e.m.o.s.c.t.uasc.UascClientMessageHandler - [remote=/10.153.19.150:49320] Exception caught: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+	at sun.nio.ch.SocketDispatcher.read0(Native Method)
+	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
+	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
+	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
+	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
+	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
+	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
+	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
+	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
+	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
+	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
+	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 14:08:19.549 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:08:29.565 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:08:39.619 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:08:49.624 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:08:59.646 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:09:09.666 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:09:19.685 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:09:29.702 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:09:39.726 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:09:40.328 [milo-netty-event-loop-10] ERROR o.e.m.o.s.c.t.uasc.UascClientMessageHandler - [remote=/10.153.19.150:49320] Exception caught: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+	at sun.nio.ch.SocketDispatcher.read0(Native Method)
+	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
+	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
+	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
+	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
+	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
+	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
+	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
+	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
+	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
+	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
+	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 14:09:49.741 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:09:51.543 [milo-netty-event-loop-9] ERROR o.e.m.o.s.c.t.uasc.UascClientMessageHandler - [remote=/10.153.19.150:49320] Exception caught: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+	at sun.nio.ch.SocketDispatcher.read0(Native Method)
+	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
+	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
+	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
+	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
+	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
+	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
+	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
+	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
+	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
+	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
+	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 14:09:59.767 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:10:09.772 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:10:19.796 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:10:29.804 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:10:33.560 [milo-netty-event-loop-8] ERROR o.e.m.o.s.c.t.uasc.UascClientMessageHandler - [remote=/10.153.19.150:49320] Exception caught: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+	at sun.nio.ch.SocketDispatcher.read0(Native Method)
+	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
+	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
+	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
+	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
+	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
+	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
+	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
+	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
+	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
+	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
+	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 14:10:39.819 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:10:49.826 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:10:59.848 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:11:09.856 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:11:19.873 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:11:29.888 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:11:39.904 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:11:49.907 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:11:59.925 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:12:09.930 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:12:19.950 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:12:27.487 [milo-netty-event-loop-15] ERROR o.e.m.o.s.c.t.uasc.UascClientMessageHandler - [remote=/10.153.19.150:49320] Exception caught: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+	at sun.nio.ch.SocketDispatcher.read0(Native Method)
+	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
+	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
+	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
+	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
+	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
+	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
+	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
+	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
+	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
+	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
+	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 14:12:29.965 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:12:39.977 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:12:49.979 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:13:00.000 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:13:10.003 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:13:20.017 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:13:30.028 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:13:40.045 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:13:50.049 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:14:00.061 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:14:10.077 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:14:20.099 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:14:22.545 [milo-netty-event-loop-12] ERROR o.e.m.o.s.c.t.uasc.UascClientMessageHandler - [remote=/10.153.19.150:49320] Exception caught: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+	at sun.nio.ch.SocketDispatcher.read0(Native Method)
+	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
+	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
+	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
+	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
+	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
+	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
+	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
+	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
+	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
+	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
+	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 14:14:30.103 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:14:40.116 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:14:50.121 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:15:00.144 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:15:10.161 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:15:11.264 [milo-netty-event-loop-22] ERROR o.e.m.o.s.c.t.uasc.UascClientMessageHandler - [remote=/10.153.19.150:49320] Exception caught: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+	at sun.nio.ch.SocketDispatcher.read0(Native Method)
+	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
+	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
+	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
+	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
+	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
+	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
+	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
+	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
+	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
+	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
+	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 14:15:20.171 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:15:30.178 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:15:40.191 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:15:50.204 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:16:00.219 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:16:10.231 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:16:20.255 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:16:30.271 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:16:40.285 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:16:50.299 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:17:00.311 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:17:10.314 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:17:20.341 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:17:30.352 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:17:40.373 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:17:50.383 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:18:00.397 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:18:10.415 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:18:20.442 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:18:30.451 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:18:40.471 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:18:50.488 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:19:00.514 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:19:10.522 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:19:20.539 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:19:30.556 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:19:40.586 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:19:50.601 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:20:00.624 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:20:10.629 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:20:20.647 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:20:30.658 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:20:40.330 [milo-netty-event-loop-20] ERROR o.e.m.o.s.c.t.uasc.UascClientMessageHandler - [remote=/10.153.19.150:49320] Exception caught: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+	at sun.nio.ch.SocketDispatcher.read0(Native Method)
+	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
+	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
+	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
+	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
+	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
+	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
+	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
+	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
+	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
+	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
+	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 14:20:40.678 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:20:41.582 [milo-netty-event-loop-19] ERROR o.e.m.o.s.c.t.uasc.UascClientMessageHandler - [remote=/10.153.19.150:49320] Exception caught: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+	at sun.nio.ch.SocketDispatcher.read0(Native Method)
+	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
+	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
+	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
+	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
+	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
+	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
+	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
+	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
+	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
+	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
+	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 14:20:42.081 [milo-netty-event-loop-27] ERROR o.e.m.o.s.c.t.uasc.UascClientMessageHandler - [remote=/10.153.19.150:49320] Exception caught: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+	at sun.nio.ch.SocketDispatcher.read0(Native Method)
+	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
+	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
+	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
+	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
+	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
+	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
+	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
+	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
+	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
+	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
+	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 14:20:50.698 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:21:00.725 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:21:04.786 [milo-netty-event-loop-29] ERROR o.e.m.o.s.c.t.uasc.UascClientMessageHandler - [remote=/10.153.19.150:49320] Exception caught: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+	at sun.nio.ch.SocketDispatcher.read0(Native Method)
+	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
+	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
+	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
+	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
+	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
+	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
+	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
+	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
+	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
+	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
+	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 14:21:10.733 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:21:13.559 [milo-netty-event-loop-31] ERROR o.e.m.o.s.c.t.uasc.UascClientMessageHandler - [remote=/10.153.19.150:49320] Exception caught: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+	at sun.nio.ch.SocketDispatcher.read0(Native Method)
+	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
+	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
+	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
+	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
+	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
+	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
+	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
+	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
+	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
+	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
+	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 14:21:20.755 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:21:30.773 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:21:40.790 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:21:50.796 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:22:00.825 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:22:10.833 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:22:20.863 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:22:30.879 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:22:40.906 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:22:50.916 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:23:00.951 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:23:10.966 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:23:20.991 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:23:29.409 [milo-netty-event-loop-1] ERROR o.e.m.o.s.c.t.uasc.UascClientMessageHandler - [remote=/10.153.19.150:49320] Exception caught: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+	at sun.nio.ch.SocketDispatcher.read0(Native Method)
+	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
+	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
+	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
+	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
+	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
+	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
+	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
+	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
+	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
+	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
+	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 14:23:31.021 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:23:41.043 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:23:51.050 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:24:01.085 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:24:11.096 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:24:21.125 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:24:22.596 [milo-netty-event-loop-30] ERROR o.e.m.o.s.c.t.uasc.UascClientMessageHandler - [remote=/10.153.19.150:49320] Exception caught: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+	at sun.nio.ch.SocketDispatcher.read0(Native Method)
+	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
+	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
+	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
+	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
+	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
+	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
+	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
+	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
+	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
+	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
+	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 14:24:22.596 [milo-netty-event-loop-2] ERROR o.e.m.o.s.c.t.uasc.UascClientMessageHandler - [remote=/10.153.19.150:49320] Exception caught: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+	at sun.nio.ch.SocketDispatcher.read0(Native Method)
+	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
+	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
+	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
+	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
+	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
+	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
+	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
+	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
+	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
+	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
+	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 14:24:31.144 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:24:41.169 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:24:51.188 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:25:01.219 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:25:11.227 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:25:21.253 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:25:31.263 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:25:41.286 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:25:51.294 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:26:01.322 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:26:11.335 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:26:21.361 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:26:31.366 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:26:41.392 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:26:51.400 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:27:01.421 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:27:11.431 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:27:21.454 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:27:31.463 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:27:41.484 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:27:51.495 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:28:01.523 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:28:11.533 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:28:21.548 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:28:31.560 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:28:41.587 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:28:51.595 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:29:01.624 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:29:11.626 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:29:21.653 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:29:31.656 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:29:41.684 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:29:51.697 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:30:01.723 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:30:11.731 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:30:21.759 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:30:31.776 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:30:41.800 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:30:51.815 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:31:01.838 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:31:11.848 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:31:21.875 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:31:31.893 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:31:41.928 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:31:51.937 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:32:01.964 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:32:11.973 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:32:21.990 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:32:32.007 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:32:42.034 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:32:52.043 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:33:02.059 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:33:12.076 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:33:22.100 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:33:32.103 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:33:42.124 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:33:52.137 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:34:02.164 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:34:12.182 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:34:22.206 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:34:32.209 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:34:42.228 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:34:52.246 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:35:02.266 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:35:12.287 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:35:22.315 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:35:32.330 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:35:42.346 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:35:52.362 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:36:02.391 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:36:12.400 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:36:15.965 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketException: Software caused connection abort: connect
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketException: Software caused connection abort: connect
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:36:27.420 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:36:37.426 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:36:47.455 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:36:57.468 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:37:07.489 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:37:17.498 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:37:27.520 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:37:37.538 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:37:47.555 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:37:57.569 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:38:07.594 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:38:17.611 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:38:27.633 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:38:37.639 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:38:47.659 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:38:57.679 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:39:07.695 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:39:17.701 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:39:27.717 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:39:37.730 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:39:47.751 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:39:57.770 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:40:07.792 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:40:17.800 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:40:27.818 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:40:37.832 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:40:47.855 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:40:57.861 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:41:07.895 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:41:17.908 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:41:27.931 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:41:37.947 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:41:47.970 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:41:57.975 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:42:07.998 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:42:18.016 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:42:28.048 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:42:38.056 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:42:48.069 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:42:58.076 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:43:08.101 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:43:18.113 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:43:28.134 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:43:38.144 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:43:48.167 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:43:58.180 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:44:08.201 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:44:18.225 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:44:28.252 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:44:38.258 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:44:48.277 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:44:58.283 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:45:08.307 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:45:18.324 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:45:28.340 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:45:38.355 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:45:48.378 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:45:58.398 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:46:08.422 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:46:18.438 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:46:28.453 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:46:38.467 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:46:48.481 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:46:58.500 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:47:08.514 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:47:18.535 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:47:28.553 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:47:38.572 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:47:48.593 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:47:58.606 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:48:08.629 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:48:18.647 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:48:28.710 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:48:38.730 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:48:48.740 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:48:58.755 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:49:08.773 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:49:18.796 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:49:28.819 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:49:38.821 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:49:48.845 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:49:58.848 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:50:08.868 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:50:18.885 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:50:28.898 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:50:38.909 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:50:48.925 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:50:58.940 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:51:08.958 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:51:18.973 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:51:29.000 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:51:39.016 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:51:49.034 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:51:59.053 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:52:09.074 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:52:19.087 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:52:29.106 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:52:39.116 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:52:49.142 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:52:59.162 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:53:09.182 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:53:19.197 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:53:29.215 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:53:39.229 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:53:49.249 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:53:59.256 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:54:09.283 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:54:19.297 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:54:29.308 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:54:39.314 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:54:49.328 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:54:59.342 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:55:09.366 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:55:19.388 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:55:29.408 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:55:39.420 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:55:49.442 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:55:59.450 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:56:09.469 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:56:19.485 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:56:29.508 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:56:39.522 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:56:49.538 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:56:59.545 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:57:09.561 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:57:19.574 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:57:29.595 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:57:39.605 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:57:49.626 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:57:59.638 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:58:09.649 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:58:19.664 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:58:29.681 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:58:39.689 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:58:49.706 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:58:59.730 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:59:09.744 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:59:19.750 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:59:29.762 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:59:39.765 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:59:49.787 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 14:59:59.793 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:00:09.813 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:00:19.823 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:00:29.840 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:00:39.857 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:00:49.870 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:00:59.884 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:01:09.903 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:01:19.907 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:01:29.928 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:01:39.943 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:01:49.963 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:01:59.969 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:02:09.979 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:02:19.993 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:02:30.006 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:02:40.020 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:02:50.036 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:03:00.053 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:03:10.064 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:03:20.083 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:03:30.108 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:03:40.121 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:03:50.134 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:04:00.149 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:04:10.168 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:04:20.186 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:04:30.204 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:04:40.224 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:04:50.242 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:05:00.261 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:05:10.283 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:05:20.294 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:05:30.316 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:05:40.330 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:05:50.344 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:06:00.352 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:06:10.375 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:06:20.396 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:06:30.412 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:06:40.418 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:06:50.435 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:07:00.450 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:07:10.473 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:07:20.483 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:07:30.493 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:07:40.498 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:07:50.521 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:08:00.541 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:08:10.559 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:08:20.566 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:08:30.580 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:08:40.592 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:08:50.608 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:09:00.615 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:09:10.632 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:09:20.639 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:09:30.655 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:09:40.664 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:09:50.677 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:10:00.686 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:10:10.698 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:10:20.706 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:10:30.718 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:10:40.727 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:10:50.756 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:11:00.777 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:11:10.796 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:11:20.813 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:11:30.825 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:11:40.843 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:11:50.865 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:12:00.874 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:12:10.890 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:12:20.907 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:12:30.924 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:12:40.941 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:12:50.962 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:13:00.979 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:13:11.007 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:13:21.027 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:13:31.082 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:13:41.090 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:13:51.099 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:14:01.110 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:14:11.135 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:14:21.154 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:14:31.180 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:14:41.185 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:14:51.205 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:15:01.210 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:15:11.245 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:15:21.262 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:15:31.274 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:15:41.281 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:15:51.303 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:16:01.315 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:16:11.337 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:16:21.353 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:16:31.371 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:16:41.388 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:16:51.407 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:17:01.424 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:17:11.443 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:17:21.447 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:17:31.468 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:17:41.487 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:17:51.514 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:18:01.524 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:18:11.547 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:18:21.559 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:18:31.576 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:18:41.584 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:18:51.600 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:19:01.612 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:19:11.628 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:19:21.634 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:19:31.646 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:19:41.648 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:19:51.664 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:20:01.675 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:20:11.697 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:20:21.712 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:20:31.726 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:20:41.732 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:20:51.746 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:21:01.763 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:21:11.786 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:21:21.802 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:21:31.814 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:21:41.822 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:21:51.845 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:22:01.856 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:22:11.875 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:22:21.881 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:22:31.898 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:22:41.903 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:22:51.923 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:23:01.939 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:23:11.951 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:23:21.961 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:23:31.974 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:23:42.001 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:23:52.022 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:24:02.027 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:24:12.057 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:24:22.070 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:24:32.087 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:24:42.100 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:24:52.119 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:25:02.136 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:25:12.159 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:25:22.175 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:25:32.209 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:25:42.227 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:25:52.255 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:26:02.268 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:26:12.292 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:26:22.309 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:26:32.329 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:26:42.339 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:26:52.361 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:27:02.368 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:27:12.391 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:27:22.400 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:27:32.431 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:27:42.452 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:27:52.464 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:28:02.478 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:28:12.510 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:28:22.530 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:28:32.549 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:28:42.563 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:28:52.583 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:29:02.588 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:29:12.600 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:29:22.611 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:29:32.629 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:29:42.636 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:29:52.653 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:30:02.660 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:30:12.685 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:30:22.693 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:30:32.708 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:30:42.717 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:30:52.738 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:31:02.751 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:31:12.767 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:31:22.784 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:31:32.805 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:31:42.819 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:31:52.836 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:32:02.851 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:32:12.896 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:32:22.919 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:32:32.935 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:32:42.954 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:32:52.977 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:33:02.992 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:33:13.023 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:33:23.036 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:33:33.064 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:33:43.076 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:33:53.099 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:34:03.117 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:34:13.143 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:34:23.156 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:34:33.181 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:34:43.201 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:34:53.224 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:35:03.230 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:35:13.246 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:35:23.260 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:35:33.277 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:35:43.296 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:35:53.319 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:36:03.330 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:36:13.360 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:36:23.381 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:36:33.405 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:36:43.415 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:36:53.439 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:37:03.446 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:37:13.465 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:37:23.474 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:37:33.491 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:37:43.509 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:37:53.533 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:38:03.538 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:38:13.555 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:38:23.573 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:38:33.595 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:38:43.607 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:38:53.627 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:39:03.646 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:39:13.668 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:39:23.678 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:39:33.693 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:39:43.703 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:39:53.722 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:40:03.734 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:40:13.751 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:40:23.756 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:40:33.774 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:40:43.794 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:40:53.819 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:41:03.846 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:41:13.864 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:41:23.875 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:41:33.894 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:41:43.906 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:41:53.934 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:42:03.952 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:42:13.971 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:42:23.977 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:42:34.017 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:42:44.038 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:42:54.072 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:43:04.092 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:43:14.125 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:43:24.138 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:43:34.172 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:43:44.177 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:43:54.203 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:44:04.218 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:44:14.235 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:44:24.246 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:44:34.275 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:44:44.285 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:44:54.307 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:45:04.334 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:45:14.360 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:45:24.369 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:45:34.397 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:45:44.414 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:45:54.449 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:46:04.468 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:46:14.489 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:46:24.509 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:46:34.525 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:46:44.550 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:46:54.578 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:47:04.596 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:47:14.623 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:47:24.641 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:47:34.667 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:47:44.674 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:47:54.699 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:48:04.709 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:48:14.737 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:48:24.753 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:48:34.777 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:48:44.796 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:48:54.814 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:49:04.827 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:49:14.849 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:49:24.862 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:49:34.890 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:49:44.898 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:49:54.918 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:50:04.932 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:50:14.953 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:50:24.975 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:50:34.995 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:50:45.002 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:50:55.032 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:51:05.038 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:51:15.074 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:51:25.084 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:51:35.109 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:51:45.132 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:51:55.150 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:52:05.162 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:52:15.199 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:52:25.215 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:52:35.232 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:52:45.252 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:52:55.277 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:53:05.290 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:53:15.312 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:53:25.331 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:53:35.350 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:53:45.367 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:53:55.386 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:54:05.391 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:54:15.418 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:54:25.434 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:54:35.454 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:54:45.466 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:54:55.483 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:55:05.501 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:55:15.515 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:55:25.525 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:55:35.552 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:55:45.578 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:55:55.603 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:56:05.614 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:56:15.631 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:56:25.644 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:56:35.676 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:56:45.691 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:56:55.717 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:57:05.725 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:57:15.748 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:57:25.753 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:57:35.777 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:57:45.791 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:57:55.826 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:58:05.851 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:58:15.875 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:58:25.882 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:58:35.907 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:58:45.925 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:58:55.955 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:59:05.966 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:59:16.006 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:59:26.045 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:59:36.089 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:59:46.101 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 15:59:56.149 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:00:06.167 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:00:16.210 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:00:26.230 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:00:36.262 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:00:46.273 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:00:56.281 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:01:06.295 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:01:08.646 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketException: Software caused connection abort: connect
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketException: Software caused connection abort: connect
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:01:08.654 [milo-netty-event-loop-31] ERROR o.e.m.o.s.c.t.uasc.UascClientMessageHandler - [remote=/10.153.19.150:49320] Exception caught: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+	at sun.nio.ch.SocketDispatcher.read0(Native Method)
+	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
+	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
+	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
+	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
+	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
+	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
+	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
+	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
+	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
+	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
+	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 16:01:08.654 [milo-netty-event-loop-1] ERROR o.e.m.o.s.c.t.uasc.UascClientMessageHandler - [remote=/10.153.19.150:49320] Exception caught: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+	at sun.nio.ch.SocketDispatcher.read0(Native Method)
+	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
+	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
+	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
+	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
+	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
+	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
+	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
+	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
+	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
+	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
+	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 16:01:08.656 [milo-netty-event-loop-0] ERROR o.e.m.o.s.c.t.uasc.UascClientMessageHandler - [remote=/10.153.19.150:49320] Exception caught: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+java.io.IOException: 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆�
+	at sun.nio.ch.SocketDispatcher.read0(Native Method)
+	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
+	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
+	at sun.nio.ch.IOUtil.read(IOUtil.java:192)
+	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
+	at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
+	at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
+	at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
+	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
+	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
+	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
+	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
+	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
+	at java.lang.Thread.run(Thread.java:745)
+2025-06-13 16:01:21.313 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:01:31.323 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:01:41.339 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:01:51.343 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:02:01.364 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:02:11.365 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:02:21.384 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:02:31.393 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:02:41.403 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:02:51.410 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:03:01.428 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:03:11.433 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:03:21.452 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:03:31.471 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:03:41.492 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:03:51.503 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:04:01.524 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:04:11.538 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:04:21.557 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:04:31.573 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:04:41.595 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:04:51.607 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:05:01.623 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:05:11.640 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:05:21.658 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:05:31.671 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:05:41.698 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:05:51.713 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:06:01.728 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:06:10.062 [main] ERROR org.apache.catalina.util.LifecycleBase - Failed to start component [Connector[HTTP/1.1-10015]]
+org.apache.catalina.LifecycleException: Protocol handler start failed
+	at org.apache.catalina.connector.Connector.startInternal(Connector.java:1008)
+	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
+	at org.apache.catalina.core.StandardService.addConnector(StandardService.java:227)
+	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:263)
+	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:195)
+	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.startWebServer(ServletWebServerApplicationContext.java:297)
+	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:163)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:552)
+	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141)
+	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:744)
+	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:391)
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:312)
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215)
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1204)
+	at com.mes.LoadGlassModuleApplication.main(LoadGlassModuleApplication.java:24)
+Caused by: java.net.BindException: Address already in use: bind
+	at sun.nio.ch.Net.bind0(Native Method)
+	at sun.nio.ch.Net.bind(Net.java:433)
+	at sun.nio.ch.Net.bind(Net.java:425)
+	at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
+	at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
+	at org.apache.tomcat.util.net.NioEndpoint.initServerSocket(NioEndpoint.java:230)
+	at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:213)
+	at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1124)
+	at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1210)
+	at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:585)
+	at org.apache.catalina.connector.Connector.startInternal(Connector.java:1005)
+	... 14 common frames omitted
+2025-06-13 16:06:10.117 [main] ERROR o.s.b.diagnostics.LoggingFailureAnalysisReporter - 
+
+***************************
+APPLICATION FAILED TO START
+***************************
+
+Description:
+
+The Tomcat connector configured to listen on port 10015 failed to start. The port may already be in use or the connector may be misconfigured.
+
+Action:
+
+Verify the connector's configuration, identify and stop any process that's listening on port 10015, or configure this application to listen on another port.
+
+2025-06-13 16:06:11.743 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:06:21.768 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:06:31.782 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:06:41.797 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:13:31.796 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:13:41.806 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:13:51.825 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:14:01.837 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:14:11.855 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:14:21.865 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:14:31.885 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:14:41.896 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:14:51.921 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:15:01.939 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:15:11.959 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:15:21.976 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:15:32.000 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:15:42.006 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:15:52.027 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:16:02.036 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:16:12.063 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:16:22.070 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:16:32.092 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:16:42.109 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:16:52.130 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:17:02.146 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:17:12.157 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:17:22.174 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:17:32.193 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:17:42.206 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:17:52.222 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:18:02.227 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:18:12.241 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:18:22.252 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:18:32.264 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:18:42.269 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	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 org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 24 common frames omitted
+2025-06-13 16:18:52.281 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:19:02.286 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:19:12.313 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:19:22.316 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:19:32.340 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:19:42.344 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:19:52.368 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:20:02.379 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:20:12.390 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:20:22.406 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:20:32.426 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:20:42.438 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:20:52.454 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:21:02.462 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:21:12.505 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:21:22.515 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:21:32.539 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:21:42.546 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:21:52.560 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:22:02.571 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:22:12.586 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:22:22.592 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:22:32.618 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:22:42.622 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:22:52.634 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:23:02.642 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:23:12.662 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:23:22.677 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:23:32.691 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:23:42.709 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:23:52.724 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:24:02.732 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:24:12.747 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:24:22.765 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:24:32.785 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:24:42.796 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:24:52.816 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:25:02.830 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:25:12.849 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:25:22.863 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:25:32.885 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:25:42.901 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:25:52.924 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:26:02.929 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:26:12.953 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:26:22.964 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:26:32.986 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:26:42.996 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:26:53.017 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:27:03.022 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:27:13.044 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:27:23.059 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:27:33.073 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:27:43.092 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:27:53.113 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:28:03.129 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:28:13.147 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:28:23.160 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:28:33.182 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:28:43.198 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:28:53.216 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:29:03.223 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:29:13.243 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:29:23.258 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:29:33.282 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:29:43.292 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:29:53.306 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:30:03.321 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:30:13.343 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:30:23.355 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:30:33.367 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:30:43.379 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:30:53.389 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:31:03.402 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:31:13.430 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:31:23.439 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:31:33.451 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:31:43.455 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:31:53.474 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:32:03.489 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:32:13.501 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:32:23.510 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:32:33.518 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:32:43.524 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:32:53.536 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:33:03.550 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:33:13.568 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:33:23.574 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:33:33.589 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:33:43.594 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:33:53.613 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:34:03.627 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:34:13.642 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:34:23.660 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:34:33.680 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:34:43.690 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:34:53.710 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:35:03.721 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:35:13.734 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:35:23.742 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:35:33.758 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:35:43.773 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:35:53.795 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:36:03.807 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:36:13.819 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:36:23.831 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:36:33.838 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:36:43.850 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:36:53.871 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:37:03.887 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:37:13.897 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:37:23.909 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:37:33.938 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:37:43.941 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:37:53.950 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:38:03.960 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:38:13.972 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:38:23.981 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:38:33.995 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:38:43.999 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:38:54.016 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:39:04.033 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:39:14.047 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:39:24.063 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:39:34.072 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:39:44.075 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:39:54.096 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:40:04.101 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:40:14.119 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:40:24.130 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:40:34.146 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:40:44.155 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:40:54.171 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:41:04.179 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:41:14.194 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:41:24.211 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:41:34.232 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:41:44.250 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:41:54.274 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:42:04.286 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:42:14.309 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:42:24.317 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:42:34.336 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:42:44.342 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:42:54.363 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:43:04.378 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:43:14.396 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:43:24.400 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:43:34.411 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:43:44.416 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:43:54.430 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:44:04.442 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:44:14.461 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:44:24.476 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:44:34.488 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:44:44.492 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:44:54.508 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:45:04.515 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:45:14.525 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:45:24.532 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:45:34.549 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:45:44.564 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:45:54.585 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:46:04.596 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:46:14.614 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:46:24.617 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:46:34.635 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:46:44.651 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:46:54.663 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:47:04.679 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:47:14.691 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:47:24.698 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:47:34.711 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:47:44.713 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:47:54.734 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:48:04.749 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:48:14.762 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:48:24.775 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:48:34.802 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:48:44.820 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:48:54.846 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:49:04.853 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:49:14.875 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:49:24.886 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:49:34.903 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:49:44.906 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:49:54.916 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:50:04.928 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:50:14.949 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:50:24.963 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:50:34.974 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:50:44.980 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:50:55.003 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:51:05.009 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:51:15.023 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:51:25.028 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:51:35.047 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:51:45.055 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:51:55.067 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:52:05.082 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:52:15.100 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:52:25.109 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:52:35.119 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:52:45.132 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:52:55.145 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:53:05.165 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:53:15.189 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:53:25.194 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:53:35.211 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:53:45.225 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:53:55.240 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:54:05.250 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:54:15.272 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:54:25.277 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:54:35.299 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:54:45.320 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:54:55.333 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:55:05.347 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:55:15.361 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:55:25.366 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:55:35.390 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:55:45.403 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:55:55.422 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:56:05.435 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:56:15.456 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:56:25.475 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:56:35.493 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:56:45.499 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:56:55.510 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:57:05.524 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:57:15.540 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:57:25.557 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:57:35.578 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:57:45.581 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:57:55.595 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:58:05.600 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:58:15.621 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:58:25.627 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:58:35.644 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:58:45.655 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:58:55.676 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:59:05.683 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:59:15.706 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:59:25.717 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:59:35.732 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:59:45.746 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 16:59:55.755 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:00:05.771 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:00:15.796 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:00:25.801 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:00:35.818 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:00:45.826 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:00:55.837 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:01:05.844 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:01:15.858 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:01:25.872 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:01:35.892 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:01:45.899 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:01:55.919 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:02:05.923 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:02:15.936 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:02:25.949 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:02:35.957 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:02:45.973 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:02:55.983 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:03:05.995 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:03:16.007 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:03:26.020 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:03:36.039 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:03:46.054 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:03:56.074 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:04:06.079 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:04:16.102 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:04:26.107 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:04:36.130 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:04:46.142 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:04:56.157 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:05:06.169 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:05:16.189 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:05:26.194 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:05:36.212 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:05:46.229 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:05:56.250 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:06:06.263 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:06:16.276 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:06:26.295 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:06:36.305 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:06:46.323 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:06:56.341 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:07:06.351 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:07:16.374 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:07:26.401 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:07:36.417 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:07:46.421 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:07:56.437 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:08:06.451 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:08:16.463 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:08:26.477 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:08:36.505 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:08:46.523 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:08:56.535 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:09:06.544 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:09:16.563 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:09:26.569 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:09:36.580 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:09:46.586 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:09:56.619 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:10:06.627 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:10:16.649 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:10:26.654 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:10:36.681 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:10:46.702 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:10:56.722 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:11:06.728 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:11:16.751 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:11:26.771 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:11:36.787 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:11:46.802 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:11:56.816 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:12:06.830 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:12:16.839 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:12:26.846 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:12:36.860 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:12:46.874 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:12:56.896 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:13:06.911 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:13:16.932 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:13:26.948 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:13:36.968 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:13:46.975 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:13:56.995 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:14:07.015 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:14:17.033 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:14:27.038 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:14:37.051 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:14:47.065 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:14:57.091 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:15:07.098 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:15:17.116 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:15:27.125 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:15:37.142 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:15:47.158 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:15:57.181 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:16:07.193 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:16:17.211 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:16:27.216 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:16:37.241 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:16:47.257 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:16:57.285 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:17:07.292 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:17:17.313 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:17:27.321 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:17:37.337 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:17:47.346 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:17:57.377 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:18:07.385 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:18:17.406 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:18:27.425 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:18:37.444 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:18:47.458 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:18:57.481 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:19:07.492 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassFinishChid(OpcLoadGlassTask.java:194)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOneFinish(OpcLoadGlassTask.java:90)
+	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
+2025-06-13 17:19:17.511 [scheduling-1] ERROR o.s.s.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
+com.github.xingshuangs.iot.exceptions.SocketRuntimeException: java.net.SocketTimeoutException: connect timed out
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:145)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:202)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:189)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.write(TcpClientBasic.java:178)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readFromServer(PLCNetwork.java:206)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.lambda$readS7Data$3(PLCNetwork.java:376)
+	at java.lang.Iterable.forEach(Iterable.java:75)
+	at com.github.xingshuangs.iot.protocol.s7.service.PLCNetwork.readS7Data(PLCNetwork.java:364)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.readDataByCondition(S7Serializer.java:125)
+	at com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer.read(S7Serializer.java:172)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassChild(OpcLoadGlassTask.java:118)
+	at com.mes.job.OpcLoadGlassTask.opcLoadGlassOne(OpcLoadGlassTask.java:80)
+	at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
+	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at com.github.xingshuangs.iot.net.client.TcpClientBasic.getAvailableSocket(TcpClientBasic.java:139)
+	... 23 common frames omitted
diff --git a/logs/loadGlass/web_info.log b/logs/loadGlass/web_info.log
new file mode 100644
index 0000000..9fab2cb
--- /dev/null
+++ b/logs/loadGlass/web_info.log
@@ -0,0 +1,2922 @@
+2025-06-13 08:15:32.248 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$a8c9d6fc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:15:33.831 [main] INFO  com.mes.LoadGlassModuleApplication - The following profiles are active: dev
+2025-06-13 08:15:34.665 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
+2025-06-13 08:15:34.667 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
+2025-06-13 08:15:34.712 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 36ms. Found 0 repository interfaces.
+2025-06-13 08:15:34.913 [main] INFO  o.springframework.cloud.context.scope.GenericScope - BeanFactory id=af6f9514-4bd4-360c-8654-4345edb346a4
+2025-06-13 08:15:35.009 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$8cafd3ff] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:15:35.042 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'spring.datasource.dynamic-com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:15:35.044 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$f63e44d0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:15:35.174 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'dsProcessor' of type [com.baomidou.dynamic.datasource.processor.DsHeaderProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:15:35.196 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration' of type [org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration$$EnhancerBySpringCGLIB$$255d9c39] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:15:35.200 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'objectPostProcessor' of type [org.springframework.security.config.annotation.configuration.AutowireBeanFactoryObjectPostProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:15:35.202 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@1cd2143b' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:15:35.203 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration' of type [org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration$$EnhancerBySpringCGLIB$$4a323eeb] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:15:35.209 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:15:35.247 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$a8c9d6fc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:15:35.490 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 10015 (http)
+2025-06-13 08:15:35.502 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-10015"]
+2025-06-13 08:15:35.507 [main] INFO  org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-06-13 08:15:35.508 [main] INFO  org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.24]
+2025-06-13 08:15:35.513 [main] INFO  org.apache.catalina.core.AprLifecycleListener - Loaded APR based Apache Tomcat Native library [1.3.1] using APR version [1.7.4].
+2025-06-13 08:15:35.513 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
+2025-06-13 08:15:35.513 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
+2025-06-13 08:15:35.517 [main] INFO  org.apache.catalina.core.AprLifecycleListener - OpenSSL successfully initialized [OpenSSL 3.0.14 4 Jun 2024]
+2025-06-13 08:15:35.638 [main] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
+2025-06-13 08:15:35.638 [main] INFO  org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 1791 ms
+2025-06-13 08:15:35.718 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join properties config complete
+2025-06-13 08:15:35.847 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1,northGlassMes} inited
+2025-06-13 08:15:35.851 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-2,pp} inited
+2025-06-13 08:15:35.855 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-3,sd} inited
+2025-06-13 08:15:35.855 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [pp] success
+2025-06-13 08:15:35.855 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [sd] success
+2025-06-13 08:15:35.855 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [northGlassMes] success
+2025-06-13 08:15:35.855 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource initial loaded [3] datasource,primary datasource named [northGlassMes]
+2025-06-13 08:15:35.910 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join SqlInjector init
+2025-06-13 08:15:37.789 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Java version: 1.8.0_101
+2025-06-13 08:15:37.790 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Eclipse Milo OPC UA Stack version: 0.6.8
+2025-06-13 08:15:37.790 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Eclipse Milo OPC UA Client SDK version: 0.6.8
+2025-06-13 08:15:39.061 [milo-nonce-util-secure-random] INFO  org.eclipse.milo.opcua.stack.core.util.NonceUtil - SecureRandom seeded in 0ms.
+2025-06-13 08:15:40.328 [main] INFO  s.d.s.w.WebMvcPropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [public org.springframework.http.ResponseEntity<springfox.documentation.spring.web.json.Json> springfox.documentation.swagger2.web.Swagger2ControllerWebMvc.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest)]
+2025-06-13 08:15:40.380 [main] INFO  o.s.security.web.DefaultSecurityFilterChain - Creating filter chain: any request, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@17f8cad6, org.springframework.security.web.context.SecurityContextPersistenceFilter@64cdc310, org.springframework.security.web.header.HeaderWriterFilter@14e83c9d, org.springframework.web.filter.CorsFilter@698e1bf5, org.springframework.security.web.authentication.logout.LogoutFilter@aaa7000, com.mes.common.filter.JwtAuthenticationTokenFilter@7740b0ab, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@59b3f162, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@510a2c7, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@da11873, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@7a85dc58, org.springframework.security.web.session.SessionManagementFilter@59043741, org.springframework.security.web.access.ExceptionTranslationFilter@64908ab9, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@58ca6ba3]
+2025-06-13 08:15:40.393 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-06-13 08:15:40.397 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-06-13 08:15:40.522 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
+2025-06-13 08:15:42.034 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 08:15:42.065 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService
+2025-06-13 08:15:42.255 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService 'taskScheduler'
+2025-06-13 08:15:43.663 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 08:15:43.888 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Documentation plugins bootstrapped
+2025-06-13 08:15:43.892 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
+2025-06-13 08:15:43.921 [main] INFO  s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
+2025-06-13 08:15:44.084 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: listByStateUsingPOST_1
+2025-06-13 08:15:44.090 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: selectDamageUsingPOST_1
+2025-06-13 08:15:44.212 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-10015"]
+2025-06-13 08:15:44.229 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 10015 (http) with context path ''
+2025-06-13 08:15:44.276 [main] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - nacos registry, loadGlass 26.246.64.36:10015 register finished
+2025-06-13 08:15:45.633 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 08:15:45.634 [main] INFO  com.mes.LoadGlassModuleApplication - Started LoadGlassModuleApplication in 16.288 seconds (JVM running for 17.528)
+2025-06-13 08:15:45.637 [main] INFO  com.mes.AppRunnerConfig - 鍚姩瀹屾垚
+2025-06-13 08:16:50.375 [Thread-44] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Shutting down ExecutorService 'taskScheduler'
+2025-06-13 08:16:50.376 [Thread-44] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - De-registering from Nacos Server now...
+2025-06-13 08:16:50.382 [Thread-44] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - De-registration finished.
+2025-06-13 08:16:50.383 [Thread-44] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Shutting down ExecutorService 'applicationTaskExecutor'
+2025-06-13 08:16:50.387 [Thread-44] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 08:16:50.393 [Thread-44] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 08:16:50.396 [Thread-44] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 08:16:50.398 [Thread-44] INFO  c.k.milo.configuration.MiloAutoConfiguration - all opcUaClients are closed
+2025-06-13 08:16:50.399 [Thread-44] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource start closing ....
+2025-06-13 08:16:50.406 [Thread-44] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-2} closed
+2025-06-13 08:16:50.406 [Thread-44] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-3} closed
+2025-06-13 08:16:50.407 [Thread-44] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1} closed
+2025-06-13 08:16:50.407 [Thread-44] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
+2025-06-13 08:17:41.374 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$a8c9d6fc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:17:42.852 [main] INFO  com.mes.LoadGlassModuleApplication - The following profiles are active: dev
+2025-06-13 08:17:43.624 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
+2025-06-13 08:17:43.627 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
+2025-06-13 08:17:43.680 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 41ms. Found 0 repository interfaces.
+2025-06-13 08:17:43.881 [main] INFO  o.springframework.cloud.context.scope.GenericScope - BeanFactory id=af6f9514-4bd4-360c-8654-4345edb346a4
+2025-06-13 08:17:43.965 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$8cafd3ff] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:17:43.994 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'spring.datasource.dynamic-com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:17:43.995 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$f63e44d0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:17:44.113 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'dsProcessor' of type [com.baomidou.dynamic.datasource.processor.DsHeaderProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:17:44.131 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration' of type [org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration$$EnhancerBySpringCGLIB$$255d9c39] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:17:44.135 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'objectPostProcessor' of type [org.springframework.security.config.annotation.configuration.AutowireBeanFactoryObjectPostProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:17:44.137 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@6aa7e176' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:17:44.139 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration' of type [org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration$$EnhancerBySpringCGLIB$$4a323eeb] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:17:44.144 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:17:44.184 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$a8c9d6fc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:17:44.405 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 10015 (http)
+2025-06-13 08:17:44.419 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-10015"]
+2025-06-13 08:17:44.425 [main] INFO  org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-06-13 08:17:44.425 [main] INFO  org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.24]
+2025-06-13 08:17:44.429 [main] INFO  org.apache.catalina.core.AprLifecycleListener - Loaded APR based Apache Tomcat Native library [1.3.1] using APR version [1.7.4].
+2025-06-13 08:17:44.429 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
+2025-06-13 08:17:44.429 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
+2025-06-13 08:17:44.432 [main] INFO  org.apache.catalina.core.AprLifecycleListener - OpenSSL successfully initialized [OpenSSL 3.0.14 4 Jun 2024]
+2025-06-13 08:17:44.537 [main] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
+2025-06-13 08:17:44.537 [main] INFO  org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 1671 ms
+2025-06-13 08:17:44.601 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join properties config complete
+2025-06-13 08:17:44.726 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1,northGlassMes} inited
+2025-06-13 08:17:44.730 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-2,pp} inited
+2025-06-13 08:17:44.732 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-3,sd} inited
+2025-06-13 08:17:44.732 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [pp] success
+2025-06-13 08:17:44.732 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [sd] success
+2025-06-13 08:17:44.732 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [northGlassMes] success
+2025-06-13 08:17:44.732 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource initial loaded [3] datasource,primary datasource named [northGlassMes]
+2025-06-13 08:17:44.789 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join SqlInjector init
+2025-06-13 08:17:46.780 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Java version: 1.8.0_101
+2025-06-13 08:17:46.780 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Eclipse Milo OPC UA Stack version: 0.6.8
+2025-06-13 08:17:46.780 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Eclipse Milo OPC UA Client SDK version: 0.6.8
+2025-06-13 08:17:48.008 [milo-nonce-util-secure-random] INFO  org.eclipse.milo.opcua.stack.core.util.NonceUtil - SecureRandom seeded in 0ms.
+2025-06-13 08:17:49.173 [main] INFO  s.d.s.w.WebMvcPropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [public org.springframework.http.ResponseEntity<springfox.documentation.spring.web.json.Json> springfox.documentation.swagger2.web.Swagger2ControllerWebMvc.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest)]
+2025-06-13 08:17:49.229 [main] INFO  o.s.security.web.DefaultSecurityFilterChain - Creating filter chain: any request, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@74797b90, org.springframework.security.web.context.SecurityContextPersistenceFilter@510a2c7, org.springframework.security.web.header.HeaderWriterFilter@59043741, org.springframework.web.filter.CorsFilter@7676b2b9, org.springframework.security.web.authentication.logout.LogoutFilter@58d79479, com.mes.common.filter.JwtAuthenticationTokenFilter@30af23fd, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@24563809, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@1ea19c97, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@57ab4b33, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@720c0996, org.springframework.security.web.session.SessionManagementFilter@64cdc310, org.springframework.security.web.access.ExceptionTranslationFilter@5af641d3, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@ea0c99c]
+2025-06-13 08:17:49.246 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-06-13 08:17:49.249 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-06-13 08:17:49.390 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
+2025-06-13 08:17:50.950 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 08:17:51.017 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService
+2025-06-13 08:17:51.350 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService 'taskScheduler'
+2025-06-13 08:17:52.999 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 08:17:53.194 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Documentation plugins bootstrapped
+2025-06-13 08:17:53.196 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
+2025-06-13 08:17:53.222 [main] INFO  s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
+2025-06-13 08:17:53.362 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: listByStateUsingPOST_1
+2025-06-13 08:17:53.367 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: selectDamageUsingPOST_1
+2025-06-13 08:17:53.444 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-10015"]
+2025-06-13 08:17:53.457 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 10015 (http) with context path ''
+2025-06-13 08:17:53.497 [main] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - nacos registry, loadGlass 26.246.64.36:10015 register finished
+2025-06-13 08:17:54.853 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 08:17:54.856 [main] INFO  com.mes.LoadGlassModuleApplication - Started LoadGlassModuleApplication in 16.06 seconds (JVM running for 16.935)
+2025-06-13 08:17:54.859 [main] INFO  com.mes.AppRunnerConfig - 鍚姩瀹屾垚
+2025-06-13 08:20:08.621 [Thread-42] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Shutting down ExecutorService 'taskScheduler'
+2025-06-13 08:20:08.623 [Thread-42] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - De-registering from Nacos Server now...
+2025-06-13 08:20:08.626 [Thread-42] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - De-registration finished.
+2025-06-13 08:20:08.629 [Thread-42] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Shutting down ExecutorService 'applicationTaskExecutor'
+2025-06-13 08:20:08.637 [Thread-42] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 08:20:08.703 [Thread-42] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 08:20:08.736 [Thread-42] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 08:20:08.739 [Thread-42] INFO  c.k.milo.configuration.MiloAutoConfiguration - all opcUaClients are closed
+2025-06-13 08:20:08.740 [Thread-42] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource start closing ....
+2025-06-13 08:20:08.749 [Thread-42] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-2} closed
+2025-06-13 08:20:08.749 [Thread-42] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-3} closed
+2025-06-13 08:20:08.749 [Thread-42] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1} closed
+2025-06-13 08:20:08.750 [Thread-42] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
+2025-06-13 08:20:44.045 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$3be866bc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:20:45.531 [main] INFO  com.mes.LoadGlassModuleApplication - The following profiles are active: dev
+2025-06-13 08:20:46.309 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
+2025-06-13 08:20:46.311 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
+2025-06-13 08:20:46.356 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 37ms. Found 0 repository interfaces.
+2025-06-13 08:20:46.531 [main] INFO  o.springframework.cloud.context.scope.GenericScope - BeanFactory id=af6f9514-4bd4-360c-8654-4345edb346a4
+2025-06-13 08:20:46.609 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$1fce63bf] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:20:46.637 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'spring.datasource.dynamic-com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:20:46.639 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$895cd490] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:20:46.751 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'dsProcessor' of type [com.baomidou.dynamic.datasource.processor.DsHeaderProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:20:46.767 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration' of type [org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration$$EnhancerBySpringCGLIB$$b87c2bf9] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:20:46.770 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'objectPostProcessor' of type [org.springframework.security.config.annotation.configuration.AutowireBeanFactoryObjectPostProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:20:46.772 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@52abed9d' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:20:46.774 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration' of type [org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration$$EnhancerBySpringCGLIB$$dd50ceab] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:20:46.777 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:20:46.802 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$3be866bc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:20:46.996 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 10015 (http)
+2025-06-13 08:20:47.007 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-10015"]
+2025-06-13 08:20:47.014 [main] INFO  org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-06-13 08:20:47.014 [main] INFO  org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.24]
+2025-06-13 08:20:47.018 [main] INFO  org.apache.catalina.core.AprLifecycleListener - Loaded APR based Apache Tomcat Native library [1.3.1] using APR version [1.7.4].
+2025-06-13 08:20:47.019 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
+2025-06-13 08:20:47.019 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
+2025-06-13 08:20:47.022 [main] INFO  org.apache.catalina.core.AprLifecycleListener - OpenSSL successfully initialized [OpenSSL 3.0.14 4 Jun 2024]
+2025-06-13 08:20:47.128 [main] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
+2025-06-13 08:20:47.128 [main] INFO  org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 1581 ms
+2025-06-13 08:20:47.190 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join properties config complete
+2025-06-13 08:20:47.294 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1,northGlassMes} inited
+2025-06-13 08:20:47.297 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-2,pp} inited
+2025-06-13 08:20:47.301 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-3,sd} inited
+2025-06-13 08:20:47.301 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [pp] success
+2025-06-13 08:20:47.301 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [sd] success
+2025-06-13 08:20:47.301 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [northGlassMes] success
+2025-06-13 08:20:47.301 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource initial loaded [3] datasource,primary datasource named [northGlassMes]
+2025-06-13 08:20:47.352 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join SqlInjector init
+2025-06-13 08:20:49.070 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Java version: 1.8.0_101
+2025-06-13 08:20:49.071 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Eclipse Milo OPC UA Stack version: 0.6.8
+2025-06-13 08:20:49.071 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Eclipse Milo OPC UA Client SDK version: 0.6.8
+2025-06-13 08:20:50.414 [milo-nonce-util-secure-random] INFO  org.eclipse.milo.opcua.stack.core.util.NonceUtil - SecureRandom seeded in 0ms.
+2025-06-13 08:20:51.644 [main] INFO  s.d.s.w.WebMvcPropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [public org.springframework.http.ResponseEntity<springfox.documentation.spring.web.json.Json> springfox.documentation.swagger2.web.Swagger2ControllerWebMvc.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest)]
+2025-06-13 08:20:51.703 [main] INFO  o.s.security.web.DefaultSecurityFilterChain - Creating filter chain: any request, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@b63365c, org.springframework.security.web.context.SecurityContextPersistenceFilter@141234df, org.springframework.security.web.header.HeaderWriterFilter@58d79479, org.springframework.web.filter.CorsFilter@6839d03b, org.springframework.security.web.authentication.logout.LogoutFilter@1fc8047f, com.mes.common.filter.JwtAuthenticationTokenFilter@1716c037, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@44117b0d, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@57617a75, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@39a30d1a, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@a44ad33, org.springframework.security.web.session.SessionManagementFilter@495f7ca4, org.springframework.security.web.access.ExceptionTranslationFilter@5e72c82a, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@1896299b]
+2025-06-13 08:20:51.718 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-06-13 08:20:51.721 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-06-13 08:20:51.884 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
+2025-06-13 08:20:53.464 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 08:20:53.496 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService
+2025-06-13 08:20:53.669 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService 'taskScheduler'
+2025-06-13 08:20:55.069 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 08:20:55.269 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Documentation plugins bootstrapped
+2025-06-13 08:20:55.271 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
+2025-06-13 08:20:55.296 [main] INFO  s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
+2025-06-13 08:20:55.461 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: listByStateUsingPOST_1
+2025-06-13 08:20:55.467 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: selectDamageUsingPOST_1
+2025-06-13 08:20:55.554 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-10015"]
+2025-06-13 08:20:55.568 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 10015 (http) with context path ''
+2025-06-13 08:20:55.606 [main] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - nacos registry, loadGlass 26.246.64.36:10015 register finished
+2025-06-13 08:20:56.968 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 08:20:56.972 [main] INFO  com.mes.LoadGlassModuleApplication - Started LoadGlassModuleApplication in 15.443 seconds (JVM running for 16.395)
+2025-06-13 08:20:56.974 [main] INFO  com.mes.AppRunnerConfig - 鍚姩瀹屾垚
+2025-06-13 08:21:05.980 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:21:26.019 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:21:46.055 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:22:06.070 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:22:26.099 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:22:38.587 [http-nio-10015-exec-1] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-06-13 08:22:38.587 [http-nio-10015-exec-1] INFO  org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-06-13 08:22:38.596 [http-nio-10015-exec-1] INFO  org.springframework.web.servlet.DispatcherServlet - Completed initialization in 9 ms
+2025-06-13 08:22:46.126 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:23:06.153 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:23:14.556 [Thread-42] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Shutting down ExecutorService 'taskScheduler'
+2025-06-13 08:23:14.557 [Thread-42] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - De-registering from Nacos Server now...
+2025-06-13 08:23:14.560 [Thread-42] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - De-registration finished.
+2025-06-13 08:23:14.562 [Thread-42] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Shutting down ExecutorService 'applicationTaskExecutor'
+2025-06-13 08:23:14.566 [Thread-42] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 08:23:14.572 [Thread-42] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 08:23:14.575 [Thread-42] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 08:23:14.578 [Thread-42] INFO  c.k.milo.configuration.MiloAutoConfiguration - all opcUaClients are closed
+2025-06-13 08:23:14.579 [Thread-42] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource start closing ....
+2025-06-13 08:23:14.583 [Thread-42] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-2} closed
+2025-06-13 08:23:14.583 [Thread-42] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-3} closed
+2025-06-13 08:23:14.584 [Thread-42] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1} closed
+2025-06-13 08:23:14.585 [Thread-42] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
+2025-06-13 08:23:20.291 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$3be866bc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:23:21.740 [main] INFO  com.mes.LoadGlassModuleApplication - The following profiles are active: dev
+2025-06-13 08:23:22.433 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
+2025-06-13 08:23:22.434 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
+2025-06-13 08:23:22.480 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 37ms. Found 0 repository interfaces.
+2025-06-13 08:23:22.645 [main] INFO  o.springframework.cloud.context.scope.GenericScope - BeanFactory id=af6f9514-4bd4-360c-8654-4345edb346a4
+2025-06-13 08:23:22.720 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$1fce63bf] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:23:22.751 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'spring.datasource.dynamic-com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:23:22.754 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$895cd490] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:23:22.877 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'dsProcessor' of type [com.baomidou.dynamic.datasource.processor.DsHeaderProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:23:22.896 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration' of type [org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration$$EnhancerBySpringCGLIB$$b87c2bf9] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:23:22.899 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'objectPostProcessor' of type [org.springframework.security.config.annotation.configuration.AutowireBeanFactoryObjectPostProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:23:22.901 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@281b2dfd' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:23:22.901 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration' of type [org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration$$EnhancerBySpringCGLIB$$dd50ceab] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:23:22.904 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:23:22.931 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$3be866bc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 08:23:23.133 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 10015 (http)
+2025-06-13 08:23:23.143 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-10015"]
+2025-06-13 08:23:23.149 [main] INFO  org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-06-13 08:23:23.149 [main] INFO  org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.24]
+2025-06-13 08:23:23.154 [main] INFO  org.apache.catalina.core.AprLifecycleListener - Loaded APR based Apache Tomcat Native library [1.3.1] using APR version [1.7.4].
+2025-06-13 08:23:23.155 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
+2025-06-13 08:23:23.155 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
+2025-06-13 08:23:23.159 [main] INFO  org.apache.catalina.core.AprLifecycleListener - OpenSSL successfully initialized [OpenSSL 3.0.14 4 Jun 2024]
+2025-06-13 08:23:23.273 [main] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
+2025-06-13 08:23:23.274 [main] INFO  org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 1522 ms
+2025-06-13 08:23:23.344 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join properties config complete
+2025-06-13 08:23:23.452 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1,northGlassMes} inited
+2025-06-13 08:23:23.455 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-2,pp} inited
+2025-06-13 08:23:23.457 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-3,sd} inited
+2025-06-13 08:23:23.458 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [pp] success
+2025-06-13 08:23:23.458 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [sd] success
+2025-06-13 08:23:23.458 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [northGlassMes] success
+2025-06-13 08:23:23.458 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource initial loaded [3] datasource,primary datasource named [northGlassMes]
+2025-06-13 08:23:23.511 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join SqlInjector init
+2025-06-13 08:23:25.628 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Java version: 1.8.0_101
+2025-06-13 08:23:25.628 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Eclipse Milo OPC UA Stack version: 0.6.8
+2025-06-13 08:23:25.628 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Eclipse Milo OPC UA Client SDK version: 0.6.8
+2025-06-13 08:23:26.905 [milo-nonce-util-secure-random] INFO  org.eclipse.milo.opcua.stack.core.util.NonceUtil - SecureRandom seeded in 0ms.
+2025-06-13 08:23:28.214 [main] INFO  s.d.s.w.WebMvcPropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [public org.springframework.http.ResponseEntity<springfox.documentation.spring.web.json.Json> springfox.documentation.swagger2.web.Swagger2ControllerWebMvc.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest)]
+2025-06-13 08:23:28.290 [main] INFO  o.s.security.web.DefaultSecurityFilterChain - Creating filter chain: any request, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@b63365c, org.springframework.security.web.context.SecurityContextPersistenceFilter@141234df, org.springframework.security.web.header.HeaderWriterFilter@58d79479, org.springframework.web.filter.CorsFilter@6839d03b, org.springframework.security.web.authentication.logout.LogoutFilter@1fc8047f, com.mes.common.filter.JwtAuthenticationTokenFilter@1716c037, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@44117b0d, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@57617a75, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@39a30d1a, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@a44ad33, org.springframework.security.web.session.SessionManagementFilter@495f7ca4, org.springframework.security.web.access.ExceptionTranslationFilter@5e72c82a, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@1896299b]
+2025-06-13 08:23:28.315 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-06-13 08:23:28.320 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-06-13 08:23:28.487 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
+2025-06-13 08:23:30.059 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 08:23:30.092 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService
+2025-06-13 08:23:30.326 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService 'taskScheduler'
+2025-06-13 08:23:31.790 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 08:23:32.031 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Documentation plugins bootstrapped
+2025-06-13 08:23:32.034 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
+2025-06-13 08:23:32.063 [main] INFO  s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
+2025-06-13 08:23:32.219 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: listByStateUsingPOST_1
+2025-06-13 08:23:32.224 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: selectDamageUsingPOST_1
+2025-06-13 08:23:32.317 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-10015"]
+2025-06-13 08:23:32.330 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 10015 (http) with context path ''
+2025-06-13 08:23:32.381 [main] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - nacos registry, loadGlass 26.246.64.36:10015 register finished
+2025-06-13 08:23:32.722 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:23:33.782 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 08:23:33.784 [main] INFO  com.mes.LoadGlassModuleApplication - Started LoadGlassModuleApplication in 16.219 seconds (JVM running for 17.307)
+2025-06-13 08:23:33.786 [main] INFO  com.mes.AppRunnerConfig - 鍚姩瀹屾垚
+2025-06-13 08:23:52.764 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:24:12.810 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:24:32.860 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:24:52.899 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:25:12.948 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:25:32.985 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:25:53.027 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:25:55.831 [http-nio-10015-exec-1] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-06-13 08:25:55.831 [http-nio-10015-exec-1] INFO  org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-06-13 08:25:55.842 [http-nio-10015-exec-1] INFO  org.springframework.web.servlet.DispatcherServlet - Completed initialization in 11 ms
+2025-06-13 08:26:13.052 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:26:33.076 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:26:36.762 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=42, parentId=1, menuName=涓婄墖椤甸潰, icon=null, url=/Returns/upreturns3, languageType=null, status=1, listSort=3, createTime=Thu Oct 31 08:30:43 CST 2024, perms=null, children=null), SysMenu(id=43, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=44, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=45, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null)]
+2025-06-13 08:26:36.775 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"3","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1730334643000,"id":42,"status":1}]
+2025-06-13 08:26:36.775 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":44,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":45,"status":1}]
+2025-06-13 08:26:53.150 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:27:13.190 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:27:25.869 [http-nio-10015-exec-4] INFO  c.m.u.controller.UpPattenUsageController - 鏌ヨ涓婄墖淇℃伅:Engineering(id=null, engineerId=null, engineerName=null, avgAvailability=0.0, validAvailability=0.0, lastAvailability=0.0, state=null, glassTotal=null, glassTotalArea=0.0, planPatternTotal=null, planPatternTotalArea=0.0, realityPatternTotal=null, realityPatternTotalArea=0.0, filmsId=null, notes=null, stationCell=5, filmRemove=null)
+2025-06-13 08:27:25.875 [http-nio-10015-exec-10] INFO  c.m.u.controller.UpPattenUsageController - 鏄剧ず姝e湪鍑虹墖鐨勫伐绋嬩俊鎭�:[UpPattenUsage(id=3734, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=1, state=100), UpPattenUsage(id=3735, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=2, state=100), UpPattenUsage(id=3736, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=3, state=0), UpPattenUsage(id=3737, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=4, state=0), UpPattenUsage(id=3738, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=5, state=0), UpPattenUsage(id=3739, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=6, state=0), UpPattenUsage(id=3740, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=7, state=0), UpPattenUsage(id=3741, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=8, state=0), UpPattenUsage(id=3742, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=9, state=0), UpPattenUsage(id=3743, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=10, state=0), UpPattenUsage(id=3744, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=11, state=0), UpPattenUsage(id=3745, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=12, state=0), UpPattenUsage(id=3746, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=13, state=0), UpPattenUsage(id=3747, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=14, state=0)]
+2025-06-13 08:27:25.898 [http-nio-10015-exec-7] INFO  com.mes.tools.WebSocketServer - 鏈夋柊鐢ㄦ埛鍔犲叆锛寀sername=loadGlassOne, 褰撳墠鍦ㄧ嚎浜烘暟涓猴細1
+2025-06-13 08:27:29.880 [http-nio-10015-exec-9] INFO  com.mes.tools.WebSocketServer - 绉婚櫎username=loadGlassOne涓�鍚嶇敤鎴穝ession, loadGlassOne杩炴帴鍏抽棴, 褰撳墠杩炴帴鏁颁负锛�0
+2025-06-13 08:27:33.229 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:27:53.256 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:28:13.275 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:28:33.303 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:28:53.325 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:29:13.358 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:29:33.395 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:29:53.427 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:30:13.460 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:30:33.480 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:30:53.500 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:31:04.594 [http-nio-10015-exec-2] INFO  com.mes.tools.WebSocketServer - 鏈夋柊鐢ㄦ埛鍔犲叆锛寀sername=loadGlassOne, 褰撳墠鍦ㄧ嚎浜烘暟涓猴細1
+2025-06-13 08:31:04.602 [http-nio-10015-exec-5] INFO  c.m.u.controller.UpPattenUsageController - 鏌ヨ涓婄墖淇℃伅:Engineering(id=null, engineerId=null, engineerName=null, avgAvailability=0.0, validAvailability=0.0, lastAvailability=0.0, state=null, glassTotal=null, glassTotalArea=0.0, planPatternTotal=null, planPatternTotalArea=0.0, realityPatternTotal=null, realityPatternTotalArea=0.0, filmsId=null, notes=null, stationCell=5, filmRemove=null)
+2025-06-13 08:31:04.616 [http-nio-10015-exec-6] INFO  c.m.u.controller.UpPattenUsageController - 鏄剧ず姝e湪鍑虹墖鐨勫伐绋嬩俊鎭�:[UpPattenUsage(id=3734, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=1, state=100), UpPattenUsage(id=3735, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=2, state=100), UpPattenUsage(id=3736, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=3, state=0), UpPattenUsage(id=3737, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=4, state=0), UpPattenUsage(id=3738, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=5, state=0), UpPattenUsage(id=3739, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=6, state=0), UpPattenUsage(id=3740, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=7, state=0), UpPattenUsage(id=3741, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=8, state=0), UpPattenUsage(id=3742, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=9, state=0), UpPattenUsage(id=3743, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=10, state=0), UpPattenUsage(id=3744, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=11, state=0), UpPattenUsage(id=3745, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=12, state=0), UpPattenUsage(id=3746, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=13, state=0), UpPattenUsage(id=3747, engineeringId=P24052001, filmsId=鐧界幓, width=3660.0, height=2250.0, thickness=6.0, layoutSequence=14, state=0)]
+2025-06-13 08:31:13.526 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:31:33.561 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:31:53.601 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:32:13.624 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:32:26.852 [http-nio-10015-exec-10] INFO  com.mes.tools.WebSocketServer - 绉婚櫎username=loadGlassOne涓�鍚嶇敤鎴穝ession, loadGlassOne杩炴帴鍏抽棴, 褰撳墠杩炴帴鏁颁负锛�0
+2025-06-13 08:32:33.648 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:32:53.668 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:33:13.710 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:33:33.749 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:33:53.781 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:34:13.805 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:34:33.828 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:34:53.862 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:35:13.888 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:35:33.918 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:35:53.947 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:36:13.974 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:36:34.020 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:36:54.042 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:37:14.069 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:37:34.094 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:37:54.132 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:38:14.154 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:38:34.192 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:38:54.232 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:39:14.281 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:39:34.314 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:39:54.345 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:40:14.384 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:40:34.399 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:40:54.427 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:41:14.462 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:41:34.498 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:41:54.527 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:42:14.545 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:42:34.562 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:42:54.593 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:43:14.103 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=42, parentId=1, menuName=涓婄墖椤甸潰, icon=null, url=/Returns/upreturns3, languageType=null, status=1, listSort=3, createTime=Thu Oct 31 08:30:43 CST 2024, perms=null, children=null), SysMenu(id=43, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=44, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=45, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null)]
+2025-06-13 08:43:14.105 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"3","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1730334643000,"id":42,"status":1}]
+2025-06-13 08:43:14.105 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":44,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":45,"status":1}]
+2025-06-13 08:43:14.617 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:43:34.639 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:43:54.658 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:44:14.689 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:44:34.724 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:44:54.756 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:45:14.774 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:45:34.797 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:45:54.821 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:46:14.841 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:46:34.863 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:46:54.897 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:47:14.921 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:47:34.948 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:47:54.976 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:48:15.016 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:48:35.048 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:48:52.714 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=42, parentId=1, menuName=涓婄墖椤甸潰, icon=null, url=/Returns/upreturns3, languageType=null, status=1, listSort=3, createTime=Thu Oct 31 08:30:43 CST 2024, perms=null, children=null), SysMenu(id=43, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=44, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=45, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null)]
+2025-06-13 08:48:52.715 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"3","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1730334643000,"id":42,"status":1}]
+2025-06-13 08:48:52.716 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":44,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":45,"status":1}]
+2025-06-13 08:48:55.079 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:49:15.105 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:49:35.134 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:49:55.168 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:50:15.190 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:50:27.670 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=42, parentId=1, menuName=涓婄墖椤甸潰, icon=null, url=/Returns/upreturns3, languageType=null, status=1, listSort=3, createTime=Thu Oct 31 08:30:43 CST 2024, perms=null, children=null), SysMenu(id=43, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=44, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=45, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null)]
+2025-06-13 08:50:27.670 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"3","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1730334643000,"id":42,"status":1}]
+2025-06-13 08:50:27.670 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":44,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":45,"status":1}]
+2025-06-13 08:50:33.673 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=42, parentId=1, menuName=涓婄墖椤甸潰, icon=null, url=/Returns/upreturns3, languageType=null, status=1, listSort=3, createTime=Thu Oct 31 08:30:43 CST 2024, perms=null, children=null), SysMenu(id=43, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=44, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=45, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null)]
+2025-06-13 08:50:33.673 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"3","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1730334643000,"id":42,"status":1}]
+2025-06-13 08:50:33.673 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":44,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":45,"status":1}]
+2025-06-13 08:50:35.231 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:50:55.262 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:51:15.303 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:51:35.340 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:51:53.348 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=42, parentId=1, menuName=涓婄墖椤甸潰, icon=null, url=/Returns/upreturns3, languageType=null, status=1, listSort=3, createTime=Thu Oct 31 08:30:43 CST 2024, perms=null, children=null), SysMenu(id=43, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=44, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=45, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null)]
+2025-06-13 08:51:53.348 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"3","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1730334643000,"id":42,"status":1}]
+2025-06-13 08:51:53.349 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":44,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":45,"status":1}]
+2025-06-13 08:51:55.373 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:52:15.400 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:52:35.424 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:52:55.449 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:53:15.467 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:53:35.491 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:53:55.521 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:54:15.547 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:54:35.590 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:54:55.605 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:55:15.622 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:55:35.659 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:55:55.695 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:56:15.711 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:56:35.727 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:56:55.754 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:57:15.782 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:57:35.807 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:57:55.832 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:58:15.848 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:58:26.185 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=42, parentId=1, menuName=涓婄墖椤甸潰, icon=null, url=/Returns/upreturns3, languageType=null, status=1, listSort=3, createTime=Thu Oct 31 08:30:43 CST 2024, perms=null, children=null), SysMenu(id=43, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=44, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=45, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null)]
+2025-06-13 08:58:26.186 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"3","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1730334643000,"id":42,"status":1}]
+2025-06-13 08:58:26.186 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":44,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":45,"status":1}]
+2025-06-13 08:58:35.863 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:58:55.887 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:59:15.918 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:59:35.957 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 08:59:55.996 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:00:09.357 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=42, parentId=1, menuName=涓婄墖椤甸潰, icon=null, url=/Returns/upreturns3, languageType=null, status=1, listSort=3, createTime=Thu Oct 31 08:30:43 CST 2024, perms=null, children=null), SysMenu(id=43, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=44, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=45, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null)]
+2025-06-13 09:00:09.357 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"3","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1730334643000,"id":42,"status":1}]
+2025-06-13 09:00:09.358 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":44,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":45,"status":1}]
+2025-06-13 09:00:16.027 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:00:24.727 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=42, parentId=1, menuName=涓婄墖椤甸潰, icon=null, url=/Returns/upreturns3, languageType=null, status=1, listSort=3, createTime=Thu Oct 31 08:30:43 CST 2024, perms=null, children=null), SysMenu(id=43, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=44, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=45, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null)]
+2025-06-13 09:00:24.728 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"3","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1730334643000,"id":42,"status":1}]
+2025-06-13 09:00:24.728 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":44,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":45,"status":1}]
+2025-06-13 09:00:36.061 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:00:56.093 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:01:16.119 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:01:36.140 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:01:56.185 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:02:16.211 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:02:36.237 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:02:56.256 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:03:16.283 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:03:36.310 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:03:56.341 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:04:16.372 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:04:36.401 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:04:56.433 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:05:16.470 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:05:36.509 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:05:56.533 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:06:16.553 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:06:36.583 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:06:56.623 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:07:16.644 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:07:36.682 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:07:56.715 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:08:16.739 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:08:36.770 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:08:56.792 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:09:16.817 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:09:36.847 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:09:56.866 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:10:16.896 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:10:36.922 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:10:56.956 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:11:16.986 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:11:37.014 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:11:57.047 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:12:17.074 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:12:37.089 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:12:57.118 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:13:17.148 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:13:37.169 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:13:57.195 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:14:17.221 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:14:37.266 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:14:57.296 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:15:17.330 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:15:37.363 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:15:57.394 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:16:17.409 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:16:37.447 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:16:56.297 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=42, parentId=1, menuName=涓婄墖椤甸潰, icon=null, url=/Returns/upreturns3, languageType=null, status=1, listSort=3, createTime=Thu Oct 31 08:30:43 CST 2024, perms=null, children=null), SysMenu(id=43, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=44, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=45, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null)]
+2025-06-13 09:16:56.297 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"3","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1730334643000,"id":42,"status":1}]
+2025-06-13 09:16:56.297 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":44,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":45,"status":1}]
+2025-06-13 09:16:57.477 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:17:17.494 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:17:37.527 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:17:38.498 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=42, parentId=1, menuName=涓婄墖椤甸潰, icon=null, url=/Returns/upreturns3, languageType=null, status=1, listSort=3, createTime=Thu Oct 31 08:30:43 CST 2024, perms=null, children=null), SysMenu(id=43, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=44, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=45, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null)]
+2025-06-13 09:17:38.499 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"3","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1730334643000,"id":42,"status":1}]
+2025-06-13 09:17:38.499 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":44,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":45,"status":1}]
+2025-06-13 09:17:57.560 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:18:17.581 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:18:37.610 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:18:57.625 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:19:01.102 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=42, parentId=1, menuName=涓婄墖椤甸潰, icon=null, url=/Returns/upreturns3, languageType=null, status=1, listSort=3, createTime=Thu Oct 31 08:30:43 CST 2024, perms=null, children=null), SysMenu(id=43, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=44, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=45, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null)]
+2025-06-13 09:19:01.102 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"3","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1730334643000,"id":42,"status":1}]
+2025-06-13 09:19:01.103 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":44,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":45,"status":1}]
+2025-06-13 09:19:17.655 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:19:37.685 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:19:57.707 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:20:17.747 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:20:28.342 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=42, parentId=1, menuName=涓婄墖椤甸潰, icon=null, url=/Returns/upreturns3, languageType=null, status=1, listSort=3, createTime=Thu Oct 31 08:30:43 CST 2024, perms=null, children=null), SysMenu(id=43, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=44, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=45, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null)]
+2025-06-13 09:20:28.342 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"3","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1730334643000,"id":42,"status":1}]
+2025-06-13 09:20:28.342 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":44,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":45,"status":1}]
+2025-06-13 09:20:37.778 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:20:57.810 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:21:05.147 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=42, parentId=1, menuName=涓婄墖椤甸潰, icon=null, url=/Returns/upreturns3, languageType=null, status=1, listSort=3, createTime=Thu Oct 31 08:30:43 CST 2024, perms=null, children=null), SysMenu(id=43, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=44, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=45, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null)]
+2025-06-13 09:21:05.147 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"3","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1730334643000,"id":42,"status":1}]
+2025-06-13 09:21:05.147 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":44,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":45,"status":1}]
+2025-06-13 09:21:17.828 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:21:37.847 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:21:57.875 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:22:17.895 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:22:37.922 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:22:57.952 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:23:08.191 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=42, parentId=1, menuName=涓婄墖椤甸潰, icon=null, url=/Returns/upreturns3, languageType=null, status=1, listSort=3, createTime=Thu Oct 31 08:30:43 CST 2024, perms=null, children=null), SysMenu(id=43, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=44, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=45, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null)]
+2025-06-13 09:23:08.192 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"3","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1730334643000,"id":42,"status":1}]
+2025-06-13 09:23:08.192 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":44,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":45,"status":1}]
+2025-06-13 09:23:17.980 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:23:38.004 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:23:58.034 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:24:18.050 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:24:29.347 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=42, parentId=1, menuName=涓婄墖椤甸潰, icon=null, url=/Returns/upreturns3, languageType=null, status=1, listSort=3, createTime=Thu Oct 31 08:30:43 CST 2024, perms=null, children=null), SysMenu(id=43, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=44, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=45, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null)]
+2025-06-13 09:24:29.348 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"3","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1730334643000,"id":42,"status":1}]
+2025-06-13 09:24:29.348 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":44,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":45,"status":1}]
+2025-06-13 09:24:38.079 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:24:58.109 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:25:18.129 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:25:34.107 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=42, parentId=1, menuName=涓婄墖椤甸潰, icon=null, url=/Returns/upreturns3, languageType=null, status=1, listSort=3, createTime=Thu Oct 31 08:30:43 CST 2024, perms=null, children=null), SysMenu(id=43, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=44, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=45, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null)]
+2025-06-13 09:25:34.108 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"3","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1730334643000,"id":42,"status":1}]
+2025-06-13 09:25:34.108 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":44,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":45,"status":1}]
+2025-06-13 09:25:38.147 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:25:58.170 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:26:18.197 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:26:38.217 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:26:58.236 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:27:18.264 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:27:38.283 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:27:58.308 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:28:18.341 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:28:38.372 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:28:58.405 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:29:11.449 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=42, parentId=1, menuName=涓婄墖椤甸潰, icon=null, url=/Returns/upreturns3, languageType=null, status=1, listSort=3, createTime=Thu Oct 31 08:30:43 CST 2024, perms=null, children=null), SysMenu(id=43, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=44, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=45, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null)]
+2025-06-13 09:29:11.449 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"3","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1730334643000,"id":42,"status":1}]
+2025-06-13 09:29:11.450 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":44,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":45,"status":1}]
+2025-06-13 09:29:18.442 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:29:32.384 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=42, parentId=1, menuName=涓婄墖椤甸潰, icon=null, url=/Returns/upreturns3, languageType=null, status=1, listSort=3, createTime=Thu Oct 31 08:30:43 CST 2024, perms=null, children=null), SysMenu(id=43, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=44, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=45, parentId=43, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null)]
+2025-06-13 09:29:32.384 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"3","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1730334643000,"id":42,"status":1}]
+2025-06-13 09:29:32.384 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":44,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":43,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":45,"status":1}]
+2025-06-13 09:29:38.476 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:29:58.491 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:30:18.511 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:30:38.553 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:30:58.581 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:31:18.601 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:31:38.624 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:31:58.653 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:32:18.681 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:32:38.708 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:32:58.748 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:33:18.770 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:33:38.810 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:33:58.843 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:34:18.868 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:34:38.907 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:34:58.933 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:35:18.960 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:35:38.985 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:35:59.021 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:36:19.065 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:36:39.093 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:36:59.132 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:37:19.152 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:37:39.168 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:37:59.199 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:38:19.219 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:38:39.244 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:38:59.270 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:39:19.293 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:39:39.315 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:39:59.335 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:40:19.366 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:40:39.398 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:40:59.417 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:41:19.454 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:41:39.478 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:41:59.504 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:42:19.533 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:42:39.558 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:42:59.587 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:43:19.629 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:43:39.670 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:43:59.695 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:44:19.733 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:44:39.761 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:44:59.807 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:45:19.837 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:45:39.870 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:45:59.920 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:46:19.965 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:46:39.998 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:47:00.027 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:47:20.068 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:47:40.113 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:48:00.153 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:48:20.193 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:48:40.241 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:49:00.271 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:49:20.314 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:49:40.339 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:49:50.094 [Thread-43] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Shutting down ExecutorService 'taskScheduler'
+2025-06-13 09:49:50.099 [Thread-43] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - De-registering from Nacos Server now...
+2025-06-13 09:49:50.104 [Thread-43] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - De-registration finished.
+2025-06-13 09:49:50.111 [Thread-43] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Shutting down ExecutorService 'applicationTaskExecutor'
+2025-06-13 09:49:50.130 [Thread-43] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 09:49:50.156 [Thread-43] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 09:49:50.160 [Thread-43] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 09:49:50.164 [Thread-43] INFO  c.k.milo.configuration.MiloAutoConfiguration - all opcUaClients are closed
+2025-06-13 09:49:50.166 [Thread-43] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource start closing ....
+2025-06-13 09:49:50.180 [Thread-43] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-2} closed
+2025-06-13 09:49:50.180 [Thread-43] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-3} closed
+2025-06-13 09:49:50.188 [Thread-43] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1} closed
+2025-06-13 09:49:50.188 [Thread-43] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
+2025-06-13 09:49:57.616 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$a8c9d6fc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 09:49:59.053 [main] INFO  com.mes.LoadGlassModuleApplication - The following profiles are active: dev
+2025-06-13 09:49:59.754 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
+2025-06-13 09:49:59.755 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
+2025-06-13 09:49:59.801 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 35ms. Found 0 repository interfaces.
+2025-06-13 09:49:59.969 [main] INFO  o.springframework.cloud.context.scope.GenericScope - BeanFactory id=af6f9514-4bd4-360c-8654-4345edb346a4
+2025-06-13 09:50:00.057 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$8cafd3ff] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 09:50:00.091 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'spring.datasource.dynamic-com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 09:50:00.095 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$f63e44d0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 09:50:00.215 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'dsProcessor' of type [com.baomidou.dynamic.datasource.processor.DsHeaderProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 09:50:00.236 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration' of type [org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration$$EnhancerBySpringCGLIB$$255d9c39] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 09:50:00.240 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'objectPostProcessor' of type [org.springframework.security.config.annotation.configuration.AutowireBeanFactoryObjectPostProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 09:50:00.242 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@6aa7e176' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 09:50:00.243 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration' of type [org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration$$EnhancerBySpringCGLIB$$4a323eeb] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 09:50:00.247 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 09:50:00.280 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$a8c9d6fc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 09:50:00.493 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 10015 (http)
+2025-06-13 09:50:00.504 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-10015"]
+2025-06-13 09:50:00.511 [main] INFO  org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-06-13 09:50:00.511 [main] INFO  org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.24]
+2025-06-13 09:50:00.516 [main] INFO  org.apache.catalina.core.AprLifecycleListener - Loaded APR based Apache Tomcat Native library [1.3.1] using APR version [1.7.4].
+2025-06-13 09:50:00.516 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
+2025-06-13 09:50:00.516 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
+2025-06-13 09:50:00.520 [main] INFO  org.apache.catalina.core.AprLifecycleListener - OpenSSL successfully initialized [OpenSSL 3.0.14 4 Jun 2024]
+2025-06-13 09:50:00.624 [main] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
+2025-06-13 09:50:00.624 [main] INFO  org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 1558 ms
+2025-06-13 09:50:00.684 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join properties config complete
+2025-06-13 09:50:00.791 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1,northGlassMes} inited
+2025-06-13 09:50:00.794 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-2,pp} inited
+2025-06-13 09:50:00.798 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-3,sd} inited
+2025-06-13 09:50:00.798 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [pp] success
+2025-06-13 09:50:00.798 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [sd] success
+2025-06-13 09:50:00.798 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [northGlassMes] success
+2025-06-13 09:50:00.798 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource initial loaded [3] datasource,primary datasource named [northGlassMes]
+2025-06-13 09:50:00.849 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join SqlInjector init
+2025-06-13 09:50:02.577 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Java version: 1.8.0_101
+2025-06-13 09:50:02.578 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Eclipse Milo OPC UA Stack version: 0.6.8
+2025-06-13 09:50:02.578 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Eclipse Milo OPC UA Client SDK version: 0.6.8
+2025-06-13 09:50:03.908 [milo-nonce-util-secure-random] INFO  org.eclipse.milo.opcua.stack.core.util.NonceUtil - SecureRandom seeded in 0ms.
+2025-06-13 09:50:05.189 [main] INFO  s.d.s.w.WebMvcPropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [public org.springframework.http.ResponseEntity<springfox.documentation.spring.web.json.Json> springfox.documentation.swagger2.web.Swagger2ControllerWebMvc.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest)]
+2025-06-13 09:50:05.248 [main] INFO  o.s.security.web.DefaultSecurityFilterChain - Creating filter chain: any request, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@74797b90, org.springframework.security.web.context.SecurityContextPersistenceFilter@510a2c7, org.springframework.security.web.header.HeaderWriterFilter@59043741, org.springframework.web.filter.CorsFilter@7676b2b9, org.springframework.security.web.authentication.logout.LogoutFilter@58d79479, com.mes.common.filter.JwtAuthenticationTokenFilter@30af23fd, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@24563809, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@1ea19c97, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@57ab4b33, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@720c0996, org.springframework.security.web.session.SessionManagementFilter@64cdc310, org.springframework.security.web.access.ExceptionTranslationFilter@5af641d3, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@ea0c99c]
+2025-06-13 09:50:05.262 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-06-13 09:50:05.265 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-06-13 09:50:05.404 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
+2025-06-13 09:50:06.981 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 09:50:07.014 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService
+2025-06-13 09:50:07.192 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService 'taskScheduler'
+2025-06-13 09:50:08.573 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 09:50:08.756 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Documentation plugins bootstrapped
+2025-06-13 09:50:08.759 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
+2025-06-13 09:50:08.787 [main] INFO  s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
+2025-06-13 09:50:08.939 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: listByStateUsingPOST_1
+2025-06-13 09:50:08.944 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: selectDamageUsingPOST_1
+2025-06-13 09:50:09.025 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-10015"]
+2025-06-13 09:50:09.042 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 10015 (http) with context path ''
+2025-06-13 09:50:09.080 [main] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - nacos registry, loadGlass 26.246.64.36:10015 register finished
+2025-06-13 09:50:10.436 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 09:50:10.437 [main] INFO  com.mes.LoadGlassModuleApplication - Started LoadGlassModuleApplication in 15.235 seconds (JVM running for 16.195)
+2025-06-13 09:50:10.439 [main] INFO  com.mes.AppRunnerConfig - 鍚姩瀹屾垚
+2025-06-13 09:50:19.454 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:50:39.490 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:50:45.254 [http-nio-10015-exec-1] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-06-13 09:50:45.254 [http-nio-10015-exec-1] INFO  org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-06-13 09:50:45.263 [http-nio-10015-exec-1] INFO  org.springframework.web.servlet.DispatcherServlet - Completed initialization in 9 ms
+2025-06-13 09:50:59.535 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:51:19.567 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:51:39.600 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:51:59.638 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:52:06.650 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 09:52:06.662 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 09:52:06.662 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:52:06.662 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:52:06.662 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:52:06.662 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:52:06.663 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:52:06.663 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:52:06.663 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:52:06.663 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:52:06.663 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:52:15.548 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 09:52:15.549 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 09:52:15.549 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:52:15.549 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:52:15.549 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:52:15.549 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:52:15.550 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:52:15.550 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:52:15.550 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:52:15.550 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:52:15.550 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:52:15.550 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓篠ysUser(id=1, userName=admin, nickName=admin, password=$2a$10$mFKyOBNO8hdNafPR18hjeuiDvG2zpIS6IgIRiWHk1b.IjIWNkj.l2, status=0, avatar=null, userType=1, delFlag=0)
+2025-06-13 09:52:19.690 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:52:35.713 [http-nio-10015-exec-10] INFO  com.mes.role.service.impl.SysRoleServiceImpl - 淇濆瓨瑙掕壊淇℃伅锛岀敓鎴愬搴旂殑瑙掕壊id
+2025-06-13 09:52:35.726 [http-nio-10015-exec-10] INFO  com.mes.role.service.impl.SysRoleServiceImpl - 閰嶇疆瑙掕壊鑿滃崟鍏崇郴
+2025-06-13 09:52:35.726 [http-nio-10015-exec-10] INFO  com.mes.role.service.impl.SysRoleServiceImpl - 娓呯┖瑙掕壊鏉冮檺琛ㄤ腑璇ヨ鑹蹭俊鎭�
+2025-06-13 09:52:39.061 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 09:52:39.063 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 09:52:39.063 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:52:39.064 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:52:39.064 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:52:39.064 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:52:39.064 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:52:39.064 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:52:39.065 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:52:39.065 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:52:39.065 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:52:39.065 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓篠ysUser(id=1, userName=admin, nickName=admin, password=$2a$10$mFKyOBNO8hdNafPR18hjeuiDvG2zpIS6IgIRiWHk1b.IjIWNkj.l2, status=0, avatar=null, userType=1, delFlag=0)
+2025-06-13 09:52:39.715 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:52:40.835 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 09:52:40.837 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 09:52:40.837 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:52:40.837 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:52:40.837 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:52:40.837 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:52:40.837 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:52:40.837 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:52:40.837 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:52:40.837 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:52:40.837 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:52:40.837 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓篠ysUser(id=1, userName=admin, nickName=admin, password=$2a$10$mFKyOBNO8hdNafPR18hjeuiDvG2zpIS6IgIRiWHk1b.IjIWNkj.l2, status=0, avatar=null, userType=1, delFlag=0)
+2025-06-13 09:52:52.867 [http-nio-10015-exec-8] INFO  com.mes.userinfo.service.impl.SysUserServiceImpl - 淇濆瓨鐢ㄦ埛淇℃伅
+2025-06-13 09:52:52.940 [http-nio-10015-exec-8] INFO  com.mes.userinfo.service.impl.SysUserServiceImpl - 淇濆瓨鐢ㄦ埛瑙掕壊淇℃伅
+2025-06-13 09:52:52.940 [http-nio-10015-exec-8] INFO  com.mes.userinfo.service.impl.SysUserServiceImpl - 淇濆瓨鐢ㄦ埛瑙掕壊淇℃伅
+2025-06-13 09:52:59.729 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:53:19.766 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:53:39.802 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:53:59.822 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:54:19.855 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:54:39.892 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:54:59.925 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:55:19.954 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:55:39.977 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:56:00.002 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:56:20.040 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:56:40.077 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:57:00.102 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:57:16.671 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖涓�绾�, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 09:57:16.672 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1},{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖涓�绾�","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 09:57:16.672 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:57:16.672 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:57:16.672 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:57:16.673 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:57:16.673 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:57:16.673 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:57:16.673 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:57:16.673 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:57:16.673 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:57:16.673 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 09:57:18.873 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖涓�绾�, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 09:57:18.873 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1},{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖涓�绾�","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 09:57:18.873 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:57:18.873 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:57:18.873 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:57:18.873 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:57:18.873 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:57:18.873 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:57:18.873 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:57:18.873 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:57:18.873 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:57:18.873 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 09:57:20.128 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:57:21.777 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖涓�绾�, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 09:57:21.777 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1},{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖涓�绾�","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 09:57:21.777 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:57:21.777 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:57:21.777 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:57:21.777 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:57:21.777 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:57:21.777 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:57:21.777 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:57:21.777 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:57:21.777 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:57:21.777 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 09:57:29.619 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖涓�绾�, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 09:57:29.620 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1},{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖涓�绾�","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 09:57:29.620 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:57:29.620 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:57:29.620 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:57:29.620 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:57:29.620 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:57:29.620 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:57:29.620 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:57:29.620 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:57:29.620 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:57:29.620 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 09:57:40.167 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:58:00.198 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:58:11.517 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖涓�绾�, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 09:58:11.517 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1},{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖涓�绾�","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 09:58:11.517 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:58:11.517 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:58:11.517 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:58:11.517 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:58:11.518 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:58:11.518 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:58:11.518 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:58:11.518 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:58:11.518 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:58:11.518 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 09:58:20.226 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:58:22.936 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖涓�绾�, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 09:58:22.937 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1},{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖涓�绾�","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 09:58:22.937 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:58:22.937 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:58:22.937 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:58:22.937 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:58:22.937 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:58:22.937 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:58:22.937 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:58:22.937 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:58:22.937 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:58:22.937 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 09:58:22.937 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓篠ysUser(id=17, userName=alg001, nickName=alg001, password=$2a$10$fHqjweOS07K6cISyF7VgbO29dz7ErIWqaUe8xVqwPeh.WuGFAIBcq, status=0, avatar=null, userType=1, delFlag=0)
+2025-06-13 09:58:25.045 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖涓�绾�, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 09:58:25.045 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1},{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖涓�绾�","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 09:58:25.046 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:58:25.046 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:58:25.046 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:58:25.046 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:58:25.046 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:58:25.047 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:58:25.047 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:58:25.047 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:58:25.047 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:58:25.047 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 09:58:25.047 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓篠ysUser(id=17, userName=alg001, nickName=alg001, password=$2a$10$fHqjweOS07K6cISyF7VgbO29dz7ErIWqaUe8xVqwPeh.WuGFAIBcq, status=0, avatar=null, userType=1, delFlag=0)
+2025-06-13 09:58:34.548 [http-nio-10015-exec-8] INFO  com.mes.role.service.impl.SysRoleServiceImpl - 淇濆瓨瑙掕壊淇℃伅锛岀敓鎴愬搴旂殑瑙掕壊id
+2025-06-13 09:58:34.553 [http-nio-10015-exec-8] INFO  com.mes.role.service.impl.SysRoleServiceImpl - 閰嶇疆瑙掕壊鑿滃崟鍏崇郴
+2025-06-13 09:58:37.337 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 09:58:37.338 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 09:58:37.339 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:58:37.339 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:58:37.339 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:58:37.339 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:58:37.339 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:58:37.339 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:58:37.339 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:58:37.339 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:58:37.339 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:58:37.340 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 09:58:37.340 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 09:58:37.340 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:58:37.340 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:58:37.341 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:58:37.341 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:58:37.341 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:58:37.341 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:58:37.341 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:58:37.341 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:58:37.341 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:58:37.341 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓篠ysUser(id=17, userName=alg001, nickName=alg001, password=$2a$10$fHqjweOS07K6cISyF7VgbO29dz7ErIWqaUe8xVqwPeh.WuGFAIBcq, status=0, avatar=null, userType=1, delFlag=0)
+2025-06-13 09:58:38.482 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 09:58:38.482 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 09:58:38.483 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 09:58:38.483 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:58:38.483 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 09:58:38.483 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:58:38.483 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:58:38.483 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:58:38.483 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:58:38.483 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:58:38.483 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:58:38.483 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:58:38.483 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:58:38.483 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:58:38.483 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:58:38.483 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:58:38.483 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:58:38.483 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:58:38.483 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:58:38.483 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:58:38.483 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓篠ysUser(id=17, userName=alg001, nickName=alg001, password=$2a$10$fHqjweOS07K6cISyF7VgbO29dz7ErIWqaUe8xVqwPeh.WuGFAIBcq, status=0, avatar=null, userType=1, delFlag=0)
+2025-06-13 09:58:38.483 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:58:38.483 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:58:40.261 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:58:46.924 [http-nio-10015-exec-8] INFO  com.mes.role.service.impl.SysRoleServiceImpl - 淇濆瓨瑙掕壊淇℃伅锛岀敓鎴愬搴旂殑瑙掕壊id
+2025-06-13 09:58:46.925 [http-nio-10015-exec-8] INFO  com.mes.role.service.impl.SysRoleServiceImpl - 閰嶇疆瑙掕壊鑿滃崟鍏崇郴
+2025-06-13 09:58:48.732 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 09:58:48.732 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 09:58:48.732 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 09:58:48.732 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:58:48.732 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 09:58:48.732 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:58:48.732 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:58:48.732 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:58:48.732 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:58:48.732 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:58:48.732 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:58:48.732 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:58:48.732 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:58:48.732 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:58:48.733 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:58:48.733 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:58:48.733 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:58:48.733 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:58:48.733 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:58:48.733 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:58:48.733 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:58:48.733 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓篠ysUser(id=17, userName=alg001, nickName=alg001, password=$2a$10$fHqjweOS07K6cISyF7VgbO29dz7ErIWqaUe8xVqwPeh.WuGFAIBcq, status=0, avatar=null, userType=1, delFlag=0)
+2025-06-13 09:58:48.733 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:59:00.292 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:59:07.723 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 09:59:07.723 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 09:59:07.723 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:59:07.723 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:59:07.723 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:59:07.723 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:59:07.723 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:59:07.723 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:59:07.723 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:59:07.723 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:59:07.723 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:59:07.734 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 09:59:07.735 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 09:59:07.735 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:59:07.735 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:59:07.735 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:59:07.735 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:59:07.735 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:59:07.735 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:59:07.735 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:59:07.735 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:59:07.735 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:59:07.735 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓篠ysUser(id=17, userName=alg001, nickName=alg001, password=$2a$10$fHqjweOS07K6cISyF7VgbO29dz7ErIWqaUe8xVqwPeh.WuGFAIBcq, status=0, avatar=null, userType=1, delFlag=0)
+2025-06-13 09:59:10.639 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 09:59:10.640 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 09:59:10.640 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:59:10.640 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:59:10.640 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:59:10.641 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:59:10.641 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:59:10.641 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:59:10.641 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:59:10.641 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:59:10.641 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:59:15.927 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 09:59:15.927 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 09:59:15.928 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:59:15.928 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:59:15.928 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:59:15.928 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:59:15.928 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:59:15.928 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:59:15.928 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:59:15.928 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:59:15.928 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:59:17.512 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 09:59:17.513 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 09:59:17.513 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:59:17.513 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:59:17.513 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:59:17.513 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:59:17.513 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:59:17.513 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:59:17.513 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:59:17.513 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:59:17.513 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:59:17.513 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓篠ysUser(id=1, userName=admin, nickName=admin, password=$2a$10$mFKyOBNO8hdNafPR18hjeuiDvG2zpIS6IgIRiWHk1b.IjIWNkj.l2, status=0, avatar=null, userType=1, delFlag=0)
+2025-06-13 09:59:20.324 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 09:59:25.346 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 09:59:25.346 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 09:59:25.346 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:59:25.346 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:59:25.346 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:59:25.346 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:59:25.346 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:59:25.347 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:59:25.347 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:59:25.347 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:59:25.347 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:59:25.347 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓篠ysUser(id=1, userName=admin, nickName=admin, password=$2a$10$mFKyOBNO8hdNafPR18hjeuiDvG2zpIS6IgIRiWHk1b.IjIWNkj.l2, status=0, avatar=null, userType=1, delFlag=0)
+2025-06-13 09:59:27.698 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 09:59:27.699 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 09:59:27.699 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:59:27.699 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:59:27.699 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:59:27.699 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:59:27.699 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:59:27.699 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:59:27.699 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:59:27.699 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:59:27.699 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:59:27.699 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓篠ysUser(id=1, userName=admin, nickName=admin, password=$2a$10$mFKyOBNO8hdNafPR18hjeuiDvG2zpIS6IgIRiWHk1b.IjIWNkj.l2, status=0, avatar=null, userType=1, delFlag=0)
+2025-06-13 09:59:34.866 [http-nio-10015-exec-10] INFO  com.mes.role.service.impl.SysRoleServiceImpl - 淇濆瓨瑙掕壊淇℃伅锛岀敓鎴愬搴旂殑瑙掕壊id
+2025-06-13 09:59:34.867 [http-nio-10015-exec-10] INFO  com.mes.role.service.impl.SysRoleServiceImpl - 閰嶇疆瑙掕壊鑿滃崟鍏崇郴
+2025-06-13 09:59:34.867 [http-nio-10015-exec-10] INFO  com.mes.role.service.impl.SysRoleServiceImpl - 娓呯┖瑙掕壊鏉冮檺琛ㄤ腑璇ヨ鑹蹭俊鎭�
+2025-06-13 09:59:39.089 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 09:59:39.089 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 09:59:39.089 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 09:59:39.090 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 09:59:39.090 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 09:59:39.090 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 09:59:39.090 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 09:59:39.090 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 09:59:39.090 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 09:59:39.090 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 09:59:39.090 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 09:59:40.356 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:00:00.383 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:00:20.406 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:00:40.420 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:01:00.443 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:01:20.465 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:01:36.720 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 10:01:36.720 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 10:01:36.720 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 10:01:36.720 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 10:01:36.720 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 10:01:36.720 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 10:01:36.720 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 10:01:36.720 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 10:01:36.720 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 10:01:36.720 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 10:01:36.720 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 10:01:40.486 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:02:00.517 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:02:20.536 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:02:28.396 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 10:02:28.396 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 10:02:28.397 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 10:02:28.397 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 10:02:28.397 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 10:02:28.397 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 10:02:28.397 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 10:02:28.397 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 10:02:28.397 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 10:02:28.397 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 10:02:28.397 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 10:02:29.592 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 10:02:29.593 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 10:02:29.593 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 10:02:29.593 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 10:02:29.593 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 10:02:29.593 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 10:02:29.593 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 10:02:29.593 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 10:02:29.593 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 10:02:29.593 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 10:02:29.593 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 10:02:33.052 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 10:02:33.053 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 10:02:33.053 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 10:02:33.053 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 10:02:33.053 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 10:02:33.053 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 10:02:33.053 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 10:02:33.053 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 10:02:33.053 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 10:02:33.053 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 10:02:33.053 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 10:02:40.567 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:02:52.620 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 10:02:52.620 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 10:02:52.620 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 10:02:52.620 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 10:02:52.621 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 10:02:52.621 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 10:02:52.621 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 10:02:52.621 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 10:02:52.621 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 10:02:52.621 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 10:02:52.621 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 10:03:00.597 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:03:20.629 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:03:40.651 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:03:56.399 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 10:03:56.399 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 10:03:56.399 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 10:03:56.399 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 10:03:56.399 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 10:03:56.399 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 10:03:56.399 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 10:03:56.399 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 10:03:56.399 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 10:03:56.400 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 10:03:56.400 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 10:04:00.684 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:04:01.451 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 10:04:01.451 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 10:04:01.451 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 10:04:01.451 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 10:04:01.451 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 10:04:01.451 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 10:04:01.451 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 10:04:01.451 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 10:04:01.451 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 10:04:01.451 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 10:04:01.451 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 10:04:01.451 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓篠ysUser(id=17, userName=alg001, nickName=alg001, password=$2a$10$fHqjweOS07K6cISyF7VgbO29dz7ErIWqaUe8xVqwPeh.WuGFAIBcq, status=0, avatar=null, userType=1, delFlag=0)
+2025-06-13 10:04:02.963 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 10:04:02.963 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 10:04:02.963 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 10:04:02.964 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 10:04:02.964 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 10:04:02.964 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 10:04:02.964 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 10:04:02.964 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 10:04:02.964 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 10:04:02.964 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 10:04:02.964 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 10:04:02.964 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓篠ysUser(id=17, userName=alg001, nickName=alg001, password=$2a$10$fHqjweOS07K6cISyF7VgbO29dz7ErIWqaUe8xVqwPeh.WuGFAIBcq, status=0, avatar=null, userType=1, delFlag=0)
+2025-06-13 10:04:10.100 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 10:04:10.100 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 10:04:10.100 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 10:04:10.100 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 10:04:10.100 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 10:04:10.100 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 10:04:10.100 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 10:04:10.100 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 10:04:10.100 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 10:04:10.100 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 10:04:10.100 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 10:04:10.100 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓篠ysUser(id=17, userName=alg001, nickName=alg001, password=$2a$10$fHqjweOS07K6cISyF7VgbO29dz7ErIWqaUe8xVqwPeh.WuGFAIBcq, status=0, avatar=null, userType=1, delFlag=0)
+2025-06-13 10:04:16.819 [http-nio-10015-exec-6] INFO  com.mes.userinfo.service.impl.SysUserServiceImpl - 鏇存柊鐢ㄦ埛淇℃伅
+2025-06-13 10:04:16.821 [http-nio-10015-exec-6] INFO  com.mes.userinfo.service.impl.SysUserServiceImpl - 鍒犻櫎鐢ㄦ埛瑙掕壊淇℃伅
+2025-06-13 10:04:18.091 [http-nio-10015-exec-1] INFO  com.mes.userinfo.service.impl.SysUserServiceImpl - 鏇存柊鐢ㄦ埛淇℃伅
+2025-06-13 10:04:18.092 [http-nio-10015-exec-1] INFO  com.mes.userinfo.service.impl.SysUserServiceImpl - 鍒犻櫎鐢ㄦ埛瑙掕壊淇℃伅
+2025-06-13 10:04:20.712 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:04:40.726 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:04:51.473 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 10:04:51.473 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 10:04:51.473 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 10:04:51.473 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 10:04:51.473 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 10:04:51.473 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 10:04:51.473 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 10:04:51.473 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 10:04:51.473 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 10:04:51.473 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 10:04:51.473 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 10:05:00.753 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:05:05.518 [http-nio-10015-exec-8] INFO  com.mes.userinfo.service.impl.SysUserServiceImpl - 淇濆瓨鐢ㄦ埛淇℃伅
+2025-06-13 10:05:05.588 [http-nio-10015-exec-8] INFO  com.mes.userinfo.service.impl.SysUserServiceImpl - 淇濆瓨鐢ㄦ埛瑙掕壊淇℃伅
+2025-06-13 10:05:05.588 [http-nio-10015-exec-8] INFO  com.mes.userinfo.service.impl.SysUserServiceImpl - 淇濆瓨鐢ㄦ埛瑙掕壊淇℃伅
+2025-06-13 10:05:12.796 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 10:05:12.796 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 10:05:12.796 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 10:05:12.796 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 10:05:12.796 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 10:05:12.796 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 10:05:12.796 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 10:05:12.796 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 10:05:12.797 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 10:05:12.797 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 10:05:12.797 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 10:05:20.778 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:05:40.798 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:05:57.552 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 10:05:57.553 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 10:05:57.553 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 10:05:57.553 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 10:05:57.554 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 10:05:57.554 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 10:05:57.554 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 10:05:57.554 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 10:05:57.554 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 10:05:57.554 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 10:05:57.554 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 10:06:00.827 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:06:11.789 [http-nio-10015-exec-8] INFO  com.mes.userinfo.service.impl.SysUserServiceImpl - 鏇存柊鐢ㄦ埛淇℃伅
+2025-06-13 10:06:11.790 [http-nio-10015-exec-8] INFO  com.mes.userinfo.service.impl.SysUserServiceImpl - 鍒犻櫎鐢ㄦ埛瑙掕壊淇℃伅
+2025-06-13 10:06:12.601 [http-nio-10015-exec-6] INFO  com.mes.userinfo.service.impl.SysUserServiceImpl - 鏇存柊鐢ㄦ埛淇℃伅
+2025-06-13 10:06:12.601 [http-nio-10015-exec-6] INFO  com.mes.userinfo.service.impl.SysUserServiceImpl - 鍒犻櫎鐢ㄦ埛瑙掕壊淇℃伅
+2025-06-13 10:06:13.021 [http-nio-10015-exec-1] INFO  com.mes.userinfo.service.impl.SysUserServiceImpl - 鏇存柊鐢ㄦ埛淇℃伅
+2025-06-13 10:06:13.022 [http-nio-10015-exec-1] INFO  com.mes.userinfo.service.impl.SysUserServiceImpl - 鍒犻櫎鐢ㄦ埛瑙掕壊淇℃伅
+2025-06-13 10:06:20.701 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=2, parentId=0, menuName=鎺扮墖/璇嗗埆, icon=null, url=null, languageType=null, status=1, listSort=2, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp, children=null), SysMenu(id=3, parentId=0, menuName=鍗у紡缂撳瓨, icon=, url=null, languageType=null, status=1, listSort=3, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc, children=null), SysMenu(id=4, parentId=0, menuName=纾ㄨ竟锛堝喎鍔犲伐锛�, icon=null, url=null, languageType=null, status=1, listSort=4, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb, children=null), SysMenu(id=5, parentId=0, menuName=澶х悊鐗囩, icon=null, url=null, languageType=null, status=1, listSort=5, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl, children=null), SysMenu(id=6, parentId=0, menuName=閽㈠寲, icon=null, url=null, languageType=null, status=1, listSort=6, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh, children=null), SysMenu(id=7, parentId=0, menuName=涓嬬墖鍙�, icon=null, url=null, languageType=null, status=1, listSort=7, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp, children=null), SysMenu(id=8, parentId=0, menuName=绯荤粺绠$悊, icon=null, url=null, languageType=null, status=1, listSort=8, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt, children=null), SysMenu(id=9, parentId=1, menuName=涓婄墖鏈�, icon=null, url=/returns/returns, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj:spj, children=null), SysMenu(id=10, parentId=2, menuName=鎺扮墖/璇嗗埆, icon=null, url=/identify/identify, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:08 CST 2024, perms=bp:bp, children=null), SysMenu(id=11, parentId=3, menuName=纾ㄨ竟鍓嶅崸寮忕紦瀛�, icon=, url=/Caching/cachingbefore, languageType=null, status=1, listSort=1, createTime=Tue Oct 24 15:05:31 CST 2023, perms=wshc:wshc, children=null), SysMenu(id=12, parentId=4, menuName=纾ㄨ竟(鍐峰姞宸�), icon=null, url=/stockBasicData/stockBasicData, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 09:48:20 CST 2024, perms=mb:1xmb, children=null), SysMenu(id=13, parentId=5, menuName=澶х悊鐗囩, icon=null, url=/slicecage/slicecage, languageType=null, status=1, listSort=1, createTime=Fri Mar 08 08:59:50 CST 2024, perms=dlpl:dlpl, children=null), SysMenu(id=14, parentId=6, menuName=閽㈠寲鍓�, icon=null, url=/PurchaseReturn/purchaseReturn, languageType=null, status=1, listSort=1, createTime=Wed Mar 13 10:26:25 CST 2024, perms=gh:ghq, children=null), SysMenu(id=15, parentId=7, menuName=涓嬬墖鍙�, icon=null, url=/UnLoadGlass/loadmachinerack, languageType=null, status=1, listSort=1, createTime=Mon Mar 18 14:48:13 CST 2024, perms=xp:xp1, children=null), SysMenu(id=16, parentId=8, menuName=鐢ㄦ埛绠$悊, icon=null, url=/user/userlist, languageType=null, status=1, listSort=1, createTime=Fri Mar 29 08:55:35 CST 2024, perms=xt:yh, children=null), SysMenu(id=17, parentId=8, menuName=鏉冮檺绠$悊, icon=null, url=/user/permissions, languageType=null, status=1, listSort=2, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:qx, children=null), SysMenu(id=18, parentId=8, menuName=瑙掕壊绠$悊, icon=null, url=/user/rolelist, languageType=null, status=1, listSort=3, createTime=Fri Mar 29 16:45:07 CST 2024, perms=xt:js, children=null), SysMenu(id=20, parentId=0, menuName=鍙鍖栫郴缁�, icon=null, url=null, languageType=null, status=1, listSort=10, createTime=Tue Apr 23 11:11:27 CST 2024, perms=ksh, children=null), SysMenu(id=21, parentId=21, menuName=澶у睆涓�, icon=null, url=/Visualization/screenone, languageType=null, status=1, listSort=1, createTime=Tue Apr 23 11:23:01 CST 2024, perms=ksh:1, children=null), SysMenu(id=22, parentId=22, menuName=澶у睆浜�, icon=null, url=/largescreen/largescreen, languageType=null, status=1, listSort=2, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:2, children=null), SysMenu(id=23, parentId=23, menuName=澶у睆涓�, icon=null, url=/Visualization/screenthree, languageType=null, status=1, listSort=3, createTime=Tue Apr 23 11:23:01 CST 2024, perms=kes:3, children=null), SysMenu(id=24, parentId=3, menuName=涓嬬墖鍗у紡缂撳瓨, icon=null, url=/Caching/cachingun, languageType=null, status=1, listSort=2, createTime=Thu Apr 25 14:35:36 CST 2024, perms=wshc:wshc1, children=null), SysMenu(id=34, parentId=20, menuName=鍙鍖栫郴缁�, icon=null, url=/largescreen/largescreen, languageType=null, status=null, listSort=1, createTime=Tue Aug 13 09:38:00 CST 2024, perms=null, children=null), SysMenu(id=35, parentId=0, menuName=鎶ュ伐绠$悊, icon=null, url=null, languageType=null, status=null, listSort=11, createTime=Sat Sep 14 08:35:55 CST 2024, perms=null, children=null), SysMenu(id=36, parentId=35, menuName=鎶ュ伐绠$悊, icon=null, url=/ReportWork/reportWork, languageType=null, status=null, listSort=null, createTime=Sat Sep 14 08:36:02 CST 2024, perms=null, children=null)]
+2025-06-13 10:06:20.702 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓婄墖鏈�","parentId":1,"url":"/returns/returns","createTime":1709260515000,"perms":"spj:spj","id":9,"status":1}]
+2025-06-13 10:06:20.702 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鎺扮墖/璇嗗埆","parentId":2,"url":"/identify/identify","createTime":1709260508000,"perms":"bp:bp","id":10,"status":1}]
+2025-06-13 10:06:20.702 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"icon":"","listSort":"1","menuName":"纾ㄨ竟鍓嶅崸寮忕紦瀛�","parentId":3,"url":"/Caching/cachingbefore","createTime":1698131131000,"perms":"wshc:wshc","id":11,"status":1},{"listSort":"2","menuName":"涓嬬墖鍗у紡缂撳瓨","parentId":3,"url":"/Caching/cachingun","createTime":1714026936000,"perms":"wshc:wshc1","id":24,"status":1}]
+2025-06-13 10:06:20.702 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"纾ㄨ竟(鍐峰姞宸�)","parentId":4,"url":"/stockBasicData/stockBasicData","createTime":1709257700000,"perms":"mb:1xmb","id":12,"status":1}]
+2025-06-13 10:06:20.702 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"澶х悊鐗囩","parentId":5,"url":"/slicecage/slicecage","createTime":1709859590000,"perms":"dlpl:dlpl","id":13,"status":1}]
+2025-06-13 10:06:20.702 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"閽㈠寲鍓�","parentId":6,"url":"/PurchaseReturn/purchaseReturn","createTime":1710296785000,"perms":"gh:ghq","id":14,"status":1}]
+2025-06-13 10:06:20.702 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"涓嬬墖鍙�","parentId":7,"url":"/UnLoadGlass/loadmachinerack","createTime":1710744493000,"perms":"xp:xp1","id":15,"status":1}]
+2025-06-13 10:06:20.702 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鐢ㄦ埛绠$悊","parentId":8,"url":"/user/userlist","createTime":1711673735000,"perms":"xt:yh","id":16,"status":1},{"listSort":"2","menuName":"鏉冮檺绠$悊","parentId":8,"url":"/user/permissions","createTime":1711701907000,"perms":"xt:qx","id":17,"status":1},{"listSort":"3","menuName":"瑙掕壊绠$悊","parentId":8,"url":"/user/rolelist","createTime":1711701907000,"perms":"xt:js","id":18,"status":1}]
+2025-06-13 10:06:20.702 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"listSort":"1","menuName":"鍙鍖栫郴缁�","parentId":20,"url":"/largescreen/largescreen","createTime":1723513080000,"id":34}]
+2025-06-13 10:06:20.702 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"menuName":"鎶ュ伐绠$悊","parentId":35,"url":"/ReportWork/reportWork","createTime":1726274162000,"id":36}]
+2025-06-13 10:06:20.852 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:06:40.887 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:07:00.909 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:07:20.925 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:07:40.946 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:07:46.265 [http-nio-10015-exec-1] INFO  com.mes.userinfo.service.impl.SysUserServiceImpl - 淇濆瓨鐢ㄦ埛淇℃伅
+2025-06-13 10:07:46.334 [http-nio-10015-exec-1] INFO  com.mes.userinfo.service.impl.SysUserServiceImpl - 淇濆瓨鐢ㄦ埛瑙掕壊淇℃伅
+2025-06-13 10:07:46.334 [http-nio-10015-exec-1] INFO  com.mes.userinfo.service.impl.SysUserServiceImpl - 淇濆瓨鐢ㄦ埛瑙掕壊淇℃伅
+2025-06-13 10:08:00.978 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:08:20.991 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:08:41.023 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:09:01.040 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:09:02.697 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 10:09:02.698 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 10:09:02.698 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 10:09:04.531 [http-nio-10015-exec-8] INFO  c.m.u.controller.UpPattenUsageController - 鏄剧ず姝e湪鍑虹墖鐨勫伐绋嬩俊鎭�:null
+2025-06-13 10:09:04.531 [http-nio-10015-exec-9] INFO  c.m.u.controller.UpPattenUsageController - 鏌ヨ涓婄墖淇℃伅:Engineering(id=null, engineerId=null, engineerName=null, avgAvailability=0.0, validAvailability=0.0, lastAvailability=0.0, state=null, glassTotal=null, glassTotalArea=0.0, planPatternTotal=null, planPatternTotalArea=0.0, realityPatternTotal=null, realityPatternTotalArea=0.0, filmsId=null, notes=null, stationCell=5, filmRemove=null)
+2025-06-13 10:09:04.566 [http-nio-10015-exec-4] INFO  com.mes.tools.WebSocketServer - 鏈夋柊鐢ㄦ埛鍔犲叆锛寀sername=loadGlassOne, 褰撳墠鍦ㄧ嚎浜烘暟涓猴細1
+2025-06-13 10:09:06.540 [http-nio-10015-exec-6] INFO  com.mes.tools.WebSocketServer - 绉婚櫎username=loadGlassOne涓�鍚嶇敤鎴穝ession, loadGlassOne杩炴帴鍏抽棴, 褰撳墠杩炴帴鏁颁负锛�0
+2025-06-13 10:09:21.067 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:09:41.096 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:10:01.116 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:10:21.153 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:10:41.173 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:11:01.207 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:11:21.240 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:11:40.102 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 10:11:40.102 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 10:11:40.103 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 10:11:41.274 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:12:01.300 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:12:18.535 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 10:12:18.535 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 10:12:18.535 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 10:12:21.331 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:12:41.365 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:13:01.383 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:13:21.409 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:13:41.440 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:14:01.458 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:14:18.974 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 10:14:18.975 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 10:14:18.975 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 10:14:21.483 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:14:41.502 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:15:01.530 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:15:21.555 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:15:41.570 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:16:01.585 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:16:21.605 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:16:38.968 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 10:16:38.969 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 10:16:38.969 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 10:16:41.641 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:17:01.664 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:17:21.680 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:17:41.702 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:18:01.726 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:18:21.758 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:18:22.116 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 10:18:22.117 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 10:18:22.117 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 10:18:41.788 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:19:01.827 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:19:21.861 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:19:41.894 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:20:01.913 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:20:21.932 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:20:41.960 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:21:01.978 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:21:21.999 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:21:42.038 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:22:02.056 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:22:22.080 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:22:42.107 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:23:02.129 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:23:22.162 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:23:42.190 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:24:02.211 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:24:22.241 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:24:40.641 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:25:00.664 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:25:20.684 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:25:40.712 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:26:00.741 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:26:20.759 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:26:40.782 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:27:00.801 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:27:20.821 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:27:40.835 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:28:00.865 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:28:20.888 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:28:40.910 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:29:00.929 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:29:20.961 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:29:40.985 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:30:01.025 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:30:21.057 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:30:41.089 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:31:01.113 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:31:21.144 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:31:41.174 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:32:01.201 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:32:21.233 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:32:41.255 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:33:01.278 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:33:21.314 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:33:41.343 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:34:01.369 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:34:21.403 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:34:41.433 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:35:01.457 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:35:06.248 [http-nio-10015-exec-1] INFO  com.mes.tools.WebSocketServer - 鏈夋柊鐢ㄦ埛鍔犲叆锛寀sername=loadGlassOne, 褰撳墠鍦ㄧ嚎浜烘暟涓猴細1
+2025-06-13 10:35:06.250 [http-nio-10015-exec-10] INFO  c.m.u.controller.UpPattenUsageController - 鏌ヨ涓婄墖淇℃伅:Engineering(id=null, engineerId=null, engineerName=null, avgAvailability=0.0, validAvailability=0.0, lastAvailability=0.0, state=null, glassTotal=null, glassTotalArea=0.0, planPatternTotal=null, planPatternTotalArea=0.0, realityPatternTotal=null, realityPatternTotalArea=0.0, filmsId=null, notes=null, stationCell=5, filmRemove=null)
+2025-06-13 10:35:06.256 [http-nio-10015-exec-3] INFO  c.m.u.controller.UpPattenUsageController - 鏄剧ず姝e湪鍑虹墖鐨勫伐绋嬩俊鎭�:null
+2025-06-13 10:35:10.413 [http-nio-10015-exec-2] INFO  com.mes.tools.WebSocketServer - 绉婚櫎username=loadGlassOne涓�鍚嶇敤鎴穝ession, loadGlassOne杩炴帴鍏抽棴, 褰撳墠杩炴帴鏁颁负锛�0
+2025-06-13 10:35:21.476 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:35:41.488 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:36:01.503 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:36:21.524 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:36:41.539 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:37:01.569 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:37:21.602 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:37:41.628 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:38:01.650 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:38:21.679 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:38:41.712 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:39:01.747 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:39:21.788 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:39:41.810 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:40:01.833 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:40:21.867 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:40:41.895 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:41:01.930 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:41:21.953 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:41:41.978 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:41:59.267 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 10:41:59.267 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 10:41:59.267 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 10:42:01.997 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:42:22.015 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:42:42.044 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:43:02.069 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:43:22.106 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:43:42.123 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:44:02.153 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:44:22.187 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:44:42.223 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:45:02.277 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:45:22.317 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:45:42.343 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:46:02.381 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:46:22.412 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:46:42.432 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:47:02.474 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:47:21.125 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 10:47:21.126 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 10:47:21.126 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 10:47:22.498 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:47:42.525 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:47:56.052 [http-nio-10015-exec-3] INFO  com.mes.tools.WebSocketServer - 鏈夋柊鐢ㄦ埛鍔犲叆锛寀sername=loadGlassOne, 褰撳墠鍦ㄧ嚎浜烘暟涓猴細1
+2025-06-13 10:47:56.056 [http-nio-10015-exec-2] INFO  c.m.u.controller.UpPattenUsageController - 鏌ヨ涓婄墖淇℃伅:Engineering(id=null, engineerId=null, engineerName=null, avgAvailability=0.0, validAvailability=0.0, lastAvailability=0.0, state=null, glassTotal=null, glassTotalArea=0.0, planPatternTotal=null, planPatternTotalArea=0.0, realityPatternTotal=null, realityPatternTotalArea=0.0, filmsId=null, notes=null, stationCell=5, filmRemove=null)
+2025-06-13 10:47:56.057 [http-nio-10015-exec-5] INFO  c.m.u.controller.UpPattenUsageController - 鏄剧ず姝e湪鍑虹墖鐨勫伐绋嬩俊鎭�:null
+2025-06-13 10:47:58.332 [http-nio-10015-exec-7] INFO  com.mes.tools.WebSocketServer - 绉婚櫎username=loadGlassOne涓�鍚嶇敤鎴穝ession, loadGlassOne杩炴帴鍏抽棴, 褰撳墠杩炴帴鏁颁负锛�0
+2025-06-13 10:48:02.553 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:48:22.584 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:48:42.617 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:49:02.647 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:49:22.690 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:49:42.723 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:50:02.764 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:50:16.062 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 10:50:16.062 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 10:50:16.062 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 10:50:22.793 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:50:42.822 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:51:02.861 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:51:22.893 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:51:36.992 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 10:51:36.992 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 10:51:36.993 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 10:51:42.934 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:52:02.969 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:52:23.007 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:52:43.047 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:52:59.484 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 10:52:59.485 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 10:52:59.485 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 10:53:03.093 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:53:23.132 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:53:43.167 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:53:51.296 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 10:53:51.297 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 10:53:51.297 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 10:54:03.207 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:54:23.242 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:54:43.273 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:54:48.529 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 10:54:48.529 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 10:54:48.530 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 10:55:03.303 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:55:23.339 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:55:43.373 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:56:03.415 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:56:23.447 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:56:43.493 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:57:03.535 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:57:23.576 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:57:26.803 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 10:57:26.803 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 10:57:26.803 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 10:57:43.616 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:58:03.662 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:58:23.700 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:58:43.739 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:59:03.766 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:59:23.804 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 10:59:43.841 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:00:03.883 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:00:23.921 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:00:43.965 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:01:04.012 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:01:24.047 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:01:44.070 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:02:04.119 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:02:24.152 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:02:44.195 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:03:04.230 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:03:24.259 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:03:32.649 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 11:03:32.651 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 11:03:32.651 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 11:03:44.312 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:04:04.352 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:04:24.395 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:04:44.425 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:05:04.457 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:05:24.482 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:05:44.507 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:06:04.546 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:06:24.575 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:06:44.615 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:07:04.639 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:07:24.672 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:07:44.708 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:08:04.744 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:08:24.787 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:08:44.826 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:09:04.863 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:09:24.889 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:09:44.926 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:10:04.971 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:10:24.994 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:10:45.028 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:11:05.049 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:11:25.098 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:11:29.591 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 11:11:29.592 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 11:11:29.592 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 11:11:45.138 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:12:05.184 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:12:25.225 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:12:45.247 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:13:05.271 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:13:25.290 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:13:45.317 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:13:49.047 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 11:13:49.047 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 11:13:49.047 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 11:14:05.359 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:14:25.384 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:14:45.418 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:14:56.586 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 11:14:56.586 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 11:14:56.587 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 11:15:05.446 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:15:25.468 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:15:45.487 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:16:02.374 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 11:16:02.375 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 11:16:02.375 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 11:16:05.519 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:16:25.549 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:16:45.591 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:17:05.617 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:17:25.648 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:17:45.683 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:18:05.723 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:18:25.751 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:18:45.779 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:19:05.802 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:19:25.845 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:19:45.878 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:20:05.904 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:20:25.924 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:20:45.945 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:21:05.974 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:21:26.018 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:21:46.041 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:22:06.069 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:22:26.108 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:22:33.796 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 11:22:33.796 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 11:22:33.796 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 11:22:46.134 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:23:06.162 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:23:26.192 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:23:46.219 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:24:06.255 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:24:26.299 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:24:46.334 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:25:06.364 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:25:26.408 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:25:46.438 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:25:55.587 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 11:25:55.589 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 11:25:55.589 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 11:26:06.467 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:26:26.502 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:26:46.534 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:27:04.457 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 11:27:04.457 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 11:27:04.457 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 11:27:06.570 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:27:26.590 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:27:36.425 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 11:27:36.426 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 11:27:36.426 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 11:27:46.632 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:28:06.649 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:28:26.677 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:28:46.721 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:29:06.749 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:29:26.783 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:29:46.810 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:30:06.838 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:30:26.863 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:30:29.824 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 11:30:29.824 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 11:30:29.824 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 11:30:46.901 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:31:06.940 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:31:23.852 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 11:31:23.853 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 11:31:23.853 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 11:31:26.979 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:31:47.009 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:32:07.035 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:32:17.901 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 11:32:17.902 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 11:32:17.902 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 11:32:27.079 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:32:45.286 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 11:32:45.286 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 11:32:45.287 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 11:32:47.103 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:33:07.144 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:33:27.172 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:33:47.201 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:34:07.229 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:34:27.255 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:34:31.855 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 11:34:31.855 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 11:34:31.855 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 11:34:47.281 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:35:07.329 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:35:27.365 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:35:28.882 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 11:35:28.883 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 11:35:28.883 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 11:35:47.399 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:36:02.194 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 11:36:02.196 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 11:36:02.196 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 11:36:07.426 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:36:27.461 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:36:47.501 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:37:07.539 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:37:27.573 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:37:31.909 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 11:37:31.910 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 11:37:31.910 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 11:37:47.608 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:38:07.623 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:38:26.235 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 11:38:26.235 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 11:38:26.235 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 11:38:27.658 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:38:47.691 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:39:01.669 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 11:39:01.669 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 11:39:01.669 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 11:39:07.730 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:39:27.756 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:39:47.781 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:40:07.803 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:40:27.822 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:40:47.859 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:41:07.904 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:41:27.939 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:41:47.956 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:42:07.995 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:42:28.028 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:42:48.056 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:43:08.095 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:43:28.146 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:43:48.166 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:44:08.206 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:44:28.230 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:44:48.263 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:45:08.297 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:45:28.328 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:45:48.364 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:46:08.387 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:46:28.423 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:46:48.448 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:47:08.473 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:47:28.518 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:47:48.547 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:48:08.581 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:48:28.623 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:48:48.651 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:49:08.668 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:49:28.701 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:49:48.729 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:50:08.744 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:50:28.768 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:50:48.805 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:51:08.825 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:51:28.852 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:51:48.874 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:52:08.908 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:52:28.952 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:52:48.980 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:53:09.017 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:53:29.034 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:53:49.062 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:54:09.096 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:54:29.128 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:54:49.156 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:55:09.182 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:55:29.211 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:55:49.230 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:56:09.263 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:56:29.301 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:56:49.328 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:57:09.350 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:57:29.387 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:57:49.405 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:58:09.431 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:58:29.467 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:58:49.511 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:59:09.537 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:59:29.585 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 11:59:49.611 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:00:09.639 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:00:29.670 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:00:49.711 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:01:09.743 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:01:29.777 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:01:49.803 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:02:09.839 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:02:29.862 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:02:49.897 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:03:09.923 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:03:29.967 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:03:50.008 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:04:10.037 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:04:30.058 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:04:50.094 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:05:10.130 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:05:30.143 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:05:50.167 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:06:10.203 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:06:30.226 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:06:50.244 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:07:10.287 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:07:30.338 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:07:50.355 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:08:10.381 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:08:30.412 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:08:50.442 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:09:10.501 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:09:30.529 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:09:50.572 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:10:10.605 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:10:30.630 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:10:50.654 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:11:10.681 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:11:30.727 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:11:50.765 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:12:10.810 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:12:30.839 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:12:50.862 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:13:10.894 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:13:30.932 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:13:50.955 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:14:10.985 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:14:31.011 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:14:51.055 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:15:11.093 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:15:31.124 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:15:51.140 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:16:11.163 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:16:31.187 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:16:51.228 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:17:11.261 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:17:31.288 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:17:51.317 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:18:11.343 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:18:31.366 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:18:51.392 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:19:11.432 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:19:31.472 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:19:51.516 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:20:11.539 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:20:31.570 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:20:51.607 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:21:11.639 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:21:31.669 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:21:51.692 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:22:11.724 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:22:31.770 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:22:51.806 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:23:11.847 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:23:31.879 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:23:51.906 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:24:11.931 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:24:31.963 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:24:51.979 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:25:12.009 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:25:32.047 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:25:52.076 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:26:12.104 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:26:32.127 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:26:52.162 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:27:12.191 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:27:32.231 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:27:52.253 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:28:12.287 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:28:32.315 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:28:52.334 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:29:12.370 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:29:32.418 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:29:52.464 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:30:12.498 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:30:32.546 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:30:52.569 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:31:12.606 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:31:32.641 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:31:52.663 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:32:12.689 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:32:32.711 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:32:52.730 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:33:12.748 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:33:32.767 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:33:52.802 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:34:12.836 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:34:32.857 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:34:52.888 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:35:12.918 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:35:32.954 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:35:52.988 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:36:13.015 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 12:36:17.274 [Thread-42] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Shutting down ExecutorService 'taskScheduler'
+2025-06-13 12:36:17.279 [Thread-42] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - De-registering from Nacos Server now...
+2025-06-13 12:36:17.293 [Thread-42] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - De-registration finished.
+2025-06-13 12:36:17.304 [Thread-42] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Shutting down ExecutorService 'applicationTaskExecutor'
+2025-06-13 12:36:17.330 [Thread-42] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 12:36:17.364 [Thread-42] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 12:36:17.373 [Thread-42] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 12:36:17.379 [Thread-42] INFO  c.k.milo.configuration.MiloAutoConfiguration - all opcUaClients are closed
+2025-06-13 12:36:17.381 [Thread-42] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource start closing ....
+2025-06-13 12:36:17.400 [Thread-42] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-2} closed
+2025-06-13 12:36:17.401 [Thread-42] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-3} closed
+2025-06-13 12:36:17.410 [Thread-42] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1} closed
+2025-06-13 12:36:17.410 [Thread-42] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
+2025-06-13 13:25:55.826 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$a8c9d6fc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:25:57.290 [main] INFO  com.mes.LoadGlassModuleApplication - The following profiles are active: dev
+2025-06-13 13:25:58.089 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
+2025-06-13 13:25:58.091 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
+2025-06-13 13:25:58.140 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 38ms. Found 0 repository interfaces.
+2025-06-13 13:25:58.347 [main] INFO  o.springframework.cloud.context.scope.GenericScope - BeanFactory id=af6f9514-4bd4-360c-8654-4345edb346a4
+2025-06-13 13:25:58.455 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$8cafd3ff] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:25:58.485 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'spring.datasource.dynamic-com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:25:58.488 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$f63e44d0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:25:58.623 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'dsProcessor' of type [com.baomidou.dynamic.datasource.processor.DsHeaderProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:25:58.644 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration' of type [org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration$$EnhancerBySpringCGLIB$$255d9c39] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:25:58.651 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'objectPostProcessor' of type [org.springframework.security.config.annotation.configuration.AutowireBeanFactoryObjectPostProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:25:58.653 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@6aa7e176' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:25:58.654 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration' of type [org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration$$EnhancerBySpringCGLIB$$4a323eeb] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:25:58.658 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:25:58.692 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$a8c9d6fc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:25:58.886 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 10015 (http)
+2025-06-13 13:25:58.898 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-10015"]
+2025-06-13 13:25:58.905 [main] INFO  org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-06-13 13:25:58.905 [main] INFO  org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.24]
+2025-06-13 13:25:58.909 [main] INFO  org.apache.catalina.core.AprLifecycleListener - Loaded APR based Apache Tomcat Native library [1.3.1] using APR version [1.7.4].
+2025-06-13 13:25:58.909 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
+2025-06-13 13:25:58.909 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
+2025-06-13 13:25:58.913 [main] INFO  org.apache.catalina.core.AprLifecycleListener - OpenSSL successfully initialized [OpenSSL 3.0.14 4 Jun 2024]
+2025-06-13 13:25:59.020 [main] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
+2025-06-13 13:25:59.021 [main] INFO  org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 1718 ms
+2025-06-13 13:25:59.096 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join properties config complete
+2025-06-13 13:25:59.214 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1,northGlassMes} inited
+2025-06-13 13:25:59.218 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-2,pp} inited
+2025-06-13 13:25:59.220 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-3,sd} inited
+2025-06-13 13:25:59.220 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [pp] success
+2025-06-13 13:25:59.220 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [sd] success
+2025-06-13 13:25:59.220 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [northGlassMes] success
+2025-06-13 13:25:59.221 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource initial loaded [3] datasource,primary datasource named [northGlassMes]
+2025-06-13 13:25:59.276 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join SqlInjector init
+2025-06-13 13:26:01.350 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Java version: 1.8.0_101
+2025-06-13 13:26:01.350 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Eclipse Milo OPC UA Stack version: 0.6.8
+2025-06-13 13:26:01.350 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Eclipse Milo OPC UA Client SDK version: 0.6.8
+2025-06-13 13:26:07.717 [milo-nonce-util-secure-random] INFO  org.eclipse.milo.opcua.stack.core.util.NonceUtil - SecureRandom seeded in 0ms.
+2025-06-13 13:26:08.837 [main] INFO  s.d.s.w.WebMvcPropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [public org.springframework.http.ResponseEntity<springfox.documentation.spring.web.json.Json> springfox.documentation.swagger2.web.Swagger2ControllerWebMvc.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest)]
+2025-06-13 13:26:08.889 [main] INFO  o.s.security.web.DefaultSecurityFilterChain - Creating filter chain: any request, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@5b3ee43e, org.springframework.security.web.context.SecurityContextPersistenceFilter@59043741, org.springframework.security.web.header.HeaderWriterFilter@1b06dc57, org.springframework.web.filter.CorsFilter@53da2aec, org.springframework.security.web.authentication.logout.LogoutFilter@530df3ab, com.mes.common.filter.JwtAuthenticationTokenFilter@30af23fd, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@271a140c, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@64cdc310, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@2ae88712, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@18a38bba, org.springframework.security.web.session.SessionManagementFilter@14e83c9d, org.springframework.security.web.access.ExceptionTranslationFilter@3e8fe7db, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@70a54731]
+2025-06-13 13:26:08.903 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-06-13 13:26:08.906 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-06-13 13:26:09.029 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
+2025-06-13 13:26:10.504 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 13:26:10.536 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService
+2025-06-13 13:26:10.745 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService 'taskScheduler'
+2025-06-13 13:26:12.107 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 13:26:12.302 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Documentation plugins bootstrapped
+2025-06-13 13:26:12.322 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
+2025-06-13 13:26:12.345 [main] INFO  s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
+2025-06-13 13:26:12.481 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: listByStateUsingPOST_1
+2025-06-13 13:26:12.486 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: selectDamageUsingPOST_1
+2025-06-13 13:26:12.562 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-10015"]
+2025-06-13 13:26:12.575 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 10015 (http) with context path ''
+2025-06-13 13:26:12.608 [main] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - nacos registry, loadGlass 26.246.64.36:10015 register finished
+2025-06-13 13:26:13.945 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 13:26:13.946 [main] INFO  com.mes.LoadGlassModuleApplication - Started LoadGlassModuleApplication in 20.765 seconds (JVM running for 21.646)
+2025-06-13 13:26:13.948 [main] INFO  com.mes.AppRunnerConfig - 鍚姩瀹屾垚
+2025-06-13 13:26:23.157 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:26:43.196 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:27:03.230 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:27:23.278 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:27:43.307 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:28:02.092 [http-nio-10015-exec-2] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-06-13 13:28:02.092 [http-nio-10015-exec-2] INFO  org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-06-13 13:28:02.102 [http-nio-10015-exec-2] INFO  org.springframework.web.servlet.DispatcherServlet - Completed initialization in 10 ms
+2025-06-13 13:28:02.373 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 13:28:02.374 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 13:28:02.375 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 13:28:03.324 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:28:23.353 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:28:37.195 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 13:28:37.197 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 13:28:37.197 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 13:28:43.405 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:29:03.437 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:29:23.520 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:29:35.001 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$3be866bc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:29:36.490 [main] INFO  com.mes.LoadGlassModuleApplication - The following profiles are active: dev
+2025-06-13 13:29:37.290 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
+2025-06-13 13:29:37.293 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
+2025-06-13 13:29:37.377 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 71ms. Found 0 repository interfaces.
+2025-06-13 13:29:37.574 [main] INFO  o.springframework.cloud.context.scope.GenericScope - BeanFactory id=af6f9514-4bd4-360c-8654-4345edb346a4
+2025-06-13 13:29:37.673 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$1fce63bf] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:29:37.707 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'spring.datasource.dynamic-com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:29:37.709 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$895cd490] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:29:37.837 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'dsProcessor' of type [com.baomidou.dynamic.datasource.processor.DsHeaderProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:29:37.853 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration' of type [org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration$$EnhancerBySpringCGLIB$$b87c2bf9] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:29:37.856 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'objectPostProcessor' of type [org.springframework.security.config.annotation.configuration.AutowireBeanFactoryObjectPostProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:29:37.859 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@52abed9d' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:29:37.862 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration' of type [org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration$$EnhancerBySpringCGLIB$$dd50ceab] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:29:37.865 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:29:37.895 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$3be866bc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:29:38.136 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 10015 (http)
+2025-06-13 13:29:38.149 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-10015"]
+2025-06-13 13:29:38.157 [main] INFO  org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-06-13 13:29:38.157 [main] INFO  org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.24]
+2025-06-13 13:29:38.162 [main] INFO  org.apache.catalina.core.AprLifecycleListener - Loaded APR based Apache Tomcat Native library [1.3.1] using APR version [1.7.4].
+2025-06-13 13:29:38.163 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
+2025-06-13 13:29:38.163 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
+2025-06-13 13:29:38.167 [main] INFO  org.apache.catalina.core.AprLifecycleListener - OpenSSL successfully initialized [OpenSSL 3.0.14 4 Jun 2024]
+2025-06-13 13:29:38.302 [main] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
+2025-06-13 13:29:38.302 [main] INFO  org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 1794 ms
+2025-06-13 13:29:38.386 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join properties config complete
+2025-06-13 13:29:38.513 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1,northGlassMes} inited
+2025-06-13 13:29:38.518 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-2,pp} inited
+2025-06-13 13:29:38.522 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-3,sd} inited
+2025-06-13 13:29:38.523 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [pp] success
+2025-06-13 13:29:38.523 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [sd] success
+2025-06-13 13:29:38.523 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [northGlassMes] success
+2025-06-13 13:29:38.523 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource initial loaded [3] datasource,primary datasource named [northGlassMes]
+2025-06-13 13:29:38.578 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join SqlInjector init
+2025-06-13 13:29:40.768 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Java version: 1.8.0_101
+2025-06-13 13:29:40.769 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Eclipse Milo OPC UA Stack version: 0.6.8
+2025-06-13 13:29:40.769 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Eclipse Milo OPC UA Client SDK version: 0.6.8
+2025-06-13 13:29:42.059 [milo-nonce-util-secure-random] INFO  org.eclipse.milo.opcua.stack.core.util.NonceUtil - SecureRandom seeded in 0ms.
+2025-06-13 13:29:43.328 [main] INFO  s.d.s.w.WebMvcPropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [public org.springframework.http.ResponseEntity<springfox.documentation.spring.web.json.Json> springfox.documentation.swagger2.web.Swagger2ControllerWebMvc.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest)]
+2025-06-13 13:29:43.387 [main] INFO  o.s.security.web.DefaultSecurityFilterChain - Creating filter chain: any request, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@b63365c, org.springframework.security.web.context.SecurityContextPersistenceFilter@141234df, org.springframework.security.web.header.HeaderWriterFilter@58d79479, org.springframework.web.filter.CorsFilter@6839d03b, org.springframework.security.web.authentication.logout.LogoutFilter@1fc8047f, com.mes.common.filter.JwtAuthenticationTokenFilter@1716c037, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@44117b0d, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@57617a75, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@39a30d1a, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@a44ad33, org.springframework.security.web.session.SessionManagementFilter@495f7ca4, org.springframework.security.web.access.ExceptionTranslationFilter@5e72c82a, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@1896299b]
+2025-06-13 13:29:43.402 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-06-13 13:29:43.405 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-06-13 13:29:43.538 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
+2025-06-13 13:29:43.560 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:29:45.044 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 13:29:45.078 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService
+2025-06-13 13:29:45.306 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService 'taskScheduler'
+2025-06-13 13:29:46.686 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 13:29:46.872 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Documentation plugins bootstrapped
+2025-06-13 13:29:46.874 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
+2025-06-13 13:29:46.901 [main] INFO  s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
+2025-06-13 13:29:47.075 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: listByStateUsingPOST_1
+2025-06-13 13:29:47.081 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: selectDamageUsingPOST_1
+2025-06-13 13:29:47.171 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-10015"]
+2025-06-13 13:29:47.181 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Pausing ProtocolHandler ["http-nio-10015"]
+2025-06-13 13:29:47.181 [main] INFO  org.apache.catalina.core.StandardService - Stopping service [Tomcat]
+2025-06-13 13:29:47.188 [main] INFO  org.apache.catalina.util.LifecycleBase - The stop() method was called on component [StandardServer[-1]] after stop() had already been called. The second call will be ignored.
+2025-06-13 13:29:47.188 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Stopping ProtocolHandler ["http-nio-10015"]
+2025-06-13 13:29:47.189 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Destroying ProtocolHandler ["http-nio-10015"]
+2025-06-13 13:29:47.191 [main] INFO  o.s.b.a.l.ConditionEvaluationReportLoggingListener - 
+
+Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
+2025-06-13 13:29:47.193 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Shutting down ExecutorService 'taskScheduler'
+2025-06-13 13:29:47.195 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Shutting down ExecutorService 'applicationTaskExecutor'
+2025-06-13 13:29:47.198 [main] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 13:29:47.203 [main] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 13:29:47.207 [main] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 13:29:47.210 [main] INFO  c.k.milo.configuration.MiloAutoConfiguration - all opcUaClients are closed
+2025-06-13 13:29:47.210 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource start closing ....
+2025-06-13 13:29:47.215 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-2} closed
+2025-06-13 13:29:47.215 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-3} closed
+2025-06-13 13:29:47.216 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1} closed
+2025-06-13 13:29:47.216 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
+2025-06-13 13:30:03.599 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:30:23.619 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:30:43.655 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:31:03.685 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:31:23.723 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:31:43.745 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:32:03.779 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:32:23.809 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:32:43.850 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:33:03.886 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:38:55.203 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$13252698] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:38:56.658 [main] INFO  com.mes.LoadGlassModuleApplication - The following profiles are active: dev
+2025-06-13 13:38:57.349 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
+2025-06-13 13:38:57.350 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
+2025-06-13 13:38:57.395 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 34ms. Found 0 repository interfaces.
+2025-06-13 13:38:57.564 [main] INFO  o.springframework.cloud.context.scope.GenericScope - BeanFactory id=af6f9514-4bd4-360c-8654-4345edb346a4
+2025-06-13 13:38:57.652 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$f70b239b] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:38:57.683 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'spring.datasource.dynamic-com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:38:57.685 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$6099946c] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:38:57.805 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'dsProcessor' of type [com.baomidou.dynamic.datasource.processor.DsHeaderProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:38:57.824 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration' of type [org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration$$EnhancerBySpringCGLIB$$8fb8ebd5] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:38:57.828 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'objectPostProcessor' of type [org.springframework.security.config.annotation.configuration.AutowireBeanFactoryObjectPostProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:38:57.830 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@52abed9d' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:38:57.830 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration' of type [org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration$$EnhancerBySpringCGLIB$$b48d8e87] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:38:57.835 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:38:57.869 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$13252698] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 13:38:58.085 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 10015 (http)
+2025-06-13 13:38:58.097 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-10015"]
+2025-06-13 13:38:58.105 [main] INFO  org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-06-13 13:38:58.105 [main] INFO  org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.24]
+2025-06-13 13:38:58.110 [main] INFO  org.apache.catalina.core.AprLifecycleListener - Loaded APR based Apache Tomcat Native library [1.3.1] using APR version [1.7.4].
+2025-06-13 13:38:58.110 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
+2025-06-13 13:38:58.110 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
+2025-06-13 13:38:58.114 [main] INFO  org.apache.catalina.core.AprLifecycleListener - OpenSSL successfully initialized [OpenSSL 3.0.14 4 Jun 2024]
+2025-06-13 13:38:58.219 [main] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
+2025-06-13 13:38:58.220 [main] INFO  org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 1551 ms
+2025-06-13 13:38:58.281 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join properties config complete
+2025-06-13 13:38:58.400 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1,northGlassMes} inited
+2025-06-13 13:38:58.403 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-2,pp} inited
+2025-06-13 13:38:58.407 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-3,sd} inited
+2025-06-13 13:38:58.408 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [pp] success
+2025-06-13 13:38:58.408 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [sd] success
+2025-06-13 13:38:58.408 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [northGlassMes] success
+2025-06-13 13:38:58.408 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource initial loaded [3] datasource,primary datasource named [northGlassMes]
+2025-06-13 13:38:58.473 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join SqlInjector init
+2025-06-13 13:39:00.296 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Java version: 1.8.0_101
+2025-06-13 13:39:00.296 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Eclipse Milo OPC UA Stack version: 0.6.8
+2025-06-13 13:39:00.297 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Eclipse Milo OPC UA Client SDK version: 0.6.8
+2025-06-13 13:39:01.641 [milo-nonce-util-secure-random] INFO  org.eclipse.milo.opcua.stack.core.util.NonceUtil - SecureRandom seeded in 0ms.
+2025-06-13 13:39:02.791 [main] INFO  s.d.s.w.WebMvcPropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [public org.springframework.http.ResponseEntity<springfox.documentation.spring.web.json.Json> springfox.documentation.swagger2.web.Swagger2ControllerWebMvc.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest)]
+2025-06-13 13:39:02.843 [main] INFO  o.s.security.web.DefaultSecurityFilterChain - Creating filter chain: any request, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@3b3f62d7, org.springframework.security.web.context.SecurityContextPersistenceFilter@744db9fb, org.springframework.security.web.header.HeaderWriterFilter@64908ab9, org.springframework.web.filter.CorsFilter@5b3ee43e, org.springframework.security.web.authentication.logout.LogoutFilter@46d51d5e, com.mes.common.filter.JwtAuthenticationTokenFilter@30af23fd, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@6f95654c, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@31940d6b, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@24520a51, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@53da2aec, org.springframework.security.web.session.SessionManagementFilter@5af641d3, org.springframework.security.web.access.ExceptionTranslationFilter@45375bdf, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@6edb2c7b]
+2025-06-13 13:39:02.857 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-06-13 13:39:02.860 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-06-13 13:39:02.981 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
+2025-06-13 13:39:04.463 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 13:39:04.500 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService
+2025-06-13 13:39:04.672 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService 'taskScheduler'
+2025-06-13 13:39:06.050 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 13:39:06.225 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Documentation plugins bootstrapped
+2025-06-13 13:39:06.228 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
+2025-06-13 13:39:06.254 [main] INFO  s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
+2025-06-13 13:39:06.402 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: listByStateUsingPOST_1
+2025-06-13 13:39:06.408 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: selectDamageUsingPOST_1
+2025-06-13 13:39:06.490 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-10015"]
+2025-06-13 13:39:06.507 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 10015 (http) with context path ''
+2025-06-13 13:39:06.544 [main] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - nacos registry, loadGlass 26.246.64.36:10015 register finished
+2025-06-13 13:39:07.914 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 13:39:07.916 [main] INFO  com.mes.LoadGlassModuleApplication - Started LoadGlassModuleApplication in 15.136 seconds (JVM running for 15.918)
+2025-06-13 13:39:07.920 [main] INFO  com.mes.AppRunnerConfig - 鍚姩瀹屾垚
+2025-06-13 13:39:26.927 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:39:46.970 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:40:07.034 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:40:27.082 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:40:47.115 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:41:07.138 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:41:27.163 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:41:47.199 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:41:57.845 [http-nio-10015-exec-1] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-06-13 13:41:57.845 [http-nio-10015-exec-1] INFO  org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-06-13 13:41:57.855 [http-nio-10015-exec-1] INFO  org.springframework.web.servlet.DispatcherServlet - Completed initialization in 9 ms
+2025-06-13 13:41:58.481 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 13:41:58.482 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 13:41:58.482 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 13:42:07.223 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:42:27.259 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:42:47.282 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:43:07.305 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:43:20.220 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 13:43:20.223 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 13:43:20.223 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 13:43:27.330 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:43:35.737 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 13:43:35.742 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 13:43:35.742 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 13:43:47.356 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:43:58.203 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 13:43:58.203 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 13:43:58.204 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 13:44:07.384 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:44:27.413 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:44:33.056 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 13:44:33.058 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 13:44:33.059 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 13:44:47.440 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:45:07.473 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:45:27.492 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:45:47.516 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:45:56.787 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 13:45:56.788 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 13:45:56.788 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 13:46:07.557 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:46:08.406 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 13:46:08.406 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 13:46:08.408 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 13:46:27.590 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:46:47.622 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:47:07.640 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:47:27.659 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:47:47.694 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:48:07.728 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:48:27.757 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:48:47.787 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:49:07.823 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:49:27.851 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:49:47.890 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:50:06.484 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 13:50:06.484 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 13:50:06.484 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 13:50:07.910 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:50:08.582 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 13:50:08.583 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 13:50:08.583 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 13:50:27.942 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:50:47.975 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:51:08.006 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:51:28.030 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:51:48.067 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:52:06.648 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 13:52:06.649 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 13:52:06.649 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 13:52:08.106 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:52:10.279 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 13:52:10.280 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 13:52:10.280 [http-nio-10015-exec-10] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 13:52:28.128 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:52:48.154 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:53:08.187 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:53:28.217 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:53:29.639 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 13:53:29.639 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 13:53:29.640 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 13:53:38.932 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 13:53:38.933 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 13:53:38.933 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 13:53:48.248 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:54:08.269 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:54:18.951 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 13:54:18.951 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 13:54:18.951 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 13:54:28.307 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:54:29.350 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 13:54:29.350 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 13:54:29.351 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 13:54:48.331 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:55:08.361 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:55:28.399 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:55:48.438 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:56:08.455 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:56:28.489 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:56:48.521 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:57:08.552 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:57:13.231 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 13:57:13.231 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 13:57:13.231 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 13:57:28.586 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:57:35.748 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 13:57:35.749 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 13:57:35.749 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 13:57:48.611 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:58:08.629 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:58:28.668 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:58:48.693 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:59:08.732 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:59:28.777 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 13:59:48.792 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:00:08.821 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:00:28.851 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:00:48.874 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:01:08.902 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:01:28.931 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:01:46.837 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 14:01:46.837 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 14:01:46.837 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 14:01:48.949 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:02:08.975 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:02:29.014 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:02:49.034 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:03:09.060 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:03:29.078 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:03:49.111 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:04:09.133 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:04:29.160 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:04:49.186 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:05:05.610 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 14:05:05.610 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 14:05:05.610 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 14:05:09.206 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:05:29.239 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:05:49.267 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:06:09.295 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:06:29.313 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:06:49.341 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:07:09.398 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:07:29.462 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:07:49.513 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:08:09.532 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:08:14.853 [http-nio-10015-exec-10] INFO  c.m.u.controller.UpPattenUsageController - 鏄剧ず姝e湪鍑虹墖鐨勫伐绋嬩俊鎭�:null
+2025-06-13 14:08:14.854 [http-nio-10015-exec-9] INFO  c.m.u.controller.UpPattenUsageController - 鏌ヨ涓婄墖淇℃伅:Engineering(id=null, engineerId=null, engineerName=null, avgAvailability=0.0, validAvailability=0.0, lastAvailability=0.0, state=null, glassTotal=null, glassTotalArea=0.0, planPatternTotal=null, planPatternTotalArea=0.0, realityPatternTotal=null, realityPatternTotalArea=0.0, filmsId=null, notes=null, stationCell=5, filmRemove=null)
+2025-06-13 14:08:14.890 [http-nio-10015-exec-8] INFO  com.mes.tools.WebSocketServer - 鏈夋柊鐢ㄦ埛鍔犲叆锛寀sername=loadGlassOne, 褰撳墠鍦ㄧ嚎浜烘暟涓猴細1
+2025-06-13 14:08:29.565 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:08:49.625 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:09:09.666 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:09:29.703 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:09:49.741 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:09:55.359 [http-nio-10015-exec-3] INFO  com.mes.tools.WebSocketServer - 绉婚櫎username=loadGlassOne涓�鍚嶇敤鎴穝ession, loadGlassOne杩炴帴鍏抽棴, 褰撳墠杩炴帴鏁颁负锛�0
+2025-06-13 14:10:09.772 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:10:29.805 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:10:49.827 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:11:09.857 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:11:29.888 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:11:49.908 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:12:09.931 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:12:29.966 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:12:49.979 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:13:10.003 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:13:30.028 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:13:50.049 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:14:10.078 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:14:30.103 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:14:50.121 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:15:10.161 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:15:30.178 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:15:50.204 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:16:10.231 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:16:30.271 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:16:50.299 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:17:10.314 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:17:30.353 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:17:50.384 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:18:10.416 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:18:30.451 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:18:50.488 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:19:10.522 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:19:30.557 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:19:50.601 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:20:10.630 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:20:30.660 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:20:42.810 [http-nio-10015-exec-2] INFO  com.mes.tools.WebSocketServer - 鏈夋柊鐢ㄦ埛鍔犲叆锛寀sername=loadGlassOne, 褰撳墠鍦ㄧ嚎浜烘暟涓猴細1
+2025-06-13 14:20:42.816 [http-nio-10015-exec-5] INFO  c.m.u.controller.UpPattenUsageController - 鏄剧ず姝e湪鍑虹墖鐨勫伐绋嬩俊鎭�:null
+2025-06-13 14:20:42.817 [http-nio-10015-exec-6] INFO  c.m.u.controller.UpPattenUsageController - 鏌ヨ涓婄墖淇℃伅:Engineering(id=null, engineerId=null, engineerName=null, avgAvailability=0.0, validAvailability=0.0, lastAvailability=0.0, state=null, glassTotal=null, glassTotalArea=0.0, planPatternTotal=null, planPatternTotalArea=0.0, realityPatternTotal=null, realityPatternTotalArea=0.0, filmsId=null, notes=null, stationCell=5, filmRemove=null)
+2025-06-13 14:20:47.357 [http-nio-10015-exec-7] INFO  com.mes.tools.WebSocketServer - 绉婚櫎username=loadGlassOne涓�鍚嶇敤鎴穝ession, loadGlassOne杩炴帴鍏抽棴, 褰撳墠杩炴帴鏁颁负锛�0
+2025-06-13 14:20:50.698 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:21:10.735 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:21:30.773 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:21:50.797 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:22:10.834 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:22:30.880 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:22:50.917 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:23:10.968 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:23:31.021 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:23:51.051 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:24:11.097 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:24:31.145 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:24:51.189 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:25:11.228 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:25:31.264 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:25:51.295 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:26:11.336 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:26:31.367 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:26:51.401 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:27:11.431 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:27:31.464 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:27:51.496 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:28:11.534 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:28:31.561 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:28:51.596 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:29:11.627 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:29:31.657 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:29:51.697 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:30:11.733 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:30:31.777 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:30:51.816 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:31:11.848 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:31:31.894 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:31:51.937 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:32:11.974 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:32:32.008 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:32:52.043 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:33:12.077 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:33:32.104 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:33:52.138 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:34:12.183 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:34:32.210 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:34:39.656 [http-nio-10015-exec-1] INFO  com.mes.tools.WebSocketServer - 鏈夋柊鐢ㄦ埛鍔犲叆锛寀sername=loadGlassOne, 褰撳墠鍦ㄧ嚎浜烘暟涓猴細1
+2025-06-13 14:34:39.662 [http-nio-10015-exec-4] INFO  c.m.u.controller.UpPattenUsageController - 鏄剧ず姝e湪鍑虹墖鐨勫伐绋嬩俊鎭�:null
+2025-06-13 14:34:39.671 [http-nio-10015-exec-8] INFO  c.m.u.controller.UpPattenUsageController - 鏌ヨ涓婄墖淇℃伅:Engineering(id=null, engineerId=null, engineerName=null, avgAvailability=0.0, validAvailability=0.0, lastAvailability=0.0, state=null, glassTotal=null, glassTotalArea=0.0, planPatternTotal=null, planPatternTotalArea=0.0, realityPatternTotal=null, realityPatternTotalArea=0.0, filmsId=null, notes=null, stationCell=5, filmRemove=null)
+2025-06-13 14:34:52.247 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:35:12.288 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:35:32.331 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:35:52.362 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:36:12.401 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:36:27.421 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:36:47.456 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:37:07.490 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:37:27.521 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:37:47.555 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:38:07.594 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:38:27.633 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:38:47.660 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:39:07.695 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:39:27.718 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:39:47.752 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:40:07.792 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:40:27.819 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:40:47.856 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:41:07.896 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:41:27.931 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:41:47.971 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:42:07.999 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:42:28.049 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:42:48.070 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:43:08.102 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:43:28.135 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:43:48.167 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:44:08.202 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:44:28.252 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:44:48.278 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:45:08.307 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:45:28.341 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:45:48.378 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:46:08.423 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:46:28.453 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:46:48.482 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:47:08.515 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:47:28.553 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:47:48.594 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:48:08.630 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:48:28.711 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:48:48.741 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:49:08.773 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:49:28.819 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:49:48.845 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:50:08.868 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:50:28.898 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:50:48.925 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:51:08.958 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:51:29.000 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:51:49.035 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:52:09.075 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:52:29.106 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:52:49.143 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:53:09.183 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:53:29.216 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:53:49.250 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:54:09.284 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:54:29.308 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:54:49.328 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:55:09.367 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:55:19.573 [http-nio-10015-exec-4] INFO  com.mes.tools.WebSocketServer - 绉婚櫎username=loadGlassOne涓�鍚嶇敤鎴穝ession, loadGlassOne杩炴帴鍏抽棴, 褰撳墠杩炴帴鏁颁负锛�0
+2025-06-13 14:55:21.985 [http-nio-10015-exec-8] INFO  com.mes.tools.WebSocketServer - 鏈夋柊鐢ㄦ埛鍔犲叆锛寀sername=loadGlassOne, 褰撳墠鍦ㄧ嚎浜烘暟涓猴細1
+2025-06-13 14:55:22.033 [http-nio-10015-exec-5] INFO  c.m.u.controller.UpPattenUsageController - 鏄剧ず姝e湪鍑虹墖鐨勫伐绋嬩俊鎭�:null
+2025-06-13 14:55:22.040 [http-nio-10015-exec-6] INFO  c.m.u.controller.UpPattenUsageController - 鏌ヨ涓婄墖淇℃伅:Engineering(id=null, engineerId=null, engineerName=null, avgAvailability=0.0, validAvailability=0.0, lastAvailability=0.0, state=null, glassTotal=null, glassTotalArea=0.0, planPatternTotal=null, planPatternTotalArea=0.0, realityPatternTotal=null, realityPatternTotalArea=0.0, filmsId=null, notes=null, stationCell=5, filmRemove=null)
+2025-06-13 14:55:22.054 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 14:55:22.056 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 14:55:22.056 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 14:55:29.408 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:55:49.442 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:56:09.469 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:56:29.508 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:56:49.538 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:57:09.561 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:57:29.596 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:57:49.627 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:58:09.650 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:58:29.682 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:58:49.706 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:59:09.745 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:59:29.762 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 14:59:49.788 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:00:09.814 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:00:29.841 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:00:49.870 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:01:09.903 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:01:29.928 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:01:49.963 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:02:09.979 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:02:30.007 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:02:50.037 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:03:10.066 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:03:30.109 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:03:50.134 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:04:10.169 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:04:30.205 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:04:50.243 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:05:10.284 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:05:30.316 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:05:50.344 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:06:10.382 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:06:30.412 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:06:50.435 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:07:10.475 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:07:30.493 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:07:50.521 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:08:10.560 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:08:30.580 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:08:50.608 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:09:10.633 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:09:30.655 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:09:50.677 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:10:10.700 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:10:30.718 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:10:50.757 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:11:10.796 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:11:30.827 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:11:50.866 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:12:10.890 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:12:30.925 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:12:50.962 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:13:11.008 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:13:31.082 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:13:47.925 [http-nio-10015-exec-8] INFO  com.mes.tools.WebSocketServer - 绉婚櫎username=loadGlassOne涓�鍚嶇敤鎴穝ession, loadGlassOne杩炴帴鍏抽棴, 褰撳墠杩炴帴鏁颁负锛�0
+2025-06-13 15:13:51.100 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:14:11.135 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:14:31.180 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:14:51.206 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:15:11.245 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:15:31.274 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:15:51.305 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:16:11.337 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:16:31.372 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:16:51.408 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:17:11.443 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:17:31.468 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:17:51.514 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:18:11.547 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:18:31.577 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:18:51.600 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:19:11.628 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:19:31.646 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:19:51.665 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:20:11.697 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:20:31.727 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:20:51.746 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:21:11.786 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:21:31.814 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:21:51.845 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:22:11.875 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:22:31.898 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:22:51.923 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:23:11.951 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:23:31.975 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:23:52.022 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:24:12.058 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:24:32.088 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:24:52.120 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:25:12.159 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:25:32.212 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:25:52.255 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:26:12.293 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:26:32.330 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:26:52.362 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:27:12.392 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:27:32.432 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:27:52.465 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:28:12.510 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:28:32.550 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:28:52.584 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:29:12.600 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:29:32.629 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:29:52.653 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:30:12.686 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:30:32.708 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:30:52.738 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:31:12.767 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:31:32.805 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:31:52.836 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:32:12.897 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:32:32.936 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:32:52.978 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:33:13.024 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:33:33.065 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:33:53.100 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:34:13.145 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:34:33.185 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:34:53.225 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:35:13.247 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:35:33.277 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:35:53.319 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:36:13.361 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:36:33.406 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:36:53.440 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:37:13.465 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:37:33.492 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:37:53.533 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:38:13.556 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:38:33.596 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:38:53.628 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:39:13.669 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:39:33.694 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:39:53.722 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:40:13.751 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:40:33.775 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:40:53.820 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:41:13.865 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:41:33.895 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:41:53.935 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:42:13.971 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:42:34.018 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:42:54.073 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:43:14.126 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:43:34.173 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:43:54.203 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:44:14.237 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:44:34.275 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:44:54.308 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:45:14.361 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:45:34.398 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:45:54.450 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:46:14.490 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:46:34.528 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:46:54.579 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:47:14.623 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:47:34.668 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:47:54.699 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:48:14.738 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:48:34.777 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:48:54.815 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:49:14.849 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:49:34.891 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:49:54.919 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:50:14.954 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:50:34.996 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:50:55.033 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:51:15.075 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:51:35.110 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:51:55.150 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:52:15.199 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:52:35.233 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:52:55.278 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:53:15.312 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:53:35.351 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:53:55.387 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:54:15.418 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:54:35.455 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:54:55.484 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:55:15.516 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:55:35.553 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:55:55.604 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:56:15.632 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:56:35.677 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:56:55.718 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:57:15.749 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:57:35.778 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:57:55.827 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:58:15.875 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:58:35.907 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:58:55.957 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:59:16.014 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:59:36.090 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 15:59:56.157 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:00:16.210 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:00:36.263 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:00:56.281 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:01:08.646 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:01:31.323 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:01:51.343 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:02:11.365 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:02:31.394 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:02:51.411 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:03:11.433 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:03:31.472 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:03:51.504 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:04:11.538 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:04:31.574 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:04:51.607 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:05:11.640 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:05:31.673 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:05:51.713 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:05:58.084 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$13252698] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:05:59.546 [main] INFO  com.mes.LoadGlassModuleApplication - The following profiles are active: dev
+2025-06-13 16:06:00.436 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
+2025-06-13 16:06:00.438 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
+2025-06-13 16:06:00.482 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 34ms. Found 0 repository interfaces.
+2025-06-13 16:06:00.653 [main] INFO  o.springframework.cloud.context.scope.GenericScope - BeanFactory id=af6f9514-4bd4-360c-8654-4345edb346a4
+2025-06-13 16:06:00.739 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$f70b239b] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:06:00.773 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'spring.datasource.dynamic-com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:06:00.775 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$6099946c] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:06:00.849 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'dsProcessor' of type [com.baomidou.dynamic.datasource.processor.DsHeaderProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:06:00.880 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration' of type [org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration$$EnhancerBySpringCGLIB$$8fb8ebd5] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:06:00.886 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'objectPostProcessor' of type [org.springframework.security.config.annotation.configuration.AutowireBeanFactoryObjectPostProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:06:00.889 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@3869a6e5' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:06:00.892 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration' of type [org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration$$EnhancerBySpringCGLIB$$b48d8e87] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:06:00.899 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:06:00.942 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$13252698] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:06:01.242 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 10015 (http)
+2025-06-13 16:06:01.258 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-10015"]
+2025-06-13 16:06:01.263 [main] INFO  org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-06-13 16:06:01.264 [main] INFO  org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.24]
+2025-06-13 16:06:01.271 [main] INFO  org.apache.catalina.core.AprLifecycleListener - Loaded APR based Apache Tomcat Native library [1.3.1] using APR version [1.7.4].
+2025-06-13 16:06:01.271 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
+2025-06-13 16:06:01.272 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
+2025-06-13 16:06:01.277 [main] INFO  org.apache.catalina.core.AprLifecycleListener - OpenSSL successfully initialized [OpenSSL 3.0.14 4 Jun 2024]
+2025-06-13 16:06:01.429 [main] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
+2025-06-13 16:06:01.430 [main] INFO  org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 1871 ms
+2025-06-13 16:06:01.515 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join properties config complete
+2025-06-13 16:06:01.717 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1,northGlassMes} inited
+2025-06-13 16:06:01.724 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-2,pp} inited
+2025-06-13 16:06:01.730 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-3,sd} inited
+2025-06-13 16:06:01.732 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [pp] success
+2025-06-13 16:06:01.732 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [sd] success
+2025-06-13 16:06:01.732 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [northGlassMes] success
+2025-06-13 16:06:01.732 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource initial loaded [3] datasource,primary datasource named [northGlassMes]
+2025-06-13 16:06:01.851 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join SqlInjector init
+2025-06-13 16:06:03.745 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Java version: 1.8.0_101
+2025-06-13 16:06:03.746 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Eclipse Milo OPC UA Stack version: 0.6.8
+2025-06-13 16:06:03.746 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Eclipse Milo OPC UA Client SDK version: 0.6.8
+2025-06-13 16:06:05.009 [milo-nonce-util-secure-random] INFO  org.eclipse.milo.opcua.stack.core.util.NonceUtil - SecureRandom seeded in 0ms.
+2025-06-13 16:06:06.260 [main] INFO  s.d.s.w.WebMvcPropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [public org.springframework.http.ResponseEntity<springfox.documentation.spring.web.json.Json> springfox.documentation.swagger2.web.Swagger2ControllerWebMvc.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest)]
+2025-06-13 16:06:06.311 [main] INFO  o.s.security.web.DefaultSecurityFilterChain - Creating filter chain: any request, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@37393dab, org.springframework.security.web.context.SecurityContextPersistenceFilter@5cf1bbd3, org.springframework.security.web.header.HeaderWriterFilter@63846fa4, org.springframework.web.filter.CorsFilter@4866a755, org.springframework.security.web.authentication.logout.LogoutFilter@29d81c22, com.mes.common.filter.JwtAuthenticationTokenFilter@7ab1ad9, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@6f740044, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@4777f71e, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@716eae1, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@1361e880, org.springframework.security.web.session.SessionManagementFilter@74026b18, org.springframework.security.web.access.ExceptionTranslationFilter@5f8da82, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@2190508d]
+2025-06-13 16:06:06.325 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-06-13 16:06:06.328 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-06-13 16:06:06.454 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
+2025-06-13 16:06:07.957 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 16:06:07.987 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService
+2025-06-13 16:06:08.216 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService 'taskScheduler'
+2025-06-13 16:06:09.594 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 16:06:09.789 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Documentation plugins bootstrapped
+2025-06-13 16:06:09.792 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
+2025-06-13 16:06:09.820 [main] INFO  s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
+2025-06-13 16:06:09.974 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: listByStateUsingPOST_1
+2025-06-13 16:06:09.979 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: selectDamageUsingPOST_1
+2025-06-13 16:06:10.057 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-10015"]
+2025-06-13 16:06:10.067 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Pausing ProtocolHandler ["http-nio-10015"]
+2025-06-13 16:06:10.067 [main] INFO  org.apache.catalina.core.StandardService - Stopping service [Tomcat]
+2025-06-13 16:06:10.073 [main] INFO  org.apache.catalina.util.LifecycleBase - The stop() method was called on component [StandardServer[-1]] after stop() had already been called. The second call will be ignored.
+2025-06-13 16:06:10.073 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Stopping ProtocolHandler ["http-nio-10015"]
+2025-06-13 16:06:10.073 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Destroying ProtocolHandler ["http-nio-10015"]
+2025-06-13 16:06:10.076 [main] INFO  o.s.b.a.l.ConditionEvaluationReportLoggingListener - 
+
+Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
+2025-06-13 16:06:10.078 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Shutting down ExecutorService 'taskScheduler'
+2025-06-13 16:06:10.079 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Shutting down ExecutorService 'applicationTaskExecutor'
+2025-06-13 16:06:10.082 [main] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 16:06:10.098 [main] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 16:06:10.101 [main] INFO  com.kangaroohy.milo.pool.MiloConnectFactory - disconnect opcUaClient eclipse milo opc-ua client
+2025-06-13 16:06:10.104 [main] INFO  c.k.milo.configuration.MiloAutoConfiguration - all opcUaClients are closed
+2025-06-13 16:06:10.105 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource start closing ....
+2025-06-13 16:06:10.110 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-2} closed
+2025-06-13 16:06:10.110 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-3} closed
+2025-06-13 16:06:10.111 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1} closed
+2025-06-13 16:06:10.111 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
+2025-06-13 16:06:11.743 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:06:31.783 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:13:08.688 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$a8c9d6fc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:13:10.203 [main] INFO  com.mes.LoadGlassModuleApplication - The following profiles are active: dev
+2025-06-13 16:13:10.981 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
+2025-06-13 16:13:10.983 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
+2025-06-13 16:13:11.034 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 41ms. Found 0 repository interfaces.
+2025-06-13 16:13:11.253 [main] INFO  o.springframework.cloud.context.scope.GenericScope - BeanFactory id=af6f9514-4bd4-360c-8654-4345edb346a4
+2025-06-13 16:13:11.356 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$8cafd3ff] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:13:11.394 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'spring.datasource.dynamic-com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:13:11.395 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$f63e44d0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:13:11.528 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'dsProcessor' of type [com.baomidou.dynamic.datasource.processor.DsHeaderProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:13:11.547 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration' of type [org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration$$EnhancerBySpringCGLIB$$255d9c39] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:13:11.550 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'objectPostProcessor' of type [org.springframework.security.config.annotation.configuration.AutowireBeanFactoryObjectPostProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:13:11.552 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@1a1f79ce' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:13:11.554 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration' of type [org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration$$EnhancerBySpringCGLIB$$4a323eeb] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:13:11.560 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:13:11.590 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$a8c9d6fc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-06-13 16:13:11.998 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 10015 (http)
+2025-06-13 16:13:12.012 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-10015"]
+2025-06-13 16:13:12.019 [main] INFO  org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-06-13 16:13:12.020 [main] INFO  org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.24]
+2025-06-13 16:13:12.025 [main] INFO  org.apache.catalina.core.AprLifecycleListener - Loaded APR based Apache Tomcat Native library [1.3.1] using APR version [1.7.4].
+2025-06-13 16:13:12.025 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
+2025-06-13 16:13:12.025 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
+2025-06-13 16:13:12.028 [main] INFO  org.apache.catalina.core.AprLifecycleListener - OpenSSL successfully initialized [OpenSSL 3.0.14 4 Jun 2024]
+2025-06-13 16:13:12.139 [main] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
+2025-06-13 16:13:12.139 [main] INFO  org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 1920 ms
+2025-06-13 16:13:12.222 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join properties config complete
+2025-06-13 16:13:12.345 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1,northGlassMes} inited
+2025-06-13 16:13:12.348 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-2,pp} inited
+2025-06-13 16:13:12.351 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-3,sd} inited
+2025-06-13 16:13:12.351 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [pp] success
+2025-06-13 16:13:12.351 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [sd] success
+2025-06-13 16:13:12.351 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource - load a datasource named [northGlassMes] success
+2025-06-13 16:13:12.351 [main] INFO  c.b.dynamic.datasource.DynamicRoutingDataSource - dynamic-datasource initial loaded [3] datasource,primary datasource named [northGlassMes]
+2025-06-13 16:13:12.409 [main] INFO  c.g.y.a.MybatisPlusJoinAutoConfiguration - mybatis plus join SqlInjector init
+2025-06-13 16:13:14.518 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Java version: 1.8.0_101
+2025-06-13 16:13:14.520 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Eclipse Milo OPC UA Stack version: 0.6.8
+2025-06-13 16:13:14.520 [main] INFO  org.eclipse.milo.opcua.sdk.client.OpcUaClient - Eclipse Milo OPC UA Client SDK version: 0.6.8
+2025-06-13 16:13:15.901 [milo-nonce-util-secure-random] INFO  org.eclipse.milo.opcua.stack.core.util.NonceUtil - SecureRandom seeded in 0ms.
+2025-06-13 16:13:17.393 [main] INFO  s.d.s.w.WebMvcPropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [public org.springframework.http.ResponseEntity<springfox.documentation.spring.web.json.Json> springfox.documentation.swagger2.web.Swagger2ControllerWebMvc.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest)]
+2025-06-13 16:13:17.442 [main] INFO  o.s.security.web.DefaultSecurityFilterChain - Creating filter chain: any request, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@74797b90, org.springframework.security.web.context.SecurityContextPersistenceFilter@510a2c7, org.springframework.security.web.header.HeaderWriterFilter@59043741, org.springframework.web.filter.CorsFilter@7676b2b9, org.springframework.security.web.authentication.logout.LogoutFilter@58d79479, com.mes.common.filter.JwtAuthenticationTokenFilter@30af23fd, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@24563809, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@1ea19c97, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@57ab4b33, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@720c0996, org.springframework.security.web.session.SessionManagementFilter@64cdc310, org.springframework.security.web.access.ExceptionTranslationFilter@5af641d3, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@ea0c99c]
+2025-06-13 16:13:17.456 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-06-13 16:13:17.459 [main] INFO  com.netflix.config.sources.URLConfigurationSource - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2025-06-13 16:13:17.582 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
+2025-06-13 16:13:19.097 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 16:13:19.127 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService
+2025-06-13 16:13:19.321 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService 'taskScheduler'
+2025-06-13 16:13:20.734 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 16:13:20.997 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Documentation plugins bootstrapped
+2025-06-13 16:13:21.000 [main] INFO  s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)
+2025-06-13 16:13:21.025 [main] INFO  s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references
+2025-06-13 16:13:21.168 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: listByStateUsingPOST_1
+2025-06-13 16:13:21.174 [main] INFO  s.d.s.w.r.operation.CachingOperationNameGenerator - Generating unique operation named: selectDamageUsingPOST_1
+2025-06-13 16:13:21.271 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-10015"]
+2025-06-13 16:13:21.292 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 10015 (http) with context path ''
+2025-06-13 16:13:21.358 [main] INFO  c.a.cloud.nacos.registry.NacosServiceRegistry - nacos registry, loadGlass 26.246.64.36:10015 register finished
+2025-06-13 16:13:22.969 [main] INFO  org.springframework.cloud.commons.util.InetUtils - Cannot determine local hostname
+2025-06-13 16:13:22.970 [main] INFO  com.mes.LoadGlassModuleApplication - Started LoadGlassModuleApplication in 17.126 seconds (JVM running for 18.068)
+2025-06-13 16:13:22.972 [main] INFO  com.mes.AppRunnerConfig - 鍚姩瀹屾垚
+2025-06-13 16:13:31.796 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:13:51.825 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:14:11.856 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:14:31.886 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:14:46.872 [http-nio-10015-exec-1] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2025-06-13 16:14:46.873 [http-nio-10015-exec-1] INFO  org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
+2025-06-13 16:14:46.883 [http-nio-10015-exec-1] INFO  org.springframework.web.servlet.DispatcherServlet - Completed initialization in 10 ms
+2025-06-13 16:14:47.633 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:14:47.644 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:14:47.645 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:14:51.921 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:15:11.960 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:15:32.000 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:15:52.028 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:16:12.064 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:16:32.092 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:16:52.130 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:17:04.132 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:17:04.134 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:17:04.134 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:17:12.158 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:17:32.193 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:17:52.223 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:18:12.241 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:18:32.265 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:18:52.281 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:19:12.313 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:19:32.341 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:19:52.368 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:20:12.390 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:20:32.426 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:20:52.454 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:21:12.505 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:21:29.638 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:21:29.638 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:21:29.639 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:21:32.467 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:21:32.467 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:21:32.468 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:21:32.539 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:21:47.105 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:21:47.107 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:21:47.107 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:21:52.561 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:22:12.587 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:22:32.618 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:22:40.086 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:22:40.086 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:22:40.086 [http-nio-10015-exec-7] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:22:52.634 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:23:12.662 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:23:32.691 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:23:52.724 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:24:12.747 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:24:32.785 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:24:52.816 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:25:12.849 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:25:32.885 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:25:52.924 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:26:12.953 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:26:32.986 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:26:46.594 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:26:46.594 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:26:46.594 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:26:47.073 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:26:47.073 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:26:47.074 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:26:53.017 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:27:13.044 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:27:33.073 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:27:53.114 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:28:13.147 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:28:33.182 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:28:53.216 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:29:13.243 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:29:33.282 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:29:36.470 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:29:36.471 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:29:36.471 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:29:53.306 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:30:13.344 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:30:33.367 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:30:53.389 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:31:13.430 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:31:32.427 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:31:32.428 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:31:32.429 [http-nio-10015-exec-8] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:31:33.451 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:31:53.474 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:31:57.472 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:31:57.472 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:31:57.472 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:32:13.501 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:32:33.518 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:32:53.537 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:33:13.568 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:33:14.451 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:33:14.452 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:33:14.452 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:33:33.589 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:33:53.613 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:34:13.642 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:34:20.598 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:34:20.598 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:34:20.598 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:34:33.680 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:34:47.575 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:34:47.577 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:34:47.577 [http-nio-10015-exec-4] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:34:53.710 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:35:13.734 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:35:33.758 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:35:53.795 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:36:07.681 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:36:07.681 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:36:07.682 [http-nio-10015-exec-6] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:36:13.819 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:36:33.839 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:36:53.871 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:37:13.898 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:37:33.938 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:37:46.454 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:37:46.455 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:37:46.455 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:37:53.951 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:38:13.972 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:38:33.995 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:38:54.016 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:39:14.047 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:39:34.073 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:39:54.096 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:40:12.314 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:40:12.314 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:40:12.315 [http-nio-10015-exec-3] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:40:14.120 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:40:34.146 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:40:54.171 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:41:14.194 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:41:34.232 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:41:54.274 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:42:14.310 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:42:34.337 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:42:40.170 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:42:40.171 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:42:40.172 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:42:54.363 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:43:14.396 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:43:34.412 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:43:54.430 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:44:14.461 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:44:34.488 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:44:54.509 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:45:14.525 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:45:34.550 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:45:42.314 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:45:42.315 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:45:42.315 [http-nio-10015-exec-2] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:45:42.864 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:45:42.864 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:45:42.864 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:45:54.586 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:46:14.614 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:46:34.636 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:46:54.663 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:47:14.691 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:47:34.711 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:47:54.734 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:48:14.762 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:48:34.802 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:48:54.846 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:49:14.876 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:49:34.903 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:49:54.917 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:50:14.952 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:50:34.974 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:50:55.003 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:51:13.053 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:51:13.053 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:51:13.053 [http-nio-10015-exec-9] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:51:15.023 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:51:35.047 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:51:53.730 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 16:51:53.730 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 16:51:53.730 [http-nio-10015-exec-1] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 16:51:55.067 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:52:15.100 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:52:35.119 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:52:55.146 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:53:15.189 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:53:35.211 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:53:55.241 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:54:15.272 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:54:35.300 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:54:55.334 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:55:15.361 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:55:35.390 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:55:55.423 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:56:15.456 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:56:35.494 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:56:55.510 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:57:15.540 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:57:35.578 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:57:55.595 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:58:15.622 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:58:35.644 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:58:55.676 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:59:15.706 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:59:35.732 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 16:59:55.755 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:00:15.796 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:00:35.819 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:00:55.838 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:01:15.858 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:01:35.892 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:01:55.919 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:02:15.937 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:02:35.957 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:02:42.650 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - userinfos:[SysMenu(id=1, parentId=0, menuName=涓婄墖鏈�, icon=null, url=null, languageType=null, status=1, listSort=1, createTime=Fri Mar 01 10:35:15 CST 2024, perms=spj, children=null), SysMenu(id=37, parentId=0, menuName=浠撳偍涓績, icon=/, url=/, languageType=/, status=1, listSort=0, createTime=Fri May 24 11:39:13 CST 2024, perms=cczx, children=null), SysMenu(id=38, parentId=37, menuName=鍘熺墖浠撳偍2, icon=/, url=/GlassStorage/rawfilmstorage2, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=39, parentId=37, menuName=鍘熺墖浠撳偍, icon=/, url=/GlassStorage/rawfilmstorage, languageType=/, status=1, listSort=1, createTime=Fri May 24 11:44:21 CST 2024, perms=null, children=null), SysMenu(id=40, parentId=1, menuName=涓婄墖椤甸潰, icon=/, url=/Returns/upreturns3, languageType=/, status=1, listSort=2, createTime=Thu Oct 10 15:17:22 CST 2024, perms=null, children=null)]
+2025-06-13 17:02:42.651 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"2","menuName":"涓婄墖椤甸潰","parentId":1,"url":"/Returns/upreturns3","createTime":1728544642000,"id":40,"status":1}]
+2025-06-13 17:02:42.651 [http-nio-10015-exec-5] INFO  com.mes.menu.service.impl.SysMenuServiceImpl - 鑿滃崟鏍�:[{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍2","parentId":37,"url":"/GlassStorage/rawfilmstorage2","createTime":1716522261000,"id":38,"status":1},{"languageType":"/","icon":"/","listSort":"1","menuName":"鍘熺墖浠撳偍","parentId":37,"url":"/GlassStorage/rawfilmstorage","createTime":1716522261000,"id":39,"status":1}]
+2025-06-13 17:02:55.984 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:03:16.007 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:03:36.040 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:03:56.074 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:04:16.102 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:04:36.130 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:04:56.157 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:05:16.190 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:05:36.212 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:05:56.250 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:06:16.276 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:06:36.306 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:06:56.341 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:07:16.384 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:07:36.417 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:07:56.437 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:08:16.463 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:08:36.507 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:08:56.536 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:09:16.563 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:09:36.580 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:09:56.619 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:10:16.649 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:10:36.684 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:10:56.722 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:11:16.751 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:11:36.788 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:11:56.816 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:12:16.840 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:12:36.860 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:12:56.897 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:13:16.932 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:13:36.968 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:13:56.995 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:14:17.033 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:14:37.051 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:14:57.092 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:15:17.117 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:15:37.144 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:15:57.182 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:16:17.211 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:16:37.241 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:16:57.285 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:17:17.313 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:17:37.337 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:17:57.378 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:18:17.407 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:18:37.444 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:18:57.482 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
+2025-06-13 17:19:17.511 [scheduling-1] INFO  com.mes.job.OpcLoadGlassTask - 淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�
diff --git a/logs/loadGlass/web_warn.log b/logs/loadGlass/web_warn.log
new file mode 100644
index 0000000..aee4410
--- /dev/null
+++ b/logs/loadGlass/web_warn.log
@@ -0,0 +1,620 @@
+2025-06-13 08:15:34.830 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'engineeringMapper' and 'com.mes.engineering.mapper.EngineeringMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.832 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upWorkstationMapper' and 'com.mes.workstation.mapper.UpWorkstationMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.832 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'bigStorageCageTaskMapper' and 'com.mes.bigstoragecagetask.mapper.BigStorageCageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.832 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'damageMapper' and 'com.mes.damage.mapper.DamageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.832 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'glassInfoMapper' and 'com.mes.glassinfo.mapper.GlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.832 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'largenScreenMapper' and 'com.mes.largenscreen.mapper.LargenScreenMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.832 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskHistoryDao' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskHistoryDao' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.832 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskMapper' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.832 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderMapper' and 'com.mes.order.mapper.OrderMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.832 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderdetailMapper' and 'com.mes.order.mapper.OrderdetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.832 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'ordersMapper' and 'com.mes.order.mapper.OrdersMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.833 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'basicDataProduceMapper' and 'com.mes.pp.mapper.BasicDataProduceMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.833 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'flowCardMapper' and 'com.mes.pp.mapper.FlowCardMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.833 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeDetailMapper' and 'com.mes.pp.mapper.OptimizeDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.833 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatDetailMapper' and 'com.mes.pp.mapper.OptimizeHeatDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.833 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatLayoutMapper' and 'com.mes.pp.mapper.OptimizeHeatLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.833 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeLayoutMapper' and 'com.mes.pp.mapper.OptimizeLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.833 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeProjectMapper' and 'com.mes.pp.mapper.OptimizeProjectMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.833 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkDetailMapper' and 'com.mes.pp.mapper.ReportingWorkDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.833 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkMapper' and 'com.mes.pp.mapper.ReportingWorkMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.833 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'awaitingRepairMapper' and 'com.mes.pp.mapper.request.AwaitingRepairMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.833 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingDamageMapper' and 'com.mes.pp.mapper.request.ReportingDamageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.833 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageDetailsMapper' and 'com.mes.rawglassdetails.mapper.RawGlassStorageDetailsMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.833 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageStationMapper' and 'com.mes.rawglassstation.mapper.RawGlassStorageStationMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.833 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageTaskMapper' and 'com.mes.rawglasstask.mapper.RawGlassStorageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.833 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysConfigMapper' and 'com.mes.sysconfig.mapper.SysConfigMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.833 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictDataMapper' and 'com.mes.sysdict.mapper.SysDictDataMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.833 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictTypeMapper' and 'com.mes.sysdict.mapper.SysDictTypeMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.833 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'temperingGlassInfoMapper' and 'com.mes.temperingglass.mapper.TemperingGlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.833 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upPattenUsageMapper' and 'com.mes.uppattenusage.mapper.UpPattenUsageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.834 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'workAssignmentMapper' and 'com.mes.work_assignment.mapper.WorkAssignmentMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.834 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.mes.menu.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.834 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.mes.role.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.834 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.mes.role.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.834 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserMapper' and 'com.mes.userinfo.mapper.SysUserMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.834 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.mes.userinfo.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:15:34.834 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.mes.*.mapper]' package. Please check your configuration.
+2025-06-13 08:15:36.230 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orders".
+2025-06-13 08:15:39.131 [milo-shared-thread-pool-2] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 08:15:39.258 [milo-shared-thread-pool-0] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 08:15:39.300 [milo-shared-thread-pool-1] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 08:15:39.394 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orderdetail".
+2025-06-13 08:15:39.498 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.Reportingdamage".
+2025-06-13 08:15:39.521 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.AwaitingRepair".
+2025-06-13 08:15:40.393 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
+2025-06-13 08:15:40.396 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
+2025-06-13 08:17:43.804 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'engineeringMapper' and 'com.mes.engineering.mapper.EngineeringMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.804 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upWorkstationMapper' and 'com.mes.workstation.mapper.UpWorkstationMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.804 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'bigStorageCageTaskMapper' and 'com.mes.bigstoragecagetask.mapper.BigStorageCageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.804 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'damageMapper' and 'com.mes.damage.mapper.DamageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.804 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'glassInfoMapper' and 'com.mes.glassinfo.mapper.GlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'largenScreenMapper' and 'com.mes.largenscreen.mapper.LargenScreenMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskHistoryDao' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskHistoryDao' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskMapper' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderMapper' and 'com.mes.order.mapper.OrderMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderdetailMapper' and 'com.mes.order.mapper.OrderdetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'ordersMapper' and 'com.mes.order.mapper.OrdersMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'basicDataProduceMapper' and 'com.mes.pp.mapper.BasicDataProduceMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'flowCardMapper' and 'com.mes.pp.mapper.FlowCardMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeDetailMapper' and 'com.mes.pp.mapper.OptimizeDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatDetailMapper' and 'com.mes.pp.mapper.OptimizeHeatDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatLayoutMapper' and 'com.mes.pp.mapper.OptimizeHeatLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeLayoutMapper' and 'com.mes.pp.mapper.OptimizeLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeProjectMapper' and 'com.mes.pp.mapper.OptimizeProjectMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkDetailMapper' and 'com.mes.pp.mapper.ReportingWorkDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkMapper' and 'com.mes.pp.mapper.ReportingWorkMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'awaitingRepairMapper' and 'com.mes.pp.mapper.request.AwaitingRepairMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingDamageMapper' and 'com.mes.pp.mapper.request.ReportingDamageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageDetailsMapper' and 'com.mes.rawglassdetails.mapper.RawGlassStorageDetailsMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageStationMapper' and 'com.mes.rawglassstation.mapper.RawGlassStorageStationMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageTaskMapper' and 'com.mes.rawglasstask.mapper.RawGlassStorageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.805 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysConfigMapper' and 'com.mes.sysconfig.mapper.SysConfigMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.806 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictDataMapper' and 'com.mes.sysdict.mapper.SysDictDataMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.806 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictTypeMapper' and 'com.mes.sysdict.mapper.SysDictTypeMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.806 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'temperingGlassInfoMapper' and 'com.mes.temperingglass.mapper.TemperingGlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.806 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upPattenUsageMapper' and 'com.mes.uppattenusage.mapper.UpPattenUsageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.806 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'workAssignmentMapper' and 'com.mes.work_assignment.mapper.WorkAssignmentMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.806 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.mes.menu.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.806 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.mes.role.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.806 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.mes.role.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.806 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserMapper' and 'com.mes.userinfo.mapper.SysUserMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.806 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.mes.userinfo.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:17:43.806 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.mes.*.mapper]' package. Please check your configuration.
+2025-06-13 08:17:45.065 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orders".
+2025-06-13 08:17:48.069 [milo-shared-thread-pool-2] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 08:17:48.184 [milo-shared-thread-pool-2] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 08:17:48.232 [milo-shared-thread-pool-1] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 08:17:48.320 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orderdetail".
+2025-06-13 08:17:48.423 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.Reportingdamage".
+2025-06-13 08:17:48.442 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.AwaitingRepair".
+2025-06-13 08:17:49.246 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
+2025-06-13 08:17:49.249 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
+2025-06-13 08:20:46.464 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'engineeringMapper' and 'com.mes.engineering.mapper.EngineeringMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.464 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upWorkstationMapper' and 'com.mes.workstation.mapper.UpWorkstationMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.464 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'bigStorageCageTaskMapper' and 'com.mes.bigstoragecagetask.mapper.BigStorageCageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.464 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'damageMapper' and 'com.mes.damage.mapper.DamageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.464 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'glassInfoMapper' and 'com.mes.glassinfo.mapper.GlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.464 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'largenScreenMapper' and 'com.mes.largenscreen.mapper.LargenScreenMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.464 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskHistoryDao' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskHistoryDao' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.464 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskMapper' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.464 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderMapper' and 'com.mes.order.mapper.OrderMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.464 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderdetailMapper' and 'com.mes.order.mapper.OrderdetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'ordersMapper' and 'com.mes.order.mapper.OrdersMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'basicDataProduceMapper' and 'com.mes.pp.mapper.BasicDataProduceMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'flowCardMapper' and 'com.mes.pp.mapper.FlowCardMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeDetailMapper' and 'com.mes.pp.mapper.OptimizeDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatDetailMapper' and 'com.mes.pp.mapper.OptimizeHeatDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatLayoutMapper' and 'com.mes.pp.mapper.OptimizeHeatLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeLayoutMapper' and 'com.mes.pp.mapper.OptimizeLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeProjectMapper' and 'com.mes.pp.mapper.OptimizeProjectMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkDetailMapper' and 'com.mes.pp.mapper.ReportingWorkDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkMapper' and 'com.mes.pp.mapper.ReportingWorkMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'awaitingRepairMapper' and 'com.mes.pp.mapper.request.AwaitingRepairMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingDamageMapper' and 'com.mes.pp.mapper.request.ReportingDamageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageDetailsMapper' and 'com.mes.rawglassdetails.mapper.RawGlassStorageDetailsMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageStationMapper' and 'com.mes.rawglassstation.mapper.RawGlassStorageStationMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageTaskMapper' and 'com.mes.rawglasstask.mapper.RawGlassStorageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysConfigMapper' and 'com.mes.sysconfig.mapper.SysConfigMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictDataMapper' and 'com.mes.sysdict.mapper.SysDictDataMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictTypeMapper' and 'com.mes.sysdict.mapper.SysDictTypeMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'temperingGlassInfoMapper' and 'com.mes.temperingglass.mapper.TemperingGlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upPattenUsageMapper' and 'com.mes.uppattenusage.mapper.UpPattenUsageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'workAssignmentMapper' and 'com.mes.work_assignment.mapper.WorkAssignmentMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.mes.menu.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.mes.role.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.mes.role.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserMapper' and 'com.mes.userinfo.mapper.SysUserMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.mes.userinfo.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:20:46.465 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.mes.*.mapper]' package. Please check your configuration.
+2025-06-13 08:20:47.630 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orders".
+2025-06-13 08:20:50.481 [milo-shared-thread-pool-2] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 08:20:50.605 [milo-shared-thread-pool-0] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 08:20:50.644 [milo-shared-thread-pool-1] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 08:20:50.729 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orderdetail".
+2025-06-13 08:20:50.851 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.Reportingdamage".
+2025-06-13 08:20:50.872 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.AwaitingRepair".
+2025-06-13 08:20:51.718 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
+2025-06-13 08:20:51.721 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
+2025-06-13 08:23:22.581 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'engineeringMapper' and 'com.mes.engineering.mapper.EngineeringMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.581 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upWorkstationMapper' and 'com.mes.workstation.mapper.UpWorkstationMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.581 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'bigStorageCageTaskMapper' and 'com.mes.bigstoragecagetask.mapper.BigStorageCageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.581 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'damageMapper' and 'com.mes.damage.mapper.DamageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.581 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'glassInfoMapper' and 'com.mes.glassinfo.mapper.GlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.581 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'largenScreenMapper' and 'com.mes.largenscreen.mapper.LargenScreenMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.581 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskHistoryDao' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskHistoryDao' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskMapper' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderMapper' and 'com.mes.order.mapper.OrderMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderdetailMapper' and 'com.mes.order.mapper.OrderdetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'ordersMapper' and 'com.mes.order.mapper.OrdersMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'basicDataProduceMapper' and 'com.mes.pp.mapper.BasicDataProduceMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'flowCardMapper' and 'com.mes.pp.mapper.FlowCardMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeDetailMapper' and 'com.mes.pp.mapper.OptimizeDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatDetailMapper' and 'com.mes.pp.mapper.OptimizeHeatDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatLayoutMapper' and 'com.mes.pp.mapper.OptimizeHeatLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeLayoutMapper' and 'com.mes.pp.mapper.OptimizeLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeProjectMapper' and 'com.mes.pp.mapper.OptimizeProjectMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkDetailMapper' and 'com.mes.pp.mapper.ReportingWorkDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkMapper' and 'com.mes.pp.mapper.ReportingWorkMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'awaitingRepairMapper' and 'com.mes.pp.mapper.request.AwaitingRepairMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingDamageMapper' and 'com.mes.pp.mapper.request.ReportingDamageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageDetailsMapper' and 'com.mes.rawglassdetails.mapper.RawGlassStorageDetailsMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageStationMapper' and 'com.mes.rawglassstation.mapper.RawGlassStorageStationMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageTaskMapper' and 'com.mes.rawglasstask.mapper.RawGlassStorageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysConfigMapper' and 'com.mes.sysconfig.mapper.SysConfigMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictDataMapper' and 'com.mes.sysdict.mapper.SysDictDataMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictTypeMapper' and 'com.mes.sysdict.mapper.SysDictTypeMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'temperingGlassInfoMapper' and 'com.mes.temperingglass.mapper.TemperingGlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.582 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upPattenUsageMapper' and 'com.mes.uppattenusage.mapper.UpPattenUsageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.583 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'workAssignmentMapper' and 'com.mes.work_assignment.mapper.WorkAssignmentMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.583 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.mes.menu.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.583 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.mes.role.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.583 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.mes.role.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.583 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserMapper' and 'com.mes.userinfo.mapper.SysUserMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.583 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.mes.userinfo.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 08:23:22.583 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.mes.*.mapper]' package. Please check your configuration.
+2025-06-13 08:23:23.879 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orders".
+2025-06-13 08:23:26.964 [milo-shared-thread-pool-2] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 08:23:27.078 [milo-shared-thread-pool-1] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 08:23:27.121 [milo-shared-thread-pool-2] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 08:23:27.213 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orderdetail".
+2025-06-13 08:23:27.330 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.Reportingdamage".
+2025-06-13 08:23:27.349 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.AwaitingRepair".
+2025-06-13 08:23:28.314 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
+2025-06-13 08:23:28.320 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
+2025-06-13 09:49:59.901 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'engineeringMapper' and 'com.mes.engineering.mapper.EngineeringMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upWorkstationMapper' and 'com.mes.workstation.mapper.UpWorkstationMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'bigStorageCageTaskMapper' and 'com.mes.bigstoragecagetask.mapper.BigStorageCageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'damageMapper' and 'com.mes.damage.mapper.DamageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'glassInfoMapper' and 'com.mes.glassinfo.mapper.GlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'largenScreenMapper' and 'com.mes.largenscreen.mapper.LargenScreenMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskHistoryDao' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskHistoryDao' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskMapper' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderMapper' and 'com.mes.order.mapper.OrderMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderdetailMapper' and 'com.mes.order.mapper.OrderdetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'ordersMapper' and 'com.mes.order.mapper.OrdersMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'basicDataProduceMapper' and 'com.mes.pp.mapper.BasicDataProduceMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'flowCardMapper' and 'com.mes.pp.mapper.FlowCardMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeDetailMapper' and 'com.mes.pp.mapper.OptimizeDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatDetailMapper' and 'com.mes.pp.mapper.OptimizeHeatDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatLayoutMapper' and 'com.mes.pp.mapper.OptimizeHeatLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeLayoutMapper' and 'com.mes.pp.mapper.OptimizeLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeProjectMapper' and 'com.mes.pp.mapper.OptimizeProjectMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkDetailMapper' and 'com.mes.pp.mapper.ReportingWorkDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkMapper' and 'com.mes.pp.mapper.ReportingWorkMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'awaitingRepairMapper' and 'com.mes.pp.mapper.request.AwaitingRepairMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingDamageMapper' and 'com.mes.pp.mapper.request.ReportingDamageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageDetailsMapper' and 'com.mes.rawglassdetails.mapper.RawGlassStorageDetailsMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageStationMapper' and 'com.mes.rawglassstation.mapper.RawGlassStorageStationMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageTaskMapper' and 'com.mes.rawglasstask.mapper.RawGlassStorageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysConfigMapper' and 'com.mes.sysconfig.mapper.SysConfigMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.902 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictDataMapper' and 'com.mes.sysdict.mapper.SysDictDataMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.903 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictTypeMapper' and 'com.mes.sysdict.mapper.SysDictTypeMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.903 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'temperingGlassInfoMapper' and 'com.mes.temperingglass.mapper.TemperingGlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.903 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upPattenUsageMapper' and 'com.mes.uppattenusage.mapper.UpPattenUsageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.903 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'workAssignmentMapper' and 'com.mes.work_assignment.mapper.WorkAssignmentMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.903 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.mes.menu.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.903 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.mes.role.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.903 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.mes.role.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.904 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserMapper' and 'com.mes.userinfo.mapper.SysUserMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.904 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.mes.userinfo.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 09:49:59.904 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.mes.*.mapper]' package. Please check your configuration.
+2025-06-13 09:50:01.132 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orders".
+2025-06-13 09:50:03.974 [milo-shared-thread-pool-0] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 09:50:04.098 [milo-shared-thread-pool-2] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 09:50:04.148 [milo-shared-thread-pool-0] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 09:50:04.234 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orderdetail".
+2025-06-13 09:50:04.344 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.Reportingdamage".
+2025-06-13 09:50:04.365 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.AwaitingRepair".
+2025-06-13 09:50:05.262 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
+2025-06-13 09:50:05.265 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
+2025-06-13 13:25:58.262 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'engineeringMapper' and 'com.mes.engineering.mapper.EngineeringMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.262 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upWorkstationMapper' and 'com.mes.workstation.mapper.UpWorkstationMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.263 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'bigStorageCageTaskMapper' and 'com.mes.bigstoragecagetask.mapper.BigStorageCageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.263 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'damageMapper' and 'com.mes.damage.mapper.DamageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.263 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'glassInfoMapper' and 'com.mes.glassinfo.mapper.GlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'largenScreenMapper' and 'com.mes.largenscreen.mapper.LargenScreenMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskHistoryDao' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskHistoryDao' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskMapper' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderMapper' and 'com.mes.order.mapper.OrderMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderdetailMapper' and 'com.mes.order.mapper.OrderdetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'ordersMapper' and 'com.mes.order.mapper.OrdersMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'basicDataProduceMapper' and 'com.mes.pp.mapper.BasicDataProduceMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'flowCardMapper' and 'com.mes.pp.mapper.FlowCardMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeDetailMapper' and 'com.mes.pp.mapper.OptimizeDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatDetailMapper' and 'com.mes.pp.mapper.OptimizeHeatDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatLayoutMapper' and 'com.mes.pp.mapper.OptimizeHeatLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeLayoutMapper' and 'com.mes.pp.mapper.OptimizeLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeProjectMapper' and 'com.mes.pp.mapper.OptimizeProjectMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkDetailMapper' and 'com.mes.pp.mapper.ReportingWorkDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkMapper' and 'com.mes.pp.mapper.ReportingWorkMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'awaitingRepairMapper' and 'com.mes.pp.mapper.request.AwaitingRepairMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingDamageMapper' and 'com.mes.pp.mapper.request.ReportingDamageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageDetailsMapper' and 'com.mes.rawglassdetails.mapper.RawGlassStorageDetailsMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageStationMapper' and 'com.mes.rawglassstation.mapper.RawGlassStorageStationMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageTaskMapper' and 'com.mes.rawglasstask.mapper.RawGlassStorageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysConfigMapper' and 'com.mes.sysconfig.mapper.SysConfigMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.264 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictDataMapper' and 'com.mes.sysdict.mapper.SysDictDataMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.265 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictTypeMapper' and 'com.mes.sysdict.mapper.SysDictTypeMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.265 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'temperingGlassInfoMapper' and 'com.mes.temperingglass.mapper.TemperingGlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.265 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upPattenUsageMapper' and 'com.mes.uppattenusage.mapper.UpPattenUsageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.265 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'workAssignmentMapper' and 'com.mes.work_assignment.mapper.WorkAssignmentMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.265 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.mes.menu.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.265 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.mes.role.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.265 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.mes.role.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.265 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserMapper' and 'com.mes.userinfo.mapper.SysUserMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.265 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.mes.userinfo.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:25:58.265 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.mes.*.mapper]' package. Please check your configuration.
+2025-06-13 13:25:59.588 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orders".
+2025-06-13 13:26:07.777 [milo-shared-thread-pool-1] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 13:26:07.907 [milo-shared-thread-pool-0] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 13:26:07.947 [milo-shared-thread-pool-1] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 13:26:08.029 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orderdetail".
+2025-06-13 13:26:08.128 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.Reportingdamage".
+2025-06-13 13:26:08.146 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.AwaitingRepair".
+2025-06-13 13:26:08.902 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
+2025-06-13 13:26:08.906 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
+2025-06-13 13:29:37.489 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'engineeringMapper' and 'com.mes.engineering.mapper.EngineeringMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.489 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upWorkstationMapper' and 'com.mes.workstation.mapper.UpWorkstationMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.489 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'bigStorageCageTaskMapper' and 'com.mes.bigstoragecagetask.mapper.BigStorageCageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.489 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'damageMapper' and 'com.mes.damage.mapper.DamageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.489 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'glassInfoMapper' and 'com.mes.glassinfo.mapper.GlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.489 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'largenScreenMapper' and 'com.mes.largenscreen.mapper.LargenScreenMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.489 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskHistoryDao' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskHistoryDao' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.490 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskMapper' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.490 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderMapper' and 'com.mes.order.mapper.OrderMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.490 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderdetailMapper' and 'com.mes.order.mapper.OrderdetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.490 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'ordersMapper' and 'com.mes.order.mapper.OrdersMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.490 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'basicDataProduceMapper' and 'com.mes.pp.mapper.BasicDataProduceMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.491 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'flowCardMapper' and 'com.mes.pp.mapper.FlowCardMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.491 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeDetailMapper' and 'com.mes.pp.mapper.OptimizeDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.491 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatDetailMapper' and 'com.mes.pp.mapper.OptimizeHeatDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.491 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatLayoutMapper' and 'com.mes.pp.mapper.OptimizeHeatLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.491 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeLayoutMapper' and 'com.mes.pp.mapper.OptimizeLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.491 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeProjectMapper' and 'com.mes.pp.mapper.OptimizeProjectMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.491 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkDetailMapper' and 'com.mes.pp.mapper.ReportingWorkDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.491 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkMapper' and 'com.mes.pp.mapper.ReportingWorkMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.491 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'awaitingRepairMapper' and 'com.mes.pp.mapper.request.AwaitingRepairMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.491 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingDamageMapper' and 'com.mes.pp.mapper.request.ReportingDamageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.491 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageDetailsMapper' and 'com.mes.rawglassdetails.mapper.RawGlassStorageDetailsMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.491 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageStationMapper' and 'com.mes.rawglassstation.mapper.RawGlassStorageStationMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.491 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageTaskMapper' and 'com.mes.rawglasstask.mapper.RawGlassStorageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.492 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysConfigMapper' and 'com.mes.sysconfig.mapper.SysConfigMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.492 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictDataMapper' and 'com.mes.sysdict.mapper.SysDictDataMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.492 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictTypeMapper' and 'com.mes.sysdict.mapper.SysDictTypeMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.492 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'temperingGlassInfoMapper' and 'com.mes.temperingglass.mapper.TemperingGlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.492 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upPattenUsageMapper' and 'com.mes.uppattenusage.mapper.UpPattenUsageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.492 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'workAssignmentMapper' and 'com.mes.work_assignment.mapper.WorkAssignmentMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.492 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.mes.menu.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.492 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.mes.role.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.492 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.mes.role.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.492 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserMapper' and 'com.mes.userinfo.mapper.SysUserMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.492 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.mes.userinfo.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:29:37.492 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.mes.*.mapper]' package. Please check your configuration.
+2025-06-13 13:29:38.898 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orders".
+2025-06-13 13:29:42.119 [milo-shared-thread-pool-2] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 13:29:42.242 [milo-shared-thread-pool-1] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 13:29:42.343 [milo-shared-thread-pool-1] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 13:29:42.428 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orderdetail".
+2025-06-13 13:29:42.532 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.Reportingdamage".
+2025-06-13 13:29:42.552 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.AwaitingRepair".
+2025-06-13 13:29:43.401 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
+2025-06-13 13:29:43.405 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
+2025-06-13 13:29:47.186 [main] WARN  org.apache.catalina.loader.WebappClassLoaderBase - The web application [ROOT] appears to have started a thread named [Druid-ConnectionPool-Create-1899600322] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
+ sun.misc.Unsafe.park(Native Method)
+ java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
+ java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
+ com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2426)
+2025-06-13 13:29:47.186 [main] WARN  org.apache.catalina.loader.WebappClassLoaderBase - The web application [ROOT] appears to have started a thread named [Druid-ConnectionPool-Destroy-1899600322] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
+ java.lang.Thread.sleep(Native Method)
+ com.alibaba.druid.pool.DruidDataSource$DestroyConnectionThread.run(DruidDataSource.java:2523)
+2025-06-13 13:29:47.187 [main] WARN  org.apache.catalina.loader.WebappClassLoaderBase - The web application [ROOT] appears to have started a thread named [Druid-ConnectionPool-Create-254784037] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
+ sun.misc.Unsafe.park(Native Method)
+ java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
+ java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
+ com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2426)
+2025-06-13 13:29:47.187 [main] WARN  org.apache.catalina.loader.WebappClassLoaderBase - The web application [ROOT] appears to have started a thread named [Druid-ConnectionPool-Destroy-254784037] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
+ java.lang.Thread.sleep(Native Method)
+ com.alibaba.druid.pool.DruidDataSource$DestroyConnectionThread.run(DruidDataSource.java:2523)
+2025-06-13 13:29:47.187 [main] WARN  org.apache.catalina.loader.WebappClassLoaderBase - The web application [ROOT] appears to have started a thread named [Druid-ConnectionPool-Create-411272987] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
+ sun.misc.Unsafe.park(Native Method)
+ java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
+ java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
+ com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2426)
+2025-06-13 13:29:47.188 [main] WARN  org.apache.catalina.loader.WebappClassLoaderBase - The web application [ROOT] appears to have started a thread named [Druid-ConnectionPool-Destroy-411272987] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
+ java.lang.Thread.sleep(Native Method)
+ com.alibaba.druid.pool.DruidDataSource$DestroyConnectionThread.run(DruidDataSource.java:2523)
+2025-06-13 13:38:57.498 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'engineeringMapper' and 'com.mes.engineering.mapper.EngineeringMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.498 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upWorkstationMapper' and 'com.mes.workstation.mapper.UpWorkstationMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.498 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'bigStorageCageTaskMapper' and 'com.mes.bigstoragecagetask.mapper.BigStorageCageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.499 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'damageMapper' and 'com.mes.damage.mapper.DamageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.499 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'glassInfoMapper' and 'com.mes.glassinfo.mapper.GlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.499 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'largenScreenMapper' and 'com.mes.largenscreen.mapper.LargenScreenMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.499 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskHistoryDao' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskHistoryDao' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.499 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskMapper' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.499 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderMapper' and 'com.mes.order.mapper.OrderMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.499 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderdetailMapper' and 'com.mes.order.mapper.OrderdetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.499 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'ordersMapper' and 'com.mes.order.mapper.OrdersMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.499 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'basicDataProduceMapper' and 'com.mes.pp.mapper.BasicDataProduceMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.499 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'flowCardMapper' and 'com.mes.pp.mapper.FlowCardMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.499 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeDetailMapper' and 'com.mes.pp.mapper.OptimizeDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.499 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatDetailMapper' and 'com.mes.pp.mapper.OptimizeHeatDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.499 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatLayoutMapper' and 'com.mes.pp.mapper.OptimizeHeatLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.499 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeLayoutMapper' and 'com.mes.pp.mapper.OptimizeLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.499 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeProjectMapper' and 'com.mes.pp.mapper.OptimizeProjectMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.499 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkDetailMapper' and 'com.mes.pp.mapper.ReportingWorkDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.499 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkMapper' and 'com.mes.pp.mapper.ReportingWorkMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.499 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'awaitingRepairMapper' and 'com.mes.pp.mapper.request.AwaitingRepairMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.499 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingDamageMapper' and 'com.mes.pp.mapper.request.ReportingDamageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.499 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageDetailsMapper' and 'com.mes.rawglassdetails.mapper.RawGlassStorageDetailsMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.500 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageStationMapper' and 'com.mes.rawglassstation.mapper.RawGlassStorageStationMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.500 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageTaskMapper' and 'com.mes.rawglasstask.mapper.RawGlassStorageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.500 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysConfigMapper' and 'com.mes.sysconfig.mapper.SysConfigMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.500 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictDataMapper' and 'com.mes.sysdict.mapper.SysDictDataMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.500 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictTypeMapper' and 'com.mes.sysdict.mapper.SysDictTypeMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.500 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'temperingGlassInfoMapper' and 'com.mes.temperingglass.mapper.TemperingGlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.500 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upPattenUsageMapper' and 'com.mes.uppattenusage.mapper.UpPattenUsageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.500 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'workAssignmentMapper' and 'com.mes.work_assignment.mapper.WorkAssignmentMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.500 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.mes.menu.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.500 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.mes.role.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.500 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.mes.role.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.500 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserMapper' and 'com.mes.userinfo.mapper.SysUserMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.500 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.mes.userinfo.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 13:38:57.500 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.mes.*.mapper]' package. Please check your configuration.
+2025-06-13 13:38:58.773 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orders".
+2025-06-13 13:39:01.696 [milo-shared-thread-pool-0] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 13:39:01.808 [milo-shared-thread-pool-2] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 13:39:01.853 [milo-shared-thread-pool-1] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 13:39:01.936 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orderdetail".
+2025-06-13 13:39:02.032 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.Reportingdamage".
+2025-06-13 13:39:02.051 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.AwaitingRepair".
+2025-06-13 13:39:02.857 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
+2025-06-13 13:39:02.859 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
+2025-06-13 14:07:34.485 [milo-shared-thread-pool-1] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [2] Keep Alive failureCount=2 exceeds failuresAllowed=1
+2025-06-13 14:07:34.485 [milo-shared-thread-pool-2] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [5] Keep Alive failureCount=2 exceeds failuresAllowed=1
+2025-06-13 14:07:34.579 [milo-shared-thread-pool-4] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [8] Keep Alive failureCount=2 exceeds failuresAllowed=1
+2025-06-13 14:07:39.477 [milo-shared-thread-pool-2] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [2] Keep Alive failureCount=3 exceeds failuresAllowed=1
+2025-06-13 14:07:39.479 [milo-shared-thread-pool-3] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [5] Keep Alive failureCount=3 exceeds failuresAllowed=1
+2025-06-13 14:07:39.581 [milo-shared-thread-pool-2] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [8] Keep Alive failureCount=3 exceeds failuresAllowed=1
+2025-06-13 14:08:06.215 [milo-shared-thread-pool-2] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 14:08:26.065 [milo-shared-thread-pool-3] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 14:08:26.419 [milo-shared-thread-pool-1] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 14:08:52.474 [milo-shared-thread-pool-2] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=12 for ReadResponse
+2025-06-13 14:08:52.585 [milo-shared-thread-pool-2] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=8 for ReadResponse
+2025-06-13 14:08:52.688 [milo-shared-thread-pool-4] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=8 for ReadResponse
+2025-06-13 14:09:05.496 [milo-shared-thread-pool-2] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=10 for ReadResponse
+2025-06-13 14:09:06.378 [milo-shared-thread-pool-2] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [2] Keep Alive failureCount=2 exceeds failuresAllowed=1
+2025-06-13 14:09:06.566 [milo-shared-thread-pool-2] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=10 for ReadResponse
+2025-06-13 14:09:06.977 [milo-shared-thread-pool-2] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [8] Keep Alive failureCount=2 exceeds failuresAllowed=1
+2025-06-13 14:09:11.377 [milo-shared-thread-pool-4] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [2] Keep Alive failureCount=3 exceeds failuresAllowed=1
+2025-06-13 14:09:11.982 [milo-shared-thread-pool-4] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [8] Keep Alive failureCount=3 exceeds failuresAllowed=1
+2025-06-13 14:09:16.677 [milo-shared-thread-pool-2] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [5] Keep Alive failureCount=2 exceeds failuresAllowed=1
+2025-06-13 14:09:21.685 [milo-shared-thread-pool-2] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [5] Keep Alive failureCount=3 exceeds failuresAllowed=1
+2025-06-13 14:10:07.994 [milo-shared-thread-pool-4] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=2 for CreateSessionResponse
+2025-06-13 14:11:11.541 [milo-shared-thread-pool-5] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 14:11:16.627 [milo-shared-thread-pool-5] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=3 for ActivateSessionResponse
+2025-06-13 14:12:02.990 [milo-shared-thread-pool-4] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=4 for CreateSessionResponse
+2025-06-13 14:12:03.026 [milo-shared-thread-pool-4] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=5 for CreateSessionResponse
+2025-06-13 14:12:41.511 [milo-shared-thread-pool-5] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 14:12:57.105 [milo-shared-thread-pool-4] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=6 for ReadResponse
+2025-06-13 14:13:11.677 [milo-shared-thread-pool-5] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [5] Keep Alive failureCount=2 exceeds failuresAllowed=1
+2025-06-13 14:13:16.676 [milo-shared-thread-pool-4] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [5] Keep Alive failureCount=3 exceeds failuresAllowed=1
+2025-06-13 14:14:30.932 [milo-shared-thread-pool-5] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 14:14:51.077 [milo-shared-thread-pool-4] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [8] Keep Alive failureCount=2 exceeds failuresAllowed=1
+2025-06-13 14:14:56.077 [milo-shared-thread-pool-5] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [8] Keep Alive failureCount=3 exceeds failuresAllowed=1
+2025-06-13 14:16:07.319 [milo-shared-thread-pool-4] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 14:16:17.708 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=9 for ServiceFault
+2025-06-13 14:16:17.711 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=8 for ServiceFault
+2025-06-13 14:16:17.714 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=10 for ServiceFault
+2025-06-13 14:16:17.857 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=11 for CreateSessionResponse
+2025-06-13 14:16:17.893 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=12 for CreateSessionResponse
+2025-06-13 14:16:17.943 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=13 for CreateSessionResponse
+2025-06-13 14:16:17.991 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=14 for CreateSessionResponse
+2025-06-13 14:16:18.017 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=15 for CreateSessionResponse
+2025-06-13 14:16:18.093 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=16 for CreateSessionResponse
+2025-06-13 14:16:18.126 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=17 for CreateSessionResponse
+2025-06-13 14:16:18.191 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=18 for CreateSessionResponse
+2025-06-13 14:16:18.284 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=19 for CreateSessionResponse
+2025-06-13 14:16:18.460 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=20 for CreateSessionResponse
+2025-06-13 14:16:18.538 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=21 for CreateSessionResponse
+2025-06-13 14:16:30.906 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 14:17:14.862 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=6 for CreateSessionResponse
+2025-06-13 14:17:14.866 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=7 for CreateSessionResponse
+2025-06-13 14:17:14.890 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=8 for CreateSessionResponse
+2025-06-13 14:17:14.896 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=9 for CreateSessionResponse
+2025-06-13 14:17:14.960 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=10 for CreateSessionResponse
+2025-06-13 14:17:14.960 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=11 for CreateSessionResponse
+2025-06-13 14:17:14.980 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=12 for CreateSessionResponse
+2025-06-13 14:17:15.016 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=13 for CreateSessionResponse
+2025-06-13 14:17:15.018 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=14 for CreateSessionResponse
+2025-06-13 14:17:15.198 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=15 for CreateSessionResponse
+2025-06-13 14:17:15.232 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=16 for CreateSessionResponse
+2025-06-13 14:17:15.244 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=17 for CreateSessionResponse
+2025-06-13 14:17:15.250 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=18 for CreateSessionResponse
+2025-06-13 14:17:15.250 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=19 for CreateSessionResponse
+2025-06-13 14:17:15.278 [milo-shared-thread-pool-4] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=20 for CreateSessionResponse
+2025-06-13 14:17:32.106 [milo-shared-thread-pool-7] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 14:20:31.480 [milo-shared-thread-pool-7] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [5] Keep Alive failureCount=2 exceeds failuresAllowed=1
+2025-06-13 14:20:32.477 [milo-shared-thread-pool-4] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [2] Keep Alive failureCount=2 exceeds failuresAllowed=1
+2025-06-13 14:20:32.883 [milo-shared-thread-pool-7] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [8] Keep Alive failureCount=2 exceeds failuresAllowed=1
+2025-06-13 14:20:36.485 [milo-shared-thread-pool-4] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [5] Keep Alive failureCount=3 exceeds failuresAllowed=1
+2025-06-13 14:20:37.485 [milo-shared-thread-pool-7] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [2] Keep Alive failureCount=3 exceeds failuresAllowed=1
+2025-06-13 14:20:37.877 [milo-shared-thread-pool-7] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [8] Keep Alive failureCount=3 exceeds failuresAllowed=1
+2025-06-13 14:20:48.481 [milo-shared-thread-pool-8] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 14:21:08.581 [milo-shared-thread-pool-4] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [8] Keep Alive failureCount=2 exceeds failuresAllowed=1
+2025-06-13 14:21:13.577 [milo-shared-thread-pool-8] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [8] Keep Alive failureCount=3 exceeds failuresAllowed=1
+2025-06-13 14:21:15.930 [milo-shared-thread-pool-8] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 14:21:20.998 [milo-shared-thread-pool-8] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 14:21:27.783 [milo-shared-thread-pool-4] WARN  org.eclipse.milo.opcua.sdk.client.OpcUaClient - SessionInitializer: NamespaceTable
+java.util.concurrent.CompletionException: UaException: status=Bad_Timeout, message=requestId=434 timed out after 5000ms
+	at java.util.concurrent.CompletableFuture.encodeRelay(CompletableFuture.java:326)
+	at java.util.concurrent.CompletableFuture.completeRelay(CompletableFuture.java:338)
+	at java.util.concurrent.CompletableFuture.uniRelay(CompletableFuture.java:911)
+	at java.util.concurrent.CompletableFuture$UniRelay.tryFire(CompletableFuture.java:899)
+	at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
+	at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1977)
+	at org.eclipse.milo.opcua.stack.client.transport.AbstractTransport.lambda$scheduleRequestTimeout$7(AbstractTransport.java:142)
+	at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:682)
+	at io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:757)
+	at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:485)
+	at java.lang.Thread.run(Thread.java:745)
+Caused by: org.eclipse.milo.opcua.stack.core.UaException: requestId=434 timed out after 5000ms
+	at org.eclipse.milo.opcua.stack.client.transport.AbstractTransport.lambda$scheduleRequestTimeout$7(AbstractTransport.java:137)
+	... 4 common frames omitted
+2025-06-13 14:21:31.285 [milo-shared-thread-pool-8] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [5] Keep Alive failureCount=2 exceeds failuresAllowed=1
+2025-06-13 14:21:32.312 [milo-shared-thread-pool-4] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=5 for ReadResponse
+2025-06-13 14:21:32.313 [milo-shared-thread-pool-4] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=6 for ReadResponse
+2025-06-13 14:21:32.462 [milo-shared-thread-pool-4] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 14:21:42.883 [milo-shared-thread-pool-8] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [2] Keep Alive failureCount=2 exceeds failuresAllowed=1
+2025-06-13 14:21:47.879 [milo-shared-thread-pool-8] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [2] Keep Alive failureCount=3 exceeds failuresAllowed=1
+2025-06-13 14:21:48.985 [milo-shared-thread-pool-4] WARN  o.e.m.o.s.c.t.uasc.UascClientMessageHandler - No pending request with requestId=11 for ReadResponse
+2025-06-13 14:21:59.985 [milo-shared-thread-pool-4] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [5] Keep Alive failureCount=2 exceeds failuresAllowed=1
+2025-06-13 14:22:04.977 [milo-shared-thread-pool-9] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [5] Keep Alive failureCount=3 exceeds failuresAllowed=1
+2025-06-13 16:00:09.793 [milo-shared-thread-pool-28] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 16:00:09.793 [milo-shared-thread-pool-36] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 16:00:15.732 [milo-shared-thread-pool-32] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 16:01:04.981 [milo-shared-thread-pool-36] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [8] Keep Alive failureCount=2 exceeds failuresAllowed=1
+2025-06-13 16:01:04.983 [milo-shared-thread-pool-32] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [5] Keep Alive failureCount=2 exceeds failuresAllowed=1
+2025-06-13 16:01:05.886 [milo-shared-thread-pool-28] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [2] Keep Alive failureCount=2 exceeds failuresAllowed=1
+2025-06-13 16:01:08.694 [milo-shared-thread-pool-28] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [5] Keep Alive failureCount=3 exceeds failuresAllowed=1
+2025-06-13 16:01:08.695 [milo-shared-thread-pool-36] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [8] Keep Alive failureCount=3 exceeds failuresAllowed=1
+2025-06-13 16:01:08.695 [milo-shared-thread-pool-25] WARN  org.eclipse.milo.opcua.sdk.client.SessionFsm - [2] Keep Alive failureCount=3 exceeds failuresAllowed=1
+2025-06-13 16:01:10.722 [milo-shared-thread-pool-37] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 16:01:10.724 [milo-shared-thread-pool-38] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 16:01:10.729 [milo-shared-thread-pool-36] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 16:06:00.586 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'engineeringMapper' and 'com.mes.engineering.mapper.EngineeringMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.586 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upWorkstationMapper' and 'com.mes.workstation.mapper.UpWorkstationMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.586 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'bigStorageCageTaskMapper' and 'com.mes.bigstoragecagetask.mapper.BigStorageCageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.586 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'damageMapper' and 'com.mes.damage.mapper.DamageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.586 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'glassInfoMapper' and 'com.mes.glassinfo.mapper.GlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.586 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'largenScreenMapper' and 'com.mes.largenscreen.mapper.LargenScreenMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskHistoryDao' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskHistoryDao' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskMapper' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderMapper' and 'com.mes.order.mapper.OrderMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderdetailMapper' and 'com.mes.order.mapper.OrderdetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'ordersMapper' and 'com.mes.order.mapper.OrdersMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'basicDataProduceMapper' and 'com.mes.pp.mapper.BasicDataProduceMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'flowCardMapper' and 'com.mes.pp.mapper.FlowCardMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeDetailMapper' and 'com.mes.pp.mapper.OptimizeDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatDetailMapper' and 'com.mes.pp.mapper.OptimizeHeatDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatLayoutMapper' and 'com.mes.pp.mapper.OptimizeHeatLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeLayoutMapper' and 'com.mes.pp.mapper.OptimizeLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeProjectMapper' and 'com.mes.pp.mapper.OptimizeProjectMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkDetailMapper' and 'com.mes.pp.mapper.ReportingWorkDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkMapper' and 'com.mes.pp.mapper.ReportingWorkMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'awaitingRepairMapper' and 'com.mes.pp.mapper.request.AwaitingRepairMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingDamageMapper' and 'com.mes.pp.mapper.request.ReportingDamageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageDetailsMapper' and 'com.mes.rawglassdetails.mapper.RawGlassStorageDetailsMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageStationMapper' and 'com.mes.rawglassstation.mapper.RawGlassStorageStationMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageTaskMapper' and 'com.mes.rawglasstask.mapper.RawGlassStorageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysConfigMapper' and 'com.mes.sysconfig.mapper.SysConfigMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictDataMapper' and 'com.mes.sysdict.mapper.SysDictDataMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.587 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictTypeMapper' and 'com.mes.sysdict.mapper.SysDictTypeMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.588 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'temperingGlassInfoMapper' and 'com.mes.temperingglass.mapper.TemperingGlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.588 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upPattenUsageMapper' and 'com.mes.uppattenusage.mapper.UpPattenUsageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.588 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'workAssignmentMapper' and 'com.mes.work_assignment.mapper.WorkAssignmentMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.588 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.mes.menu.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.588 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.mes.role.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.588 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.mes.role.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.588 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserMapper' and 'com.mes.userinfo.mapper.SysUserMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.588 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.mes.userinfo.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:06:00.588 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.mes.*.mapper]' package. Please check your configuration.
+2025-06-13 16:06:02.246 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orders".
+2025-06-13 16:06:05.071 [milo-shared-thread-pool-2] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 16:06:05.194 [milo-shared-thread-pool-0] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 16:06:05.239 [milo-shared-thread-pool-2] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 16:06:05.330 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orderdetail".
+2025-06-13 16:06:05.436 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.Reportingdamage".
+2025-06-13 16:06:05.457 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.AwaitingRepair".
+2025-06-13 16:06:06.325 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
+2025-06-13 16:06:06.328 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
+2025-06-13 16:06:10.070 [main] WARN  org.apache.catalina.loader.WebappClassLoaderBase - The web application [ROOT] appears to have started a thread named [Druid-ConnectionPool-Create-651431031] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
+ sun.misc.Unsafe.park(Native Method)
+ java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
+ java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
+ com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2426)
+2025-06-13 16:06:10.070 [main] WARN  org.apache.catalina.loader.WebappClassLoaderBase - The web application [ROOT] appears to have started a thread named [Druid-ConnectionPool-Destroy-651431031] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
+ java.lang.Thread.sleep(Native Method)
+ com.alibaba.druid.pool.DruidDataSource$DestroyConnectionThread.run(DruidDataSource.java:2523)
+2025-06-13 16:06:10.070 [main] WARN  org.apache.catalina.loader.WebappClassLoaderBase - The web application [ROOT] appears to have started a thread named [Druid-ConnectionPool-Create-1051471498] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
+ sun.misc.Unsafe.park(Native Method)
+ java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
+ java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
+ com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2426)
+2025-06-13 16:06:10.071 [main] WARN  org.apache.catalina.loader.WebappClassLoaderBase - The web application [ROOT] appears to have started a thread named [Druid-ConnectionPool-Destroy-1051471498] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
+ java.lang.Thread.sleep(Native Method)
+ com.alibaba.druid.pool.DruidDataSource$DestroyConnectionThread.run(DruidDataSource.java:2523)
+2025-06-13 16:06:10.071 [main] WARN  org.apache.catalina.loader.WebappClassLoaderBase - The web application [ROOT] appears to have started a thread named [Druid-ConnectionPool-Create-892299047] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
+ sun.misc.Unsafe.park(Native Method)
+ java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
+ java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
+ com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2426)
+2025-06-13 16:06:10.072 [main] WARN  org.apache.catalina.loader.WebappClassLoaderBase - The web application [ROOT] appears to have started a thread named [Druid-ConnectionPool-Destroy-892299047] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
+ java.lang.Thread.sleep(Native Method)
+ com.alibaba.druid.pool.DruidDataSource$DestroyConnectionThread.run(DruidDataSource.java:2523)
+2025-06-13 16:13:11.155 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'engineeringMapper' and 'com.mes.engineering.mapper.EngineeringMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.156 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upWorkstationMapper' and 'com.mes.workstation.mapper.UpWorkstationMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.156 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'bigStorageCageTaskMapper' and 'com.mes.bigstoragecagetask.mapper.BigStorageCageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.156 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'damageMapper' and 'com.mes.damage.mapper.DamageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.156 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'glassInfoMapper' and 'com.mes.glassinfo.mapper.GlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.156 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'largenScreenMapper' and 'com.mes.largenscreen.mapper.LargenScreenMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.156 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskHistoryDao' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskHistoryDao' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.156 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'loadGlassDeviceTaskMapper' and 'com.mes.opctask.mapper.LoadGlassDeviceTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.157 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderMapper' and 'com.mes.order.mapper.OrderMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.157 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'orderdetailMapper' and 'com.mes.order.mapper.OrderdetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.157 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'ordersMapper' and 'com.mes.order.mapper.OrdersMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.157 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'basicDataProduceMapper' and 'com.mes.pp.mapper.BasicDataProduceMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.157 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'flowCardMapper' and 'com.mes.pp.mapper.FlowCardMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.157 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeDetailMapper' and 'com.mes.pp.mapper.OptimizeDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.157 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatDetailMapper' and 'com.mes.pp.mapper.OptimizeHeatDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.157 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeHeatLayoutMapper' and 'com.mes.pp.mapper.OptimizeHeatLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.157 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeLayoutMapper' and 'com.mes.pp.mapper.OptimizeLayoutMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.157 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'optimizeProjectMapper' and 'com.mes.pp.mapper.OptimizeProjectMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.157 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkDetailMapper' and 'com.mes.pp.mapper.ReportingWorkDetailMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.157 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingWorkMapper' and 'com.mes.pp.mapper.ReportingWorkMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.157 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'awaitingRepairMapper' and 'com.mes.pp.mapper.request.AwaitingRepairMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.157 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'reportingDamageMapper' and 'com.mes.pp.mapper.request.ReportingDamageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.157 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageDetailsMapper' and 'com.mes.rawglassdetails.mapper.RawGlassStorageDetailsMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.157 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageStationMapper' and 'com.mes.rawglassstation.mapper.RawGlassStorageStationMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.157 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'rawGlassStorageTaskMapper' and 'com.mes.rawglasstask.mapper.RawGlassStorageTaskMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.157 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysConfigMapper' and 'com.mes.sysconfig.mapper.SysConfigMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.157 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictDataMapper' and 'com.mes.sysdict.mapper.SysDictDataMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.158 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysDictTypeMapper' and 'com.mes.sysdict.mapper.SysDictTypeMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.158 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'temperingGlassInfoMapper' and 'com.mes.temperingglass.mapper.TemperingGlassInfoMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.158 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'upPattenUsageMapper' and 'com.mes.uppattenusage.mapper.UpPattenUsageMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.158 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'workAssignmentMapper' and 'com.mes.work_assignment.mapper.WorkAssignmentMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.158 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.mes.menu.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.158 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.mes.role.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.158 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.mes.role.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.158 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserMapper' and 'com.mes.userinfo.mapper.SysUserMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.158 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.mes.userinfo.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name!
+2025-06-13 16:13:11.158 [main] WARN  org.mybatis.spring.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.mes.*.mapper]' package. Please check your configuration.
+2025-06-13 16:13:12.717 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orders".
+2025-06-13 16:13:15.988 [milo-shared-thread-pool-0] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 16:13:16.293 [milo-shared-thread-pool-1] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 16:13:16.357 [milo-shared-thread-pool-1] WARN  o.e.m.o.s.c.s.ClientCertificateValidator$InsecureValidator - Skipping validation for certificate: CN=KEPServerEX/UA Server, O=Unknown, C=CN, DC=WIN-G5L1S47CSKQ
+2025-06-13 16:13:16.496 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.order.entity.Orderdetail".
+2025-06-13 16:13:16.615 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.Reportingdamage".
+2025-06-13 16:13:16.635 [main] WARN  c.b.mybatisplus.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.mes.pp.entity.request.AwaitingRepair".
+2025-06-13 16:13:17.456 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
+2025-06-13 16:13:17.459 [main] WARN  com.netflix.config.sources.URLConfigurationSource - No URLs will be polled as dynamic configuration sources.
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..295218b
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>groupId</groupId>
+    <artifactId>HangZhouMes</artifactId>
+    <version>1.0-SNAPSHOT</version>
+
+    
+</project>
\ No newline at end of file
diff --git a/replay_pid4772.log b/replay_pid4772.log
new file mode 100644
index 0000000..f10cc0a
--- /dev/null
+++ b/replay_pid4772.log
@@ -0,0 +1,6194 @@
+JvmtiExport can_access_local_variables 0
+JvmtiExport can_hotswap_or_post_breakpoint 0
+JvmtiExport can_post_on_exceptions 0
+# 123 ciObject found
+ciMethod java/lang/String length ()I 4097 1 35335 0 -1
+ciMethod java/lang/String charAt (I)C 4097 1 251445 0 -1
+ciMethod java/util/Locale getCountry ()Ljava/lang/String; 2049 1 256 0 -1
+ciMethod sun/util/locale/BaseLocale getRegion ()Ljava/lang/String; 1025 1 128 0 -1
+ciMethod sun/util/locale/provider/LocaleProviderAdapter getResourceBundleBased ()Lsun/util/locale/provider/LocaleProviderAdapter; 0 0 1 0 -1
+ciMethod sun/util/locale/provider/LocaleProviderAdapter getAdapter (Ljava/lang/Class;Ljava/util/Locale;)Lsun/util/locale/provider/LocaleProviderAdapter; 2497 1 312 0 -1
+ciMethod sun/util/locale/provider/LocaleProviderAdapter getLocaleResources (Ljava/util/Locale;)Lsun/util/locale/provider/LocaleResources; 0 0 1 0 -1
+ciMethod sun/util/locale/provider/LocaleResources getDecimalFormatSymbolsData ()[Ljava/lang/Object; 3121 1 390 0 -1
+ciMethod java/text/DecimalFormatSymbols initialize (Ljava/util/Locale;)V 3121 1 389 0 -1
+ciMethod java/util/Currency getInstance (Ljava/lang/String;)Ljava/util/Currency; 81 1 10 0 -1
+ciMethod java/util/Currency getInstance (Ljava/lang/String;II)Ljava/util/Currency; 3121 1 390 0 -1
+ciMethod java/util/Currency getInstance (Ljava/util/Locale;)Ljava/util/Currency; 3041 1 380 0 -1
+ciMethod java/util/Currency getCurrencyCode ()Ljava/lang/String; 1033 1 129 0 -1
+ciMethod java/util/Currency getSymbol (Ljava/util/Locale;)Ljava/lang/String; 17 1 2 0 -1
+instanceKlass com/github/yulichang/method/MPJBaseMethod$$Lambda$471
+instanceKlass com/github/yulichang/method/MPJBaseMethod$$Lambda$470
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass com/github/yulichang/method/MPJBaseMethod$$Lambda$469
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass com/baomidou/mybatisplus/core/metadata/TableInfo$$Lambda$468
+instanceKlass com/baomidou/mybatisplus/core/metadata/TableInfo$$Lambda$467
+instanceKlass com/baomidou/mybatisplus/core/metadata/TableInfo$$Lambda$466
+instanceKlass com/baomidou/mybatisplus/annotation/KeySequence
+instanceKlass com/github/yulichang/annotation/DynamicTableName
+instanceKlass com/github/yulichang/interfaces/MPJBaseJoin
+instanceKlass com/baomidou/mybatisplus/core/metadata/TableInfo$$Lambda$465
+instanceKlass com/baomidou/mybatisplus/core/metadata/TableInfo$$Lambda$464
+instanceKlass com/baomidou/mybatisplus/core/metadata/TableInfo$$Lambda$463
+instanceKlass com/baomidou/mybatisplus/core/metadata/TableInfo$$Lambda$462
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass com/baomidou/mybatisplus/core/metadata/TableInfo$$Lambda$461
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/apache/ibatis/scripting/xmltags/ChooseSqlNode
+instanceKlass org/apache/ibatis/scripting/xmltags/TrimSqlNode
+instanceKlass org/apache/ibatis/executor/keygen/Jdbc3KeyGenerator
+instanceKlass com/baomidou/mybatisplus/core/metadata/TableInfo$$Lambda$460
+instanceKlass com/baomidou/mybatisplus/core/metadata/TableInfo$$Lambda$459
+instanceKlass com/baomidou/mybatisplus/core/toolkit/sql/SqlScriptUtils
+instanceKlass java/util/stream/Collectors$$Lambda$458
+instanceKlass java/util/stream/Collectors$$Lambda$457
+instanceKlass java/util/stream/Collectors$$Lambda$456
+instanceKlass java/util/stream/Collectors$$Lambda$455
+instanceKlass com/baomidou/mybatisplus/core/metadata/TableInfo$$Lambda$454
+instanceKlass com/baomidou/mybatisplus/core/metadata/TableInfo$$Lambda$453
+instanceKlass com/baomidou/mybatisplus/core/injector/AbstractSqlInjector$$Lambda$452
+instanceKlass com/baomidou/mybatisplus/core/toolkit/LambdaUtils$$Lambda$451
+instanceKlass com/baomidou/mybatisplus/core/toolkit/support/ColumnCache
+instanceKlass com/baomidou/mybatisplus/core/toolkit/LambdaUtils
+instanceKlass com/baomidou/mybatisplus/core/metadata/TableInfo$$Lambda$450
+instanceKlass com/baomidou/mybatisplus/annotation/Version
+instanceKlass com/baomidou/mybatisplus/annotation/TableLogic
+instanceKlass com/baomidou/mybatisplus/core/metadata/TableInfoHelper$$Lambda$449
+instanceKlass com/baomidou/mybatisplus/core/metadata/TableInfoHelper$$Lambda$448
+instanceKlass com/baomidou/mybatisplus/annotation/TableId
+instanceKlass com/baomidou/mybatisplus/annotation/TableField
+instanceKlass com/baomidou/mybatisplus/core/metadata/TableInfoHelper$$Lambda$447
+instanceKlass com/baomidou/mybatisplus/core/toolkit/ReflectionKit$$Lambda$446
+instanceKlass com/baomidou/mybatisplus/core/toolkit/ReflectionKit$$Lambda$445
+instanceKlass com/baomidou/mybatisplus/core/toolkit/ReflectionKit$$Lambda$444
+instanceKlass com/baomidou/mybatisplus/core/toolkit/ReflectionKit$$Lambda$443
+instanceKlass com/baomidou/mybatisplus/core/toolkit/ReflectionKit$$Lambda$442
+instanceKlass com/baomidou/mybatisplus/core/toolkit/ReflectionKit$$Lambda$441
+instanceKlass java/util/function/Function$$Lambda$440
+instanceKlass com/baomidou/mybatisplus/core/toolkit/ReflectionKit$$Lambda$439
+instanceKlass com/baomidou/mybatisplus/core/toolkit/ReflectionKit$$Lambda$438
+instanceKlass com/baomidou/mybatisplus/core/toolkit/StringUtils
+instanceKlass com/baomidou/mybatisplus/annotation/TableName
+instanceKlass com/baomidou/mybatisplus/core/metadata/TableInfoHelper
+instanceKlass com/github/yulichang/method/mp/TableAlias
+instanceKlass com/github/yulichang/method/MPJBaseMethod
+instanceKlass com/baomidou/mybatisplus/core/toolkit/ArrayUtils
+instanceKlass com/mes/pp/entity/FlowCard
+instanceKlass com/github/yulichang/toolkit/reflect/SpringReflectionHelper
+instanceKlass com/github/yulichang/toolkit/reflect/GenericTypeUtils
+instanceKlass com/baomidou/mybatisplus/core/toolkit/ClassUtils
+instanceKlass com/mes/pp/entity/dto/FlowCardDTO
+instanceKlass org/apache/ibatis/builder/StaticSqlSource
+instanceKlass org/apache/ibatis/mapping/ParameterMapping
+instanceKlass org/apache/ibatis/mapping/ParameterMapping$Builder
+instanceKlass org/apache/ibatis/reflection/wrapper/BaseWrapper
+instanceKlass org/apache/ibatis/reflection/wrapper/ObjectWrapper
+instanceKlass org/apache/ibatis/scripting/xmltags/MixedSqlNode$$Lambda$437
+instanceKlass java/util/StringJoiner
+instanceKlass org/apache/ibatis/ognl/OgnlRuntime$ArgsCompatbilityReport
+instanceKlass org/apache/ibatis/ognl/ObjectMethodAccessor
+instanceKlass org/apache/ibatis/ognl/MethodAccessor
+instanceKlass org/apache/ibatis/ognl/ObjectNullHandler
+instanceKlass org/apache/ibatis/ognl/NullHandler
+instanceKlass org/apache/ibatis/ognl/NumberElementsAccessor
+instanceKlass org/apache/ibatis/ognl/NumericTypes
+instanceKlass org/apache/ibatis/ognl/EnumerationElementsAccessor
+instanceKlass org/apache/ibatis/ognl/IteratorElementsAccessor
+instanceKlass org/apache/ibatis/ognl/MapElementsAccessor
+instanceKlass org/apache/ibatis/ognl/CollectionElementsAccessor
+instanceKlass org/apache/ibatis/ognl/ObjectElementsAccessor
+instanceKlass org/apache/ibatis/ognl/ArrayElementsAccessor
+instanceKlass org/apache/ibatis/ognl/ElementsAccessor
+instanceKlass org/apache/ibatis/ognl/MapPropertyAccessor
+instanceKlass org/apache/ibatis/ognl/ObjectPropertyAccessor
+instanceKlass java/math/MathContext
+instanceKlass org/apache/ibatis/ognl/enhance/ExpressionCompiler
+instanceKlass org/apache/ibatis/ognl/enhance/OgnlExpressionCompiler
+instanceKlass org/apache/ibatis/javassist/ClassPool
+instanceKlass org/apache/ibatis/ognl/OgnlRuntime$ClassPropertyMethodCache
+instanceKlass org/apache/ibatis/ognl/ObjectArrayPool
+instanceKlass org/apache/ibatis/ognl/EvaluationPool
+instanceKlass org/apache/ibatis/ognl/internal/Entry
+instanceKlass org/apache/ibatis/ognl/internal/ClassCacheImpl
+instanceKlass org/apache/ibatis/ognl/internal/ClassCache
+instanceKlass java/io/Console
+instanceKlass org/apache/ibatis/ognl/AccessibleObjectHandlerPreJDK9
+instanceKlass org/apache/ibatis/ognl/AccessibleObjectHandler
+instanceKlass org/apache/ibatis/ognl/OgnlRuntime
+instanceKlass org/apache/ibatis/scripting/xmltags/DynamicContext$ContextAccessor
+instanceKlass org/apache/ibatis/ognl/PropertyAccessor
+instanceKlass org/apache/ibatis/scripting/xmltags/DynamicContext
+instanceKlass org/apache/ibatis/scripting/defaults/RawSqlSource
+instanceKlass org/apache/ibatis/scripting/xmltags/IfSqlNode
+instanceKlass com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean$$Lambda$436
+instanceKlass com/baomidou/mybatisplus/core/toolkit/CollectionUtils
+instanceKlass com/baomidou/mybatisplus/core/toolkit/GlobalConfigUtils$$Lambda$435
+instanceKlass com/baomidou/mybatisplus/annotation/SqlParser
+instanceKlass com/baomidou/mybatisplus/core/parser/SqlParserHelper
+instanceKlass com/baomidou/mybatisplus/core/MybatisMapperAnnotationBuilder$$Lambda$434
+instanceKlass org/apache/ibatis/annotations/InsertProvider$List
+instanceKlass org/apache/ibatis/annotations/Delete$List
+instanceKlass org/apache/ibatis/annotations/UpdateProvider$List
+instanceKlass org/apache/ibatis/annotations/DeleteProvider$List
+instanceKlass org/apache/ibatis/annotations/Insert$List
+instanceKlass org/apache/ibatis/annotations/Lang
+instanceKlass org/apache/ibatis/annotations/SelectProvider$List
+instanceKlass sun/reflect/annotation/AnnotationSupport
+instanceKlass java/util/stream/Collectors$$Lambda$433
+instanceKlass java/util/stream/Collectors$$Lambda$432
+instanceKlass com/baomidou/mybatisplus/core/MybatisMapperAnnotationBuilder$$Lambda$431
+instanceKlass com/baomidou/mybatisplus/core/MybatisMapperAnnotationBuilder$$Lambda$430
+instanceKlass com/baomidou/mybatisplus/core/MybatisMapperAnnotationBuilder$$Lambda$429
+instanceKlass com/baomidou/mybatisplus/core/MybatisMapperAnnotationBuilder$$Lambda$428
+instanceKlass com/baomidou/mybatisplus/core/MybatisMapperAnnotationBuilder$AnnotationWrapper
+instanceKlass com/baomidou/mybatisplus/core/MybatisMapperAnnotationBuilder$$Lambda$427
+instanceKlass com/baomidou/mybatisplus/annotation/InterceptorIgnore
+instanceKlass com/baomidou/mybatisplus/core/plugins/InterceptorIgnoreHelper
+instanceKlass org/apache/ibatis/annotations/CacheNamespaceRef
+instanceKlass org/apache/ibatis/annotations/CacheNamespace
+instanceKlass org/apache/ibatis/annotations/DeleteProvider
+instanceKlass org/apache/ibatis/annotations/InsertProvider
+instanceKlass org/apache/ibatis/annotations/UpdateProvider
+instanceKlass org/apache/ibatis/annotations/SelectProvider
+instanceKlass org/apache/ibatis/annotations/Delete
+instanceKlass org/apache/ibatis/annotations/Insert
+instanceKlass org/apache/ibatis/builder/annotation/MapperAnnotationBuilder
+instanceKlass com/baomidou/mybatisplus/core/override/MybatisMapperProxyFactory
+instanceKlass com/baomidou/mybatisplus/core/MybatisConfiguration$StrictMap$Ambiguity
+instanceKlass org/apache/ibatis/mapping/ParameterMap
+instanceKlass org/apache/ibatis/mapping/ParameterMap$Builder
+instanceKlass org/apache/ibatis/mapping/MappedStatement$Builder
+instanceKlass org/apache/ibatis/scripting/xmltags/DynamicSqlSource
+instanceKlass org/apache/ibatis/mapping/SqlSource
+instanceKlass org/apache/ibatis/scripting/xmltags/ExpressionEvaluator
+instanceKlass org/apache/ibatis/scripting/xmltags/ForEachSqlNode
+instanceKlass org/apache/ibatis/scripting/xmltags/MixedSqlNode
+instanceKlass org/apache/ibatis/scripting/xmltags/StaticTextSqlNode
+instanceKlass org/apache/ibatis/scripting/xmltags/TextSqlNode$DynamicCheckerTokenParser
+instanceKlass org/apache/ibatis/scripting/xmltags/TextSqlNode
+instanceKlass org/apache/ibatis/scripting/xmltags/SqlNode
+instanceKlass org/apache/ibatis/scripting/xmltags/XMLScriptBuilder$BindHandler
+instanceKlass org/apache/ibatis/scripting/xmltags/XMLScriptBuilder$OtherwiseHandler
+instanceKlass org/apache/ibatis/scripting/xmltags/XMLScriptBuilder$ChooseHandler
+instanceKlass org/apache/ibatis/scripting/xmltags/XMLScriptBuilder$IfHandler
+instanceKlass org/apache/ibatis/scripting/xmltags/XMLScriptBuilder$ForEachHandler
+instanceKlass org/apache/ibatis/scripting/xmltags/XMLScriptBuilder$SetHandler
+instanceKlass org/apache/ibatis/scripting/xmltags/XMLScriptBuilder$WhereHandler
+instanceKlass org/apache/ibatis/scripting/xmltags/XMLScriptBuilder$TrimHandler
+instanceKlass org/apache/ibatis/scripting/xmltags/XMLScriptBuilder$NodeHandler
+instanceKlass org/apache/ibatis/executor/keygen/NoKeyGenerator
+instanceKlass org/apache/ibatis/executor/keygen/KeyGenerator
+instanceKlass org/apache/ibatis/builder/xml/XMLIncludeTransformer$$Lambda$426
+instanceKlass org/apache/ibatis/builder/xml/XMLIncludeTransformer
+instanceKlass com/sun/org/apache/xpath/internal/XPathVisitor
+instanceKlass org/apache/ibatis/mapping/ResultMap$Builder
+instanceKlass org/apache/ibatis/builder/ResultMapResolver
+instanceKlass org/apache/ibatis/reflection/property/PropertyTokenizer
+instanceKlass org/apache/ibatis/reflection/Reflector$$Lambda$425
+instanceKlass org/apache/ibatis/reflection/Reflector$$Lambda$424
+instanceKlass org/apache/ibatis/reflection/TypeParameterResolver
+instanceKlass org/apache/ibatis/reflection/invoker/MethodInvoker
+instanceKlass org/apache/ibatis/reflection/invoker/Invoker
+instanceKlass org/apache/ibatis/reflection/Reflector$$Lambda$423
+instanceKlass org/apache/ibatis/reflection/property/PropertyNamer
+instanceKlass org/apache/ibatis/reflection/Reflector$$Lambda$422
+instanceKlass org/apache/ibatis/reflection/Reflector$$Lambda$421
+instanceKlass org/apache/ibatis/reflection/Reflector$$Lambda$420
+instanceKlass org/apache/ibatis/reflection/Reflector$$Lambda$419
+instanceKlass org/apache/ibatis/reflection/DefaultReflectorFactory$$Lambda$418
+instanceKlass org/apache/ibatis/reflection/Reflector
+instanceKlass org/apache/ibatis/reflection/MetaClass
+instanceKlass org/apache/ibatis/builder/xml/XMLMapperBuilder$$Lambda$417
+instanceKlass com/mes/bigstoragecagetask/entity/BigStorageCageTask
+instanceKlass com/sun/org/apache/xpath/internal/axes/NodeSequence$IteratorCache
+instanceKlass com/sun/org/apache/xml/internal/dtm/ref/DTMNodeListBase
+instanceKlass com/sun/org/apache/xml/internal/utils/XMLCharacterRecognizer
+instanceKlass com/sun/org/apache/xerces/internal/dom/CharacterDataImpl$1
+instanceKlass org/apache/ibatis/parsing/GenericTokenParser
+instanceKlass org/apache/ibatis/parsing/PropertyParser$VariableTokenHandler
+instanceKlass org/apache/ibatis/parsing/TokenHandler
+instanceKlass org/apache/ibatis/parsing/PropertyParser
+instanceKlass org/apache/ibatis/parsing/XNode
+instanceKlass com/sun/org/apache/xerces/internal/dom/NamedNodeMapImpl
+instanceKlass org/w3c/dom/NamedNodeMap
+instanceKlass com/sun/org/apache/xml/internal/dtm/ref/DTMNodeIterator
+instanceKlass org/w3c/dom/traversal/NodeIterator
+instanceKlass com/sun/org/apache/xml/internal/dtm/DTMAxisTraverser
+instanceKlass com/sun/org/apache/xml/internal/dtm/Axis
+instanceKlass com/sun/org/apache/xpath/internal/objects/Comparator
+instanceKlass com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTMdefaultNamespaceDeclarationNode
+instanceKlass com/sun/org/apache/xml/internal/utils/NSInfo
+instanceKlass com/sun/org/apache/xml/internal/utils/DOMHelper
+instanceKlass org/xml/sax/helpers/LocatorImpl
+instanceKlass com/sun/org/apache/xml/internal/utils/TreeWalker
+instanceKlass com/sun/org/apache/xml/internal/utils/SuballocatedIntVector
+instanceKlass com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBase
+instanceKlass com/sun/org/apache/xml/internal/dtm/ref/DTMNodeProxy
+instanceKlass org/w3c/dom/DocumentFragment
+instanceKlass org/w3c/dom/Comment
+instanceKlass org/w3c/dom/ProcessingInstruction
+instanceKlass org/w3c/dom/Attr
+instanceKlass org/w3c/dom/Text
+instanceKlass org/w3c/dom/CharacterData
+instanceKlass com/sun/org/apache/xml/internal/dtm/ref/ExpandedNameTable$HashEntry
+instanceKlass com/sun/org/apache/xml/internal/dtm/ref/ExtendedType
+instanceKlass com/sun/org/apache/xml/internal/dtm/ref/ExpandedNameTable
+instanceKlass com/sun/org/apache/xml/internal/dtm/DTM
+instanceKlass com/sun/org/apache/xml/internal/utils/XMLStringFactory
+instanceKlass com/sun/org/apache/xpath/internal/XPathContext$XPathExpressionContext
+instanceKlass com/sun/org/apache/xalan/internal/extensions/ExpressionContext
+instanceKlass com/sun/org/apache/xml/internal/utils/NodeVector
+instanceKlass com/sun/org/apache/xpath/internal/SourceTreeManager
+instanceKlass com/sun/org/apache/xpath/internal/VariableStack
+instanceKlass com/sun/org/apache/xml/internal/utils/IntVector
+instanceKlass com/sun/org/apache/xml/internal/dtm/DTMManager
+instanceKlass com/sun/org/apache/xpath/internal/axes/IteratorPool
+instanceKlass com/sun/org/apache/xpath/internal/axes/SubContextList
+instanceKlass com/sun/org/apache/xpath/internal/axes/PathComponent
+instanceKlass com/sun/org/apache/xml/internal/dtm/DTMIterator
+instanceKlass com/sun/org/apache/xpath/internal/axes/WalkerFactory
+instanceKlass com/sun/org/apache/xpath/internal/compiler/OpMapVector
+instanceKlass com/sun/org/apache/xpath/internal/compiler/Lexer
+instanceKlass com/sun/org/apache/xml/internal/utils/ObjectVector
+instanceKlass com/sun/org/apache/xpath/internal/compiler/OpMap
+instanceKlass com/sun/org/apache/xpath/internal/compiler/XPathParser
+instanceKlass com/sun/org/apache/xml/internal/utils/DefaultErrorHandler
+instanceKlass com/sun/org/apache/xpath/internal/Expression
+instanceKlass com/sun/org/apache/xpath/internal/XPathVisitable
+instanceKlass com/sun/org/apache/xpath/internal/ExpressionNode
+instanceKlass javax/xml/transform/SourceLocator
+instanceKlass com/sun/org/apache/xpath/internal/compiler/FunctionTable
+instanceKlass com/sun/org/apache/xpath/internal/XPath
+instanceKlass com/sun/org/apache/xpath/internal/ExpressionOwner
+instanceKlass javax/xml/namespace/QName$1
+instanceKlass javax/xml/namespace/QName
+instanceKlass javax/xml/xpath/XPathConstants
+instanceKlass org/apache/ibatis/executor/ErrorContext$$Lambda$416
+instanceKlass org/apache/ibatis/executor/ErrorContext
+instanceKlass com/sun/org/apache/xerces/internal/impl/dtd/models/MixedContentModel
+instanceKlass com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammar$ChildrenList
+instanceKlass com/sun/org/apache/xerces/internal/impl/dtd/models/CMStateSet
+instanceKlass com/sun/org/apache/xerces/internal/impl/dtd/models/DFAContentModel
+instanceKlass com/sun/org/apache/xerces/internal/impl/dtd/models/CMNode
+instanceKlass com/sun/xml/internal/stream/StaxXMLInputSource
+instanceKlass com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl$DTDDriver
+instanceKlass com/sun/org/apache/xerces/internal/impl/dtd/XMLContentSpec
+instanceKlass com/sun/org/apache/xerces/internal/impl/dtd/models/ContentModelValidator
+instanceKlass com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammar
+instanceKlass com/sun/org/apache/xerces/internal/xni/grammars/Grammar
+instanceKlass com/sun/org/apache/xerces/internal/impl/validation/EntityState
+instanceKlass com/sun/org/apache/xerces/internal/util/URI
+instanceKlass com/sun/org/apache/xerces/internal/dom/DeferredDocumentImpl$RefCount
+instanceKlass com/sun/org/apache/xerces/internal/dom/NodeListCache
+instanceKlass org/w3c/dom/TypeInfo
+instanceKlass org/w3c/dom/Element
+instanceKlass org/w3c/dom/DocumentType
+instanceKlass com/sun/org/apache/xerces/internal/dom/NodeImpl
+instanceKlass org/w3c/dom/events/EventTarget
+instanceKlass org/w3c/dom/NodeList
+instanceKlass org/w3c/dom/Document
+instanceKlass org/w3c/dom/ranges/DocumentRange
+instanceKlass org/w3c/dom/events/DocumentEvent
+instanceKlass org/w3c/dom/traversal/DocumentTraversal
+instanceKlass com/sun/org/apache/xerces/internal/dom/DeferredNode
+instanceKlass org/w3c/dom/Node
+instanceKlass org/apache/ibatis/parsing/XPathParser$1
+instanceKlass com/sun/org/apache/xerces/internal/util/EntityResolverWrapper
+instanceKlass javax/xml/parsers/DocumentBuilder
+instanceKlass com/sun/org/apache/xpath/internal/jaxp/XPathImpl
+instanceKlass javax/xml/xpath/XPath
+instanceKlass javax/xml/xpath/SecuritySupport$5
+instanceKlass javax/xml/xpath/XPathFactoryFinder$2
+instanceKlass javax/xml/xpath/SecuritySupport$8
+instanceKlass javax/xml/xpath/SecuritySupport$2
+instanceKlass javax/xml/xpath/XPathFactoryFinder
+instanceKlass javax/xml/xpath/SecuritySupport$1
+instanceKlass javax/xml/xpath/SecuritySupport
+instanceKlass javax/xml/xpath/XPathFactory
+instanceKlass org/apache/ibatis/builder/xml/XMLMapperEntityResolver
+instanceKlass org/apache/ibatis/parsing/XPathParser
+instanceKlass org/mybatis/spring/transaction/SpringManagedTransactionFactory
+instanceKlass org/apache/ibatis/mapping/Environment
+instanceKlass com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean$$Lambda$415
+instanceKlass com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean$$Lambda$414
+instanceKlass com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean$$Lambda$413
+instanceKlass com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean$$Lambda$412
+instanceKlass com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean$$Lambda$411
+instanceKlass com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean$$Lambda$410
+instanceKlass com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean$$Lambda$409
+instanceKlass com/baomidou/mybatisplus/core/toolkit/Assert
+instanceKlass com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean$$Lambda$408
+instanceKlass com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean$$Lambda$407
+instanceKlass com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration$$Lambda$406
+instanceKlass com/baomidou/mybatisplus/core/incrementer/IdentifierGenerator
+instanceKlass org/apache/ibatis/builder/BaseBuilder
+instanceKlass com/baomidou/mybatisplus/core/injector/AbstractMethod
+instanceKlass com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration$$Lambda$405
+instanceKlass com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration$$Lambda$404
+instanceKlass com/baomidou/mybatisplus/core/handlers/StrictFill
+instanceKlass com/baomidou/mybatisplus/core/metadata/TableFieldInfo
+instanceKlass org/apache/ibatis/reflection/MetaObject
+instanceKlass com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration$$Lambda$403
+instanceKlass com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration$$Lambda$402
+instanceKlass com/baomidou/mybatisplus/autoconfigure/MybatisPlusProperties$$Lambda$401
+instanceKlass com/baomidou/mybatisplus/autoconfigure/MybatisPlusProperties$$Lambda$400
+instanceKlass com/baomidou/mybatisplus/core/MybatisConfiguration$$Lambda$399
+instanceKlass org/apache/ibatis/scripting/LanguageDriverRegistry$$Lambda$398
+instanceKlass org/apache/ibatis/executor/loader/cglib/CglibProxyFactory
+instanceKlass org/apache/ibatis/logging/nologging/NoLoggingImpl
+instanceKlass org/apache/ibatis/logging/stdout/StdOutImpl
+instanceKlass org/apache/ibatis/logging/jdk14/Jdk14LoggingImpl
+instanceKlass org/apache/ibatis/logging/log4j2/Log4j2Impl
+instanceKlass org/apache/ibatis/logging/log4j/Log4jImpl
+instanceKlass org/apache/ibatis/logging/commons/JakartaCommonsLoggingImpl
+instanceKlass org/apache/ibatis/scripting/xmltags/XMLLanguageDriver
+instanceKlass org/apache/ibatis/mapping/VendorDatabaseIdProvider
+instanceKlass org/apache/ibatis/cache/decorators/WeakCache
+instanceKlass org/apache/ibatis/cache/decorators/SoftCache
+instanceKlass org/apache/ibatis/cache/decorators/LruCache
+instanceKlass org/apache/ibatis/cache/decorators/FifoCache
+instanceKlass org/apache/ibatis/cache/impl/PerpetualCache
+instanceKlass org/apache/ibatis/cache/Cache
+instanceKlass org/apache/ibatis/datasource/unpooled/UnpooledDataSourceFactory
+instanceKlass org/apache/ibatis/datasource/jndi/JndiDataSourceFactory
+instanceKlass org/apache/ibatis/datasource/DataSourceFactory
+instanceKlass org/apache/ibatis/transaction/managed/ManagedTransactionFactory
+instanceKlass org/apache/ibatis/transaction/jdbc/JdbcTransactionFactory
+instanceKlass org/apache/ibatis/transaction/TransactionFactory
+instanceKlass org/apache/ibatis/session/Configuration$$Lambda$397
+instanceKlass org/apache/ibatis/scripting/LanguageDriverRegistry
+instanceKlass org/apache/ibatis/type/TypeAliasRegistry
+instanceKlass org/apache/ibatis/type/MappedJdbcTypes
+instanceKlass org/apache/ibatis/type/UnknownTypeHandler$$Lambda$396
+instanceKlass org/apache/ibatis/type/TypeReference
+instanceKlass org/apache/ibatis/type/TypeHandlerRegistry
+instanceKlass org/apache/ibatis/plugin/InterceptorChain
+instanceKlass org/apache/ibatis/binding/MapperRegistry
+instanceKlass org/apache/ibatis/javassist/util/proxy/ProxyFactory$3
+instanceKlass org/apache/ibatis/javassist/util/proxy/ProxyFactory$2
+instanceKlass org/apache/ibatis/javassist/util/proxy/ProxyFactory$UniqueName
+instanceKlass org/apache/ibatis/javassist/util/proxy/ProxyFactory$1
+instanceKlass org/apache/ibatis/javassist/util/proxy/ProxyFactory$ClassLoaderProvider
+instanceKlass org/apache/ibatis/javassist/util/proxy/MethodHandler
+instanceKlass org/apache/ibatis/javassist/util/proxy/ProxyFactory
+instanceKlass org/apache/ibatis/io/ClassLoaderWrapper
+instanceKlass org/apache/ibatis/io/Resources
+instanceKlass org/apache/ibatis/executor/loader/javassist/JavassistProxyFactory
+instanceKlass org/apache/ibatis/executor/loader/ProxyFactory
+instanceKlass org/apache/ibatis/reflection/wrapper/DefaultObjectWrapperFactory
+instanceKlass org/apache/ibatis/reflection/wrapper/ObjectWrapperFactory
+instanceKlass org/apache/ibatis/reflection/factory/DefaultObjectFactory
+instanceKlass org/apache/ibatis/reflection/factory/ObjectFactory
+instanceKlass org/apache/ibatis/reflection/DefaultReflectorFactory
+instanceKlass org/apache/ibatis/reflection/ReflectorFactory
+instanceKlass org/apache/ibatis/io/VFS
+instanceKlass org/springframework/jdbc/datasource/DelegatingDataSource
+instanceKlass org/springframework/jdbc/config/SortedResourcesFactoryBean$$Lambda$395
+instanceKlass org/springframework/beans/factory/config/AbstractFactoryBean
+instanceKlass org/springframework/boot/autoconfigure/jdbc/DataSourceInitializer
+instanceKlass com/baomidou/dynamic/datasource/ds/GroupDataSource
+instanceKlass com/alibaba/druid/stat/DruidStatManagerFacade
+instanceKlass com/alibaba/druid/stat/DruidStatService
+instanceKlass com/alibaba/druid/stat/DruidStatServiceMBean
+instanceKlass com/alibaba/druid/stat/DruidDataSourceStatManager
+instanceKlass com/alibaba/druid/stat/DruidDataSourceStatManagerMBean
+instanceKlass com/alibaba/druid/pool/DruidDataSource$1
+instanceKlass com/mysql/cj/jdbc/JdbcPreparedStatement
+instanceKlass com/mysql/cj/jdbc/ClientInfoProvider
+instanceKlass com/mysql/cj/exceptions/ExceptionInterceptor
+instanceKlass com/mysql/cj/jdbc/JdbcStatement
+instanceKlass com/mysql/cj/Query
+instanceKlass com/mysql/cj/jdbc/JdbcPropertySet
+instanceKlass com/mysql/cj/conf/PropertySet
+instanceKlass com/mysql/cj/ServerVersion
+instanceKlass com/mysql/cj/jdbc/result/ResultSetInternalMethods
+instanceKlass com/mysql/cj/protocol/Resultset
+instanceKlass com/mysql/cj/protocol/ResultsetRowsOwner
+instanceKlass java/sql/ResultSet
+instanceKlass com/mysql/cj/jdbc/result/CachedResultSetMetaData
+instanceKlass com/mysql/cj/protocol/ColumnDefinition
+instanceKlass com/mysql/cj/protocol/ProtocolEntity
+instanceKlass java/sql/Savepoint
+instanceKlass java/sql/CallableStatement
+instanceKlass java/sql/PreparedStatement
+instanceKlass java/sql/Struct
+instanceKlass java/sql/SQLXML
+instanceKlass java/sql/NClob
+instanceKlass java/sql/Clob
+instanceKlass java/sql/Blob
+instanceKlass java/sql/Array
+instanceKlass java/sql/Statement
+instanceKlass com/mysql/cj/CoreSession
+instanceKlass com/mysql/cj/Session
+instanceKlass java/sql/DatabaseMetaData
+instanceKlass com/mysql/cj/conf/HostInfo
+instanceKlass com/mysql/cj/conf/DatabaseUrlContainer
+instanceKlass com/mysql/cj/log/StandardLogger
+instanceKlass com/mysql/cj/log/Log
+instanceKlass com/mysql/cj/jdbc/ConnectionImpl
+instanceKlass com/mysql/cj/Session$SessionEventListener
+instanceKlass com/mysql/cj/jdbc/JdbcConnection
+instanceKlass com/mysql/cj/TransactionEventHandler
+instanceKlass com/mysql/cj/MysqlConnection
+instanceKlass com/alibaba/druid/pool/ValidConnectionCheckerAdapter
+instanceKlass com/alibaba/druid/pool/vendor/MySqlExceptionSorter
+instanceKlass com/mysql/cj/jdbc/AbandonedConnectionCleanupThread$$Lambda$394
+instanceKlass com/mysql/cj/jdbc/AbandonedConnectionCleanupThread
+instanceKlass com/mysql/cj/jdbc/NonRegisteringDriver
+instanceKlass com/alibaba/druid/mock/MockDriver
+instanceKlass com/alibaba/druid/mock/MockDriverMBean
+instanceKlass com/alibaba/druid/wall/WallDenyStat
+instanceKlass com/alibaba/druid/wall/WallProvider
+instanceKlass java/sql/DriverInfo
+instanceKlass com/microsoft/sqlserver/jdbc/SQLServerDriverPropertyInfo
+instanceKlass com/microsoft/sqlserver/jdbc/SQLServerDriver
+instanceKlass sun/security/util/ManifestEntryVerifier$SunProviderHolder
+instanceKlass java/sql/DriverManager$2
+instanceKlass java/sql/DriverManager$1
+instanceKlass java/sql/DriverManager
+instanceKlass com/alibaba/druid/proxy/DruidDriver$1
+instanceKlass com/alibaba/druid/proxy/DruidDriver
+instanceKlass com/alibaba/druid/proxy/DruidDriverMBean
+instanceKlass com/alibaba/druid/util/JdbcUtils
+instanceKlass com/alibaba/druid/util/JdbcConstants
+instanceKlass com/alibaba/druid/filter/FilterManager
+instanceKlass com/alibaba/druid/wall/WallFilterMBean
+instanceKlass com/alibaba/druid/wall/WallConfig
+instanceKlass com/alibaba/druid/wall/WallConfigMBean
+instanceKlass com/baomidou/dynamic/datasource/spring/boot/autoconfigure/druid/DruidWallConfigUtil
+instanceKlass com/alibaba/druid/stat/JdbcStatementStat
+instanceKlass com/alibaba/druid/stat/JdbcStatementStatMBean
+instanceKlass com/alibaba/druid/stat/JdbcResultSetStat
+instanceKlass com/alibaba/druid/stat/JdbcResultSetStatMBean
+instanceKlass com/alibaba/druid/stat/JdbcConnectionStat
+instanceKlass com/alibaba/druid/stat/JdbcConnectionStatMBean
+instanceKlass com/alibaba/druid/stat/JdbcStatManager
+instanceKlass com/alibaba/druid/stat/JdbcStatManagerMBean
+instanceKlass com/alibaba/druid/filter/Filter
+instanceKlass com/alibaba/druid/filter/stat/StatFilterMBean
+instanceKlass com/alibaba/druid/util/StringUtils
+instanceKlass com/alibaba/druid/util/Utils
+instanceKlass com/alibaba/druid/pool/DruidDataSourceStatLoggerAdapter
+instanceKlass java/util/concurrent/atomic/AtomicLongArray
+instanceKlass org/springframework/jdbc/datasource/AbstractDataSource
+instanceKlass org/springframework/jdbc/datasource/lookup/DataSourceLookup
+instanceKlass com/alibaba/druid/stat/JdbcDataSourceStat
+instanceKlass com/alibaba/druid/stat/JdbcDataSourceStatMBean
+instanceKlass com/alibaba/druid/pool/DruidDataSource$DestroyTask
+instanceKlass com/alibaba/druid/pool/DruidConnectionHolder
+instanceKlass java/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater$1
+instanceKlass java/util/concurrent/atomic/AtomicLongFieldUpdater
+instanceKlass com/alibaba/druid/pool/DruidDataSourceStatLogger
+instanceKlass com/alibaba/druid/util/Histogram
+instanceKlass com/alibaba/druid/pool/ValidConnectionChecker
+instanceKlass java/sql/Driver
+instanceKlass com/alibaba/druid/pool/ExceptionSorter
+instanceKlass javax/security/auth/callback/NameCallback
+instanceKlass javax/security/auth/callback/PasswordCallback
+instanceKlass javax/security/auth/callback/Callback
+instanceKlass java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl$1
+instanceKlass java/util/concurrent/atomic/AtomicIntegerFieldUpdater
+instanceKlass com/alibaba/druid/support/logging/SLF4JImpl
+instanceKlass com/alibaba/druid/support/logging/Log
+instanceKlass com/alibaba/druid/support/logging/Resources
+instanceKlass com/alibaba/druid/support/logging/LogFactory
+instanceKlass com/baomidou/dynamic/datasource/provider/AbstractDataSourceProvider
+instanceKlass com/baomidou/mybatisplus/core/metadata/TableInfo
+instanceKlass com/baomidou/mybatisplus/core/toolkit/Constants
+instanceKlass com/baomidou/mybatisplus/core/toolkit/StringPool
+instanceKlass com/github/yulichang/interceptor/MPJInterceptor$Val
+instanceKlass com/github/yulichang/wrapper/interfaces/SelectWrapper
+instanceKlass org/apache/ibatis/mapping/ResultMapping$Builder
+instanceKlass com/github/yulichang/wrapper/segments/Select
+instanceKlass org/apache/ibatis/mapping/ResultMap
+instanceKlass com/github/yulichang/wrapper/resultmap/Label
+instanceKlass org/apache/ibatis/mapping/ResultMapping
+instanceKlass com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration$$Lambda$393
+instanceKlass com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration$$Lambda$392
+instanceKlass com/github/yulichang/config/ConfigProperties$$Lambda$391
+instanceKlass com/github/yulichang/adapter/v3431/Adapter3431
+instanceKlass com/github/yulichang/adapter/base/IAdapter
+instanceKlass com/github/yulichang/adapter/base/tookit/VersionUtils
+instanceKlass com/baomidou/mybatisplus/core/MybatisPlusVersion
+instanceKlass com/github/yulichang/adapter/AdapterHelper
+instanceKlass com/github/yulichang/config/ConfigProperties
+instanceKlass com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration$$Lambda$390
+instanceKlass com/github/yulichang/config/enums/IfExistsEnum$$Lambda$389
+instanceKlass com/github/yulichang/config/enums/IfExistsEnum$$Lambda$388
+instanceKlass com/github/yulichang/config/enums/IfExistsEnum$$Lambda$387
+instanceKlass org/apache/ibatis/plugin/Invocation
+instanceKlass net/sf/jsqlparser/statement/select/SelectItem
+instanceKlass net/sf/jsqlparser/parser/ASTNodeAccessImpl
+instanceKlass net/sf/jsqlparser/expression/Expression
+instanceKlass net/sf/jsqlparser/parser/ASTNodeAccess
+instanceKlass com/baomidou/mybatisplus/extension/plugins/inner/PaginationInnerInterceptor
+instanceKlass com/baomidou/mybatisplus/extension/plugins/inner/InnerInterceptor
+instanceKlass com/baomidou/mybatisplus/core/config/GlobalConfig$DbConfig
+instanceKlass java/util/concurrent/ConcurrentSkipListMap$Node
+instanceKlass java/util/concurrent/ConcurrentSkipListMap$Index
+instanceKlass com/baomidou/mybatisplus/core/toolkit/GlobalConfigUtils
+instanceKlass com/baomidou/mybatisplus/autoconfigure/ConfigurationCustomizer
+instanceKlass org/apache/ibatis/mapping/DatabaseIdProvider
+instanceKlass org/apache/ibatis/type/TypeHandler
+instanceKlass org/springframework/security/crypto/bcrypt/BCryptPasswordEncoder
+instanceKlass com/baomidou/mybatisplus/core/toolkit/ReflectionKit
+instanceKlass com/baomidou/mybatisplus/core/metadata/IPage
+instanceKlass com/baomidou/mybatisplus/core/conditions/query/Query
+instanceKlass com/baomidou/mybatisplus/extension/conditions/query/ChainQuery
+instanceKlass com/baomidou/mybatisplus/core/conditions/interfaces/Nested
+instanceKlass com/baomidou/mybatisplus/core/conditions/interfaces/Join
+instanceKlass com/baomidou/mybatisplus/core/conditions/interfaces/Func
+instanceKlass com/baomidou/mybatisplus/core/conditions/interfaces/Compare
+instanceKlass com/baomidou/mybatisplus/core/conditions/update/Update
+instanceKlass com/baomidou/mybatisplus/extension/conditions/update/ChainUpdate
+instanceKlass com/baomidou/mybatisplus/extension/conditions/ChainWrapper
+instanceKlass com/baomidou/mybatisplus/core/conditions/Wrapper
+instanceKlass com/baomidou/mybatisplus/core/conditions/ISqlSegment
+instanceKlass com/mes/entity/request/GeneralRequest
+instanceKlass com/mes/userinfo/entity/vo/SysUserVO
+instanceKlass com/mes/userinfo/entity/SysUser
+instanceKlass com/mes/userinfo/entity/SysUserRole
+instanceKlass com/mes/role/entity/SysRole
+instanceKlass org/springframework/security/core/userdetails/UserDetails
+instanceKlass java/lang/invoke/SerializedLambda
+instanceKlass org/springframework/boot/web/servlet/ServletContextInitializerBeans$FilterRegistrationBeanAdapter
+instanceKlass org/springframework/boot/web/servlet/ServletContextInitializerBeans$ServletRegistrationBeanAdapter
+instanceKlass org/springframework/boot/web/servlet/ServletContextInitializerBeans$RegistrationBeanAdapter
+instanceKlass org/springframework/boot/web/servlet/ServletContextInitializerBeans$$Lambda$386
+instanceKlass javax/servlet/FilterRegistration$Dynamic
+instanceKlass javax/servlet/FilterRegistration
+instanceKlass java/util/function/Function$$Lambda$385
+instanceKlass org/springframework/boot/autoconfigure/security/servlet/SecurityFilterAutoConfiguration$$Lambda$384
+instanceKlass org/springframework/boot/autoconfigure/security/servlet/SecurityFilterAutoConfiguration$$Lambda$383
+instanceKlass java/util/UUID$Holder
+instanceKlass org/springframework/web/context/support/ServletContextScope
+instanceKlass org/apache/catalina/loader/WebappClassLoaderBase$CombinedEnumeration
+instanceKlass java/util/Collections$EmptyEnumeration
+instanceKlass org/springframework/web/context/ContextLoader
+instanceKlass org/springframework/boot/web/servlet/server/AbstractServletWebServerFactory$$Lambda$382
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/apache/tomcat/InstanceManagerBindings
+instanceKlass org/apache/catalina/core/DefaultInstanceManager$AnnotationCacheEntry
+instanceKlass org/apache/catalina/core/DefaultInstanceManager
+instanceKlass org/apache/catalina/SessionIdGenerator
+instanceKlass org/apache/tomcat/util/modeler/Util
+instanceKlass org/apache/tomcat/util/buf/UriUtil
+instanceKlass org/apache/catalina/webresources/StandardRoot$1
+instanceKlass org/apache/catalina/webresources/StandardRoot$BaseLocation
+instanceKlass org/apache/tomcat/util/http/ConcurrentDateFormat
+instanceKlass org/apache/tomcat/util/http/FastHttpDateFormat
+instanceKlass javax/security/auth/message/config/RegistrationListener
+instanceKlass javax/servlet/annotation/ServletSecurity
+instanceKlass javax/annotation/security/RunAs
+instanceKlass org/apache/catalina/servlets/DefaultServlet$PrecompressedResource
+instanceKlass org/apache/catalina/servlets/DefaultServlet$SortManager$Order
+instanceKlass org/apache/catalina/servlets/DefaultServlet$SortManager
+instanceKlass org/apache/catalina/servlets/DefaultServlet$CompressionFormat
+instanceKlass org/apache/catalina/servlets/DefaultServlet$Range
+instanceKlass org/apache/catalina/servlets/DefaultServlet$SecureEntityResolver
+instanceKlass javax/xml/parsers/DocumentBuilderFactory
+instanceKlass javax/annotation/security/DeclareRoles
+instanceKlass javax/annotation/Resources
+instanceKlass org/apache/catalina/util/Introspection
+instanceKlass org/apache/catalina/startup/WebAnnotationSet
+instanceKlass java/lang/instrument/ClassFileTransformer
+instanceKlass org/apache/catalina/security/SecurityUtil
+instanceKlass org/apache/catalina/webresources/EmptyResource
+instanceKlass org/apache/tomcat/util/compat/JrePlatform
+instanceKlass org/apache/catalina/webresources/CachedResource
+instanceKlass org/apache/catalina/util/Extension
+instanceKlass org/apache/catalina/util/ManifestResource
+instanceKlass org/apache/catalina/util/ExtensionValidator
+instanceKlass org/apache/tomcat/util/http/CookieProcessorBase
+instanceKlass org/apache/catalina/WebResource
+instanceKlass org/apache/tomcat/util/http/RequestUtil
+instanceKlass org/apache/catalina/WebResourceSet
+instanceKlass org/apache/catalina/webresources/TomcatURLStreamHandlerFactory
+instanceKlass org/apache/catalina/webresources/Cache
+instanceKlass org/apache/catalina/core/ApplicationSessionCookieConfig
+instanceKlass javax/servlet/SessionCookieConfig
+instanceKlass org/apache/catalina/core/ApplicationContextFacade
+instanceKlass org/apache/catalina/core/ApplicationContext
+instanceKlass org/apache/catalina/util/ContextName
+instanceKlass org/apache/catalina/Cluster
+instanceKlass org/apache/catalina/AccessLog
+instanceKlass org/apache/tomcat/util/descriptor/web/ResourceBase
+instanceKlass org/apache/tomcat/util/descriptor/web/Injectable
+instanceKlass org/apache/catalina/core/NamingContextListener
+instanceKlass javax/servlet/descriptor/JspConfigDescriptor
+instanceKlass org/apache/tomcat/util/http/CookieProcessor
+instanceKlass javax/servlet/HttpConstraintElement
+instanceKlass org/apache/tomcat/InstanceManager
+instanceKlass org/apache/tomcat/util/descriptor/web/FilterDef
+instanceKlass org/apache/catalina/Authenticator
+instanceKlass org/apache/tomcat/util/descriptor/web/LoginConfig
+instanceKlass javax/management/NotificationFilter
+instanceKlass javax/management/NotificationListener
+instanceKlass org/apache/catalina/WebResourceRoot
+instanceKlass org/apache/tomcat/jni/PasswordCallback
+instanceKlass org/apache/tomcat/jni/BIOCallback
+instanceKlass org/apache/tomcat/jni/SSL
+instanceKlass org/apache/catalina/core/ContainerBase$StartChild
+instanceKlass org/apache/catalina/realm/X509SubjectDnRetriever
+instanceKlass org/apache/catalina/realm/X509UsernameRetriever
+instanceKlass org/apache/catalina/connector/Response
+instanceKlass org/apache/catalina/connector/Request
+instanceKlass org/ietf/jgss/GSSContext
+instanceKlass java/util/logging/LogRecord
+instanceKlass java/nio/channels/AsynchronousSocketChannel
+instanceKlass java/nio/channels/AsynchronousByteChannel
+instanceKlass java/nio/channels/AsynchronousServerSocketChannel
+instanceKlass java/nio/channels/NetworkChannel
+instanceKlass java/nio/channels/AsynchronousChannel
+instanceKlass org/apache/catalina/util/ServerInfo
+instanceKlass org/apache/catalina/connector/CoyoteAdapter
+instanceKlass org/apache/catalina/Executor
+instanceKlass org/apache/tomcat/util/buf/AbstractChunk
+instanceKlass org/apache/tomcat/util/buf/StringCache
+instanceKlass org/apache/tomcat/util/threads/ScheduledThreadPoolExecutor
+instanceKlass org/apache/tomcat/util/threads/TaskThreadFactory
+instanceKlass org/springframework/boot/web/embedded/tomcat/TomcatWebServer$$Lambda$381
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$380
+instanceKlass org/apache/tomcat/websocket/server/WsContextListener
+instanceKlass javax/servlet/ServletContextListener
+instanceKlass org/springframework/boot/web/embedded/tomcat/DisableReferenceClearingContextCustomizer
+instanceKlass org/springframework/boot/web/embedded/tomcat/TomcatServletWebServerFactory$DisablePersistSessionListener
+instanceKlass org/apache/tomcat/util/buf/UDecoder
+instanceKlass org/apache/tomcat/util/descriptor/web/ErrorPage
+instanceKlass org/springframework/boot/web/embedded/tomcat/TomcatErrorPage
+instanceKlass org/springframework/boot/web/embedded/tomcat/TomcatStarter
+instanceKlass org/apache/catalina/core/StandardHost$MemoryLeakTrackingListener
+instanceKlass org/springframework/boot/web/servlet/server/AbstractServletWebServerFactory$SessionConfiguringInitializer
+instanceKlass org/springframework/boot/web/servlet/server/AbstractServletWebServerFactory$$Lambda$379
+instanceKlass org/springframework/boot/web/embedded/tomcat/TomcatServletWebServerFactory$StaticResourceConfigurer
+instanceKlass org/apache/catalina/core/StandardWrapperFacade
+instanceKlass java/util/EventListenerProxy
+instanceKlass org/apache/tomcat/util/security/PermissionCheck
+instanceKlass org/apache/juli/WebappProperties
+instanceKlass org/apache/tomcat/InstrumentableClassLoader
+instanceKlass org/apache/catalina/Loader
+instanceKlass org/apache/tomcat/util/scan/StandardJarScanner
+instanceKlass org/apache/tomcat/JarScanner
+instanceKlass org/apache/tomcat/util/scan/StandardJarScanFilter
+instanceKlass org/apache/tomcat/JarScanFilter
+instanceKlass org/springframework/boot/web/embedded/tomcat/TomcatServletWebServerFactory$$Lambda$378
+instanceKlass org/apache/catalina/util/CharsetMapper
+instanceKlass org/apache/catalina/startup/Tomcat$FixContextListener
+instanceKlass org/apache/catalina/util/URLEncoder
+instanceKlass org/apache/catalina/Wrapper
+instanceKlass org/apache/catalina/core/StandardContext$ContextFilterMaps
+instanceKlass org/apache/catalina/util/ErrorPageSupport
+instanceKlass org/apache/tomcat/util/descriptor/web/XmlEncodingBase
+instanceKlass org/apache/tomcat/util/descriptor/web/ApplicationParameter
+instanceKlass org/apache/catalina/core/StandardContext$1
+instanceKlass org/apache/catalina/ThreadBindingListener
+instanceKlass org/apache/catalina/Globals
+instanceKlass org/apache/catalina/realm/RealmBase$AllRolesMode
+instanceKlass org/apache/catalina/realm/DigestCredentialHandlerBase
+instanceKlass org/apache/catalina/CredentialHandler
+instanceKlass org/apache/catalina/Realm
+instanceKlass org/apache/catalina/Pipeline
+instanceKlass org/apache/catalina/Contained
+instanceKlass org/apache/tomcat/util/threads/LimitLatch
+instanceKlass org/springframework/boot/web/embedded/tomcat/CompressionConnectorCustomizer
+instanceKlass org/apache/tomcat/util/net/SocketWrapperBase
+instanceKlass org/apache/tomcat/util/net/SSLImplementation
+instanceKlass org/apache/tomcat/util/buf/CharsetCache
+instanceKlass org/apache/tomcat/util/buf/B2CConverter
+instanceKlass org/apache/coyote/Processor
+instanceKlass org/apache/coyote/Adapter
+instanceKlass org/apache/coyote/Response
+instanceKlass org/apache/coyote/Request
+instanceKlass org/apache/tomcat/util/net/SSLHostConfig
+instanceKlass org/apache/catalina/ContainerListener
+instanceKlass org/apache/catalina/mapper/Mapper$MapElement
+instanceKlass org/apache/catalina/mapper/Mapper
+instanceKlass org/apache/tomcat/util/file/ConfigFileLoader
+instanceKlass org/apache/catalina/startup/CatalinaBaseConfigurationSource
+instanceKlass org/apache/tomcat/util/file/ConfigurationSource
+instanceKlass org/apache/tomcat/util/descriptor/web/NamingResources
+instanceKlass java/beans/PropertyChangeListener
+instanceKlass java/beans/ChangeListenerMap
+instanceKlass java/beans/PropertyChangeSupport
+instanceKlass org/apache/catalina/Service
+instanceKlass org/apache/catalina/Server
+instanceKlass org/apache/tomcat/util/collections/SynchronizedStack
+instanceKlass org/apache/coyote/AbstractProtocol$ConnectionHandler
+instanceKlass org/apache/tomcat/util/net/AbstractEndpoint$Handler
+instanceKlass org/apache/coyote/CompressionConfig
+instanceKlass org/apache/tomcat/util/net/NioSelectorPool
+instanceKlass org/apache/tomcat/util/net/SocketProperties
+instanceKlass org/apache/tomcat/util/net/AbstractEndpoint
+instanceKlass java/io/DeleteOnExitHook$1
+instanceKlass java/io/DeleteOnExitHook
+instanceKlass java/io/File$TempDirectory
+instanceKlass org/apache/tomcat/util/ExceptionUtils
+instanceKlass org/springframework/boot/web/servlet/context/ServletWebServerApplicationContext$$Lambda$377
+instanceKlass java/util/stream/SortedOps$RefSortingSink$$Lambda$376
+instanceKlass org/springframework/beans/factory/support/DefaultListableBeanFactory$$Lambda$375
+instanceKlass org/springframework/beans/factory/support/DefaultListableBeanFactory$$Lambda$374
+instanceKlass org/springframework/boot/autoconfigure/web/ResourceProperties$Cache$Cachecontrol
+instanceKlass org/springframework/boot/autoconfigure/web/ResourceProperties$Content
+instanceKlass org/springframework/boot/autoconfigure/web/ResourceProperties$Fixed
+instanceKlass org/springframework/boot/autoconfigure/web/ResourceProperties$Strategy
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration$StaticView
+instanceKlass javax/servlet/ServletRegistration$Dynamic
+instanceKlass javax/servlet/Registration$Dynamic
+instanceKlass org/springframework/web/servlet/FlashMapManager
+instanceKlass org/springframework/web/servlet/RequestToViewNameTranslator
+instanceKlass org/springframework/web/servlet/ThemeResolver
+instanceKlass org/springframework/web/context/request/AbstractRequestAttributes
+instanceKlass org/springframework/web/context/request/async/WebAsyncManager
+instanceKlass org/springframework/context/i18n/LocaleContext
+instanceKlass org/springframework/web/servlet/ModelAndView
+instanceKlass javax/servlet/http/HttpServletResponse
+instanceKlass org/springframework/web/servlet/HandlerExecutionChain
+instanceKlass javax/servlet/http/HttpServletRequest
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/MultipartProperties$$Lambda$373
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/MultipartProperties$$Lambda$372
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/MultipartProperties$$Lambda$371
+instanceKlass org/springframework/boot/context/properties/PropertyMapper$Source$$Lambda$370
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/MultipartProperties$$Lambda$369
+instanceKlass org/springframework/boot/context/properties/PropertyMapper$$Lambda$368
+instanceKlass org/springframework/boot/web/servlet/MultipartConfigFactory
+instanceKlass org/springframework/boot/context/properties/bind/handler/NoUnboundElementsBindHandler$$Lambda$367
+instanceKlass org/springframework/boot/context/properties/source/UnboundElementsSourceFilter
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$366
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$365
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$364
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$363
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$362
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$361
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$360
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$359
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$358
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$357
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$356
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$355
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$354
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$353
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$352
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$351
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$350
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$349
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$348
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$347
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$346
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$345
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$344
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$343
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$342
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$341
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$340
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$339
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$338
+instanceKlass org/springframework/boot/context/properties/PropertyMapper$Source$$Lambda$337
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$336
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$335
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$334
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$333
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$332
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$331
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$330
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$329
+instanceKlass java/util/function/Predicate$$Lambda$328
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$327
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$326
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$325
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$324
+instanceKlass org/springframework/boot/context/properties/PropertyMapper$Source$$Lambda$323
+instanceKlass org/springframework/boot/context/properties/PropertyMapper$Source$$Lambda$322
+instanceKlass org/springframework/boot/context/properties/PropertyMapper$Source$$Lambda$321
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$320
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$319
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$318
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer$$Lambda$317
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/TomcatServletWebServerFactoryCustomizer$$Lambda$316
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$315
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$314
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$313
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$312
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$311
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$310
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$309
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$308
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$307
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$306
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$305
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$304
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$303
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$302
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$301
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$300
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$299
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$298
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$297
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$296
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$295
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/boot/context/properties/PropertyMapper$Source$$Lambda$294
+instanceKlass org/springframework/boot/context/properties/PropertyMapper$NullPointerExceptionSafeSupplier
+instanceKlass org/springframework/boot/context/properties/PropertyMapper$CachingSupplier
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer$$Lambda$293
+instanceKlass org/springframework/boot/context/properties/PropertyMapper$$Lambda$292
+instanceKlass org/springframework/boot/context/properties/PropertyMapper$SourceOperator
+instanceKlass org/springframework/boot/context/properties/PropertyMapper$Source
+instanceKlass org/springframework/boot/context/properties/PropertyMapper$$Lambda$291
+instanceKlass org/springframework/boot/context/properties/PropertyMapper
+instanceKlass org/springframework/boot/util/LambdaSafe$InvocationResult
+instanceKlass org/springframework/boot/autoconfigure/websocket/servlet/TomcatWebSocketServletWebServerCustomizer$$Lambda$290
+instanceKlass org/springframework/boot/util/LambdaSafe$Callbacks$$Lambda$289
+instanceKlass org/springframework/boot/util/LambdaSafe$Callbacks$$Lambda$288
+instanceKlass org/springframework/boot/web/server/WebServerFactoryCustomizerBeanPostProcessor$$Lambda$287
+instanceKlass org/springframework/boot/util/LambdaSafe$GenericTypeFilter
+instanceKlass org/springframework/boot/util/LambdaSafe$Filter
+instanceKlass org/springframework/boot/util/LambdaSafe$LambdaSafeCallback
+instanceKlass org/springframework/boot/util/LambdaSafe
+instanceKlass org/springframework/boot/autoconfigure/web/ServerProperties$Undertow$Accesslog
+instanceKlass org/springframework/boot/autoconfigure/web/ServerProperties$Jetty$Accesslog
+instanceKlass org/springframework/boot/autoconfigure/web/ServerProperties$Tomcat$Resource
+instanceKlass org/springframework/boot/autoconfigure/web/ServerProperties$Tomcat$Accesslog
+instanceKlass org/springframework/boot/autoconfigure/web/ErrorProperties$Whitelabel
+instanceKlass org/springframework/boot/web/server/ErrorPage
+instanceKlass org/springframework/boot/web/server/SslStoreProvider
+instanceKlass org/springframework/boot/web/embedded/tomcat/TomcatConnectorCustomizer
+instanceKlass org/springframework/boot/web/embedded/tomcat/TomcatWebServer
+instanceKlass org/apache/catalina/Manager
+instanceKlass org/apache/coyote/AbstractProtocol
+instanceKlass org/apache/coyote/ProtocolHandler
+instanceKlass org/springframework/boot/web/embedded/tomcat/TomcatContextCustomizer
+instanceKlass org/apache/catalina/util/LifecycleBase
+instanceKlass org/apache/catalina/JmxEnabled
+instanceKlass org/apache/catalina/Valve
+instanceKlass org/apache/catalina/Context
+instanceKlass org/apache/tomcat/ContextBind
+instanceKlass org/apache/catalina/Engine
+instanceKlass org/springframework/boot/web/server/WebServer
+instanceKlass org/apache/catalina/Host
+instanceKlass org/apache/catalina/Container
+instanceKlass org/apache/catalina/Lifecycle
+instanceKlass org/springframework/boot/web/embedded/tomcat/TldSkipPatterns
+instanceKlass org/apache/tomcat/jni/Sockaddr
+instanceKlass org/apache/tomcat/jni/FileInfo
+instanceKlass java/lang/ClassLoaderHelper
+instanceKlass org/apache/tomcat/jni/Library
+instanceKlass org/apache/catalina/core/AprLifecycleListener
+instanceKlass org/apache/catalina/LifecycleListener
+instanceKlass org/springframework/boot/web/servlet/server/StaticResourceJars
+instanceKlass org/springframework/boot/web/servlet/server/DocumentRoot
+instanceKlass org/springframework/boot/web/servlet/server/Jsp
+instanceKlass org/springframework/boot/web/server/MimeMappings$Mapping
+instanceKlass org/springframework/boot/web/server/MimeMappings
+instanceKlass org/springframework/boot/web/servlet/server/SessionStoreDirectory
+instanceKlass org/springframework/boot/web/servlet/server/Session$Cookie
+instanceKlass org/springframework/boot/web/servlet/server/Session
+instanceKlass org/springframework/ui/context/support/ResourceBundleThemeSource
+instanceKlass org/springframework/ui/context/HierarchicalThemeSource
+instanceKlass org/springframework/ui/context/support/UiApplicationContextUtils
+instanceKlass org/springframework/data/projection/MethodInterceptorFactory
+instanceKlass org/springframework/data/projection/ProxyProjectionFactory
+instanceKlass org/springframework/data/projection/ProjectionFactory
+instanceKlass org/springframework/web/method/annotation/ModelAttributeMethodProcessor
+instanceKlass org/springframework/web/method/support/HandlerMethodReturnValueHandler
+instanceKlass org/springframework/beans/factory/support/DefaultListableBeanFactory$DependencyObjectProvider
+instanceKlass org/springframework/cache/annotation/AnnotationCacheOperationSource$$Lambda$286
+instanceKlass org/springframework/cache/annotation/SpringCacheAnnotationParser$DefaultCacheConfig
+instanceKlass org/springframework/cache/annotation/AnnotationCacheOperationSource$$Lambda$285
+instanceKlass org/springframework/cache/Cache
+instanceKlass org/springframework/cache/interceptor/CacheAspectSupport$CacheOperationMetadata
+instanceKlass org/springframework/cache/Cache$ValueWrapper
+instanceKlass org/springframework/cache/interceptor/CacheOperation
+instanceKlass org/springframework/cache/interceptor/BasicOperation
+instanceKlass org/springframework/cache/interceptor/CacheAspectSupport$CacheOperationContext
+instanceKlass org/springframework/cache/interceptor/CacheOperationInvocationContext
+instanceKlass org/springframework/cache/interceptor/CacheAspectSupport$CacheOperationContexts
+instanceKlass org/springframework/cache/interceptor/CacheOperationInvoker
+instanceKlass org/springframework/cache/interceptor/CacheAspectSupport$$Lambda$284
+instanceKlass org/springframework/cache/interceptor/CacheResolver
+instanceKlass org/springframework/cache/interceptor/CacheAspectSupport$$Lambda$283
+instanceKlass org/springframework/cache/interceptor/CacheAspectSupport$$Lambda$282
+instanceKlass org/springframework/cache/interceptor/CacheAspectSupport$$Lambda$281
+instanceKlass org/springframework/cache/interceptor/SimpleKeyGenerator
+instanceKlass org/springframework/cache/interceptor/KeyGenerator
+instanceKlass org/springframework/util/function/SingletonSupplier
+instanceKlass org/springframework/cache/interceptor/AbstractCacheInvoker$$Lambda$280
+instanceKlass org/springframework/cache/interceptor/SimpleCacheErrorHandler
+instanceKlass org/springframework/cache/interceptor/CacheErrorHandler
+instanceKlass org/springframework/cache/annotation/AnnotationCacheOperationSource$CacheOperationProvider
+instanceKlass org/springframework/cache/annotation/Caching
+instanceKlass org/springframework/cache/annotation/SpringCacheAnnotationParser
+instanceKlass org/springframework/cache/annotation/CacheAnnotationParser
+instanceKlass org/springframework/cache/interceptor/AbstractFallbackCacheOperationSource
+instanceKlass org/springframework/security/access/prepost/PostAuthorize
+instanceKlass org/springframework/security/access/prepost/PostFilter
+instanceKlass org/springframework/security/access/prepost/PreFilter
+instanceKlass org/springframework/security/access/method/DelegatingMethodSecurityMetadataSource$DefaultCacheKey
+instanceKlass org/springframework/security/access/method/AbstractMethodSecurityMetadataSource
+instanceKlass org/springframework/security/access/expression/method/ExpressionBasedAnnotationAttributeFactory
+instanceKlass org/springframework/security/access/prepost/PrePostInvocationAttributeFactory
+instanceKlass org/springframework/security/access/hierarchicalroles/RoleHierarchy
+instanceKlass org/springframework/security/access/PermissionCacheOptimizer
+instanceKlass org/springframework/security/access/expression/method/MethodSecurityExpressionOperations
+instanceKlass org/springframework/security/access/expression/SecurityExpressionOperations
+instanceKlass org/springframework/security/config/annotation/configuration/AutowireBeanFactoryObjectPostProcessor
+instanceKlass org/springframework/security/access/intercept/AbstractSecurityInterceptor
+instanceKlass org/springframework/security/core/parameters/AnnotationParameterNameDiscoverer$2
+instanceKlass org/springframework/security/core/parameters/AnnotationParameterNameDiscoverer$1
+instanceKlass org/springframework/security/core/parameters/AnnotationParameterNameDiscoverer$ParameterNameFactory
+instanceKlass org/springframework/security/core/parameters/AnnotationParameterNameDiscoverer
+instanceKlass org/springframework/security/core/parameters/P
+instanceKlass org/springframework/data/repository/query/Param
+instanceKlass org/springframework/security/authentication/AbstractAuthenticationToken
+instanceKlass org/springframework/security/core/CredentialsContainer
+instanceKlass org/springframework/security/core/Authentication
+instanceKlass org/springframework/security/authentication/AuthenticationTrustResolverImpl
+instanceKlass org/springframework/security/access/expression/DenyAllPermissionEvaluator
+instanceKlass org/springframework/security/access/PermissionEvaluator
+instanceKlass org/springframework/security/access/expression/AbstractSecurityExpressionHandler
+instanceKlass org/springframework/security/config/annotation/method/configuration/GlobalMethodSecurityConfiguration$1
+instanceKlass org/springframework/aop/support/ClassFilters$UnionClassFilter
+instanceKlass org/springframework/aop/support/ClassFilters
+instanceKlass org/springframework/aop/support/MethodMatchers$UnionMethodMatcher
+instanceKlass org/springframework/aop/support/MethodMatchers
+instanceKlass org/springframework/aop/support/ComposablePointcut
+instanceKlass com/baomidou/dynamic/datasource/aop/DynamicDataSourceAnnotationAdvisor$AnnotationMethodPoint
+instanceKlass com/baomidou/mybatisplus/core/override/MybatisMapperProxy
+instanceKlass com/baomidou/dynamic/datasource/support/DataSourceClassResolver
+instanceKlass com/baomidou/dynamic/datasource/aop/DynamicDataSourceAnnotationInterceptor
+instanceKlass com/baomidou/dynamic/datasource/processor/DsSpelExpressionProcessor$1
+instanceKlass org/aspectj/weaver/TypeVariableReference
+instanceKlass org/aspectj/weaver/TypeVariable
+instanceKlass org/aspectj/weaver/reflect/ShadowMatchImpl
+instanceKlass org/aspectj/weaver/tools/ShadowMatch
+instanceKlass org/aspectj/weaver/patterns/ExposedState
+instanceKlass org/aspectj/weaver/ast/ASTNode
+instanceKlass org/aspectj/apache/bcel/classfile/annotation/ElementValue
+instanceKlass org/aspectj/apache/bcel/classfile/annotation/NameValuePair
+instanceKlass org/aspectj/apache/bcel/classfile/Utility
+instanceKlass org/aspectj/apache/bcel/ExceptionConstants
+instanceKlass org/aspectj/apache/bcel/ConstantsInitializer
+instanceKlass org/aspectj/apache/bcel/generic/Type
+instanceKlass org/aspectj/apache/bcel/Constants
+instanceKlass org/aspectj/apache/bcel/classfile/Attribute
+instanceKlass org/aspectj/apache/bcel/classfile/AttributeUtils
+instanceKlass org/aspectj/apache/bcel/classfile/annotation/AnnotationGen
+instanceKlass org/aspectj/apache/bcel/classfile/Modifiers
+instanceKlass org/aspectj/apache/bcel/classfile/SimpleConstant
+instanceKlass org/aspectj/apache/bcel/classfile/Constant
+instanceKlass org/aspectj/apache/bcel/classfile/ConstantPool
+instanceKlass org/aspectj/apache/bcel/classfile/Node
+instanceKlass org/aspectj/apache/bcel/classfile/ClassParser
+instanceKlass org/aspectj/weaver/reflect/Java15GenericSignatureInformationProvider
+instanceKlass org/aspectj/weaver/reflect/Java14GenericSignatureInformationProvider
+instanceKlass org/aspectj/weaver/reflect/GenericSignatureInformationProvider
+instanceKlass org/aspectj/weaver/AnnotationAJ
+instanceKlass org/aspectj/weaver/MemberImpl
+instanceKlass org/aspectj/weaver/ResolvedMember
+instanceKlass org/aspectj/weaver/Member
+instanceKlass org/aspectj/weaver/Shadow
+instanceKlass org/aspectj/weaver/patterns/FastMatchInfo
+instanceKlass org/aspectj/weaver/tools/DefaultMatchingContext
+instanceKlass org/aspectj/weaver/tools/MatchingContext
+instanceKlass org/aspectj/weaver/internal/tools/PointcutExpressionImpl
+instanceKlass org/aspectj/weaver/tools/PointcutExpression
+instanceKlass org/aspectj/weaver/IntMap
+instanceKlass com/baomidou/dynamic/datasource/annotation/DSTransactional
+instanceKlass org/aspectj/weaver/patterns/BindingPattern
+instanceKlass org/aspectj/weaver/patterns/Bindings
+instanceKlass org/aspectj/weaver/patterns/SimpleScope
+instanceKlass org/aspectj/weaver/patterns/IScope
+instanceKlass org/aspectj/weaver/tools/PointcutParser$1
+instanceKlass org/aspectj/weaver/ISourceContext
+instanceKlass org/aspectj/weaver/reflect/JavaLangTypeToResolvedTypeConverter
+instanceKlass org/aspectj/internal/lang/reflect/AjTypeImpl
+instanceKlass org/aspectj/lang/reflect/AjType
+instanceKlass org/aspectj/lang/reflect/AjTypeSystem
+instanceKlass org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegate
+instanceKlass org/aspectj/weaver/ReferenceTypeDelegate
+instanceKlass org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegateFactory
+instanceKlass org/aspectj/weaver/patterns/FormalBinding
+instanceKlass org/aspectj/weaver/patterns/PatternNode
+instanceKlass org/aspectj/weaver/IHasSourceLocation
+instanceKlass org/aspectj/weaver/patterns/BasicToken
+instanceKlass org/aspectj/weaver/patterns/IToken
+instanceKlass org/aspectj/weaver/IHasPosition
+instanceKlass org/aspectj/weaver/patterns/BasicTokenSource
+instanceKlass org/aspectj/weaver/patterns/ITokenSource
+instanceKlass org/aspectj/weaver/patterns/PatternParser
+instanceKlass org/aspectj/weaver/tools/PointcutParameter
+instanceKlass org/springframework/aop/aspectj/AspectJExpressionPointcut$BeanPointcutDesignatorHandler
+instanceKlass org/aspectj/weaver/tools/PointcutDesignatorHandler
+instanceKlass org/aspectj/apache/bcel/util/ClassLoaderRepository
+instanceKlass org/aspectj/apache/bcel/util/Repository
+instanceKlass org/aspectj/apache/bcel/util/ClassLoaderReference
+instanceKlass org/aspectj/weaver/reflect/Java15AnnotationFinder
+instanceKlass org/aspectj/weaver/reflect/ArgNameFinder
+instanceKlass org/aspectj/weaver/reflect/AnnotationFinder
+instanceKlass org/aspectj/weaver/reflect/ReflectionWorld$ExceptionBasedMessageHandler
+instanceKlass org/aspectj/weaver/World$AspectPrecedenceCalculator
+instanceKlass org/aspectj/util/FuzzyBoolean
+instanceKlass org/aspectj/weaver/ResolvedType$FieldGetter
+instanceKlass org/aspectj/weaver/ResolvedType$PointcutGetter
+instanceKlass org/aspectj/weaver/ResolvedType$MethodGetterIncludingItds
+instanceKlass org/aspectj/weaver/ResolvedType$MethodGetter
+instanceKlass org/aspectj/weaver/Iterators$Getter
+instanceKlass org/aspectj/weaver/UnresolvedType$TypeKind
+instanceKlass org/aspectj/weaver/TypeFactory
+instanceKlass org/aspectj/weaver/UnresolvedType
+instanceKlass org/aspectj/weaver/TypeVariableDeclaringElement
+instanceKlass org/aspectj/weaver/tools/Traceable
+instanceKlass org/aspectj/bridge/IMessage$Kind$1
+instanceKlass org/aspectj/bridge/IMessage$Kind
+instanceKlass org/aspectj/bridge/IMessage
+instanceKlass org/aspectj/weaver/Lint$Kind
+instanceKlass org/aspectj/weaver/Lint
+instanceKlass org/aspectj/weaver/CrosscuttingMembersSet
+instanceKlass org/aspectj/weaver/World$TypeMap
+instanceKlass org/aspectj/bridge/IMessageHandler$1
+instanceKlass org/aspectj/bridge/MessageWriter
+instanceKlass org/aspectj/bridge/IMessageHandler
+instanceKlass org/aspectj/weaver/tools/AbstractTrace
+instanceKlass org/aspectj/weaver/tools/Trace
+instanceKlass org/aspectj/util/LangUtil
+instanceKlass org/aspectj/weaver/tools/TraceFactory
+instanceKlass org/aspectj/weaver/World
+instanceKlass org/aspectj/weaver/Dump$INode
+instanceKlass org/aspectj/weaver/reflect/IReflectionWorld
+instanceKlass org/aspectj/weaver/WeakClassLoaderReference
+instanceKlass org/aspectj/weaver/tools/PointcutParser
+instanceKlass com/baomidou/dynamic/datasource/aop/DynamicTransactionAdvisor
+instanceKlass org/aspectj/util/TypeSafeEnum
+instanceKlass org/springframework/aop/support/AbstractExpressionPointcut
+instanceKlass org/springframework/aop/support/ExpressionPointcut
+instanceKlass org/springframework/core/MethodClassKey
+instanceKlass org/springframework/transaction/interceptor/TransactionalProxy
+instanceKlass org/springframework/aop/IntroductionAwareMethodMatcher
+instanceKlass org/springframework/boot/context/properties/source/ConfigurationPropertyName$$Lambda$279
+instanceKlass org/springframework/boot/context/properties/bind/MapBinder$EntryBinder$$Lambda$278
+instanceKlass org/springframework/boot/context/properties/source/ConfigurationPropertyName$$Lambda$277
+instanceKlass org/springframework/boot/context/properties/bind/MapBinder$EntryBinder
+instanceKlass org/springframework/boot/context/properties/bind/MapBinder$$Lambda$276
+instanceKlass com/baomidou/dynamic/datasource/spring/boot/autoconfigure/DataSourceProperty
+instanceKlass org/springframework/boot/context/properties/NestedConfigurationProperty
+instanceKlass com/baomidou/dynamic/datasource/spring/boot/autoconfigure/druid/DruidSlf4jConfig
+instanceKlass com/baomidou/dynamic/datasource/spring/boot/autoconfigure/druid/DruidStatConfig
+instanceKlass com/baomidou/dynamic/datasource/spring/boot/autoconfigure/druid/DruidWallConfig
+instanceKlass com/baomidou/dynamic/datasource/strategy/LoadBalanceDynamicDataSourceStrategy
+instanceKlass com/baomidou/dynamic/datasource/strategy/DynamicDataSourceStrategy
+instanceKlass org/springframework/aop/aspectj/AspectJPointcutAdvisor
+instanceKlass org/springframework/transaction/interceptor/TransactionAspectSupport$ThrowableHolder
+instanceKlass org/springframework/transaction/interceptor/TransactionAspectSupport$InvocationCallback
+instanceKlass org/springframework/transaction/interceptor/TransactionAspectSupport$TransactionInfo
+instanceKlass org/springframework/transaction/TransactionStatus
+instanceKlass org/springframework/transaction/SavepointManager
+instanceKlass org/aopalliance/intercept/MethodInvocation
+instanceKlass org/aopalliance/intercept/Invocation
+instanceKlass org/aopalliance/intercept/Joinpoint
+instanceKlass org/springframework/transaction/annotation/SpringTransactionAnnotationParser
+instanceKlass org/springframework/transaction/annotation/TransactionAnnotationParser
+instanceKlass org/springframework/transaction/interceptor/TransactionAttribute
+instanceKlass org/springframework/transaction/interceptor/AbstractFallbackTransactionAttributeSource
+instanceKlass org/springframework/aop/TrueClassFilter
+instanceKlass org/springframework/aop/support/StaticMethodMatcher
+instanceKlass org/springframework/aop/IntroductionAdvisor
+instanceKlass org/springframework/aop/IntroductionInfo
+instanceKlass org/springframework/scheduling/annotation/ScheduledAnnotationBeanPostProcessor$$Lambda$275
+instanceKlass org/springframework/aop/aspectj/AspectJProxyUtils
+instanceKlass org/springframework/aop/framework/autoproxy/ProxyCreationContext
+instanceKlass org/springframework/transaction/annotation/TransactionManagementConfigurer
+instanceKlass org/apache/ibatis/mapping/BoundSql
+instanceKlass org/apache/ibatis/cache/CacheKey
+instanceKlass org/apache/ibatis/session/ResultHandler
+instanceKlass org/apache/ibatis/session/RowBounds
+instanceKlass org/apache/ibatis/mapping/MappedStatement
+instanceKlass org/apache/ibatis/executor/Executor
+instanceKlass java/sql/Connection
+instanceKlass org/apache/ibatis/executor/statement/StatementHandler
+instanceKlass org/apache/ibatis/plugin/Signature
+instanceKlass org/apache/ibatis/plugin/Intercepts
+instanceKlass org/springframework/dao/support/PersistenceExceptionTranslationInterceptor
+instanceKlass org/springframework/stereotype/Repository
+instanceKlass org/springframework/aop/TruePointcut
+instanceKlass org/springframework/validation/beanvalidation/MethodValidationInterceptor
+instanceKlass org/springframework/aop/TrueMethodMatcher
+instanceKlass org/springframework/aop/MethodMatcher
+instanceKlass org/springframework/aop/support/annotation/AnnotationClassFilter
+instanceKlass org/springframework/aop/ClassFilter
+instanceKlass org/springframework/aop/support/annotation/AnnotationMatchingPointcut
+instanceKlass org/springframework/aop/Advisor$1
+instanceKlass javax/validation/metadata/BeanDescriptor
+instanceKlass javax/validation/metadata/ElementDescriptor
+instanceKlass org/springframework/aop/framework/JdkDynamicAopProxy
+instanceKlass org/springframework/aop/framework/AopProxy
+instanceKlass org/springframework/aop/framework/DefaultAopProxyFactory
+instanceKlass org/springframework/aop/framework/AopProxyFactory
+instanceKlass org/springframework/aop/framework/DefaultAdvisorChainFactory
+instanceKlass org/springframework/aop/framework/AdvisorChainFactory
+instanceKlass org/springframework/aop/target/EmptyTargetSource
+instanceKlass org/springframework/context/annotation/ContextAnnotationAutowireCandidateResolver$1
+instanceKlass com/mes/userinfo/mapper/SysUserRoleMapper
+instanceKlass com/mes/userinfo/mapper/SysUserMapper
+instanceKlass com/mes/role/mapper/SysRoleMenuMapper
+instanceKlass com/mes/role/mapper/SysRoleMapper
+instanceKlass com/mes/menu/mapper/SysMenuMapper
+instanceKlass com/mes/work_assignment/mapper/WorkAssignmentMapper
+instanceKlass com/mes/uppattenusage/mapper/UpPattenUsageMapper
+instanceKlass com/mes/temperingglass/mapper/TemperingGlassInfoMapper
+instanceKlass com/mes/sysdict/mapper/SysDictTypeMapper
+instanceKlass com/mes/sysdict/mapper/SysDictDataMapper
+instanceKlass com/mes/sysconfig/mapper/SysConfigMapper
+instanceKlass com/mes/rawglasstask/mapper/RawGlassStorageTaskMapper
+instanceKlass com/mes/rawglassstation/mapper/RawGlassStorageStationMapper
+instanceKlass com/mes/rawglassdetails/mapper/RawGlassStorageDetailsMapper
+instanceKlass com/mes/pp/mapper/request/ReportingDamageMapper
+instanceKlass com/mes/pp/mapper/request/AwaitingRepairMapper
+instanceKlass com/mes/pp/mapper/ReportingWorkMapper
+instanceKlass com/mes/pp/mapper/ReportingWorkDetailMapper
+instanceKlass com/mes/pp/mapper/OptimizeProjectMapper
+instanceKlass com/mes/pp/mapper/OptimizeLayoutMapper
+instanceKlass com/mes/pp/mapper/OptimizeHeatLayoutMapper
+instanceKlass com/mes/pp/mapper/OptimizeHeatDetailMapper
+instanceKlass com/mes/pp/mapper/OptimizeDetailMapper
+instanceKlass com/mes/pp/mapper/FlowCardMapper
+instanceKlass com/mes/pp/mapper/BasicDataProduceMapper
+instanceKlass com/mes/order/mapper/OrdersMapper
+instanceKlass com/mes/order/mapper/OrderdetailMapper
+instanceKlass com/mes/order/mapper/OrderMapper
+instanceKlass com/mes/opctask/mapper/LoadGlassDeviceTaskMapper
+instanceKlass com/mes/opctask/mapper/LoadGlassDeviceTaskHistoryDao
+instanceKlass com/mes/largenscreen/mapper/LargenScreenMapper
+instanceKlass com/mes/glassinfo/mapper/GlassInfoMapper
+instanceKlass com/mes/engineering/mapper/EngineeringMapper
+instanceKlass com/mes/damage/mapper/DamageMapper
+instanceKlass com/github/yulichang/base/MPJBaseMapper
+instanceKlass com/baomidou/mybatisplus/core/mapper/BaseMapper
+instanceKlass com/baomidou/mybatisplus/core/mapper/Mapper
+instanceKlass com/mes/bigstoragecagetask/mapper/BigStorageCageTaskMapper
+instanceKlass java/lang/Class$EnclosingMethodInfo
+instanceKlass org/springframework/scheduling/config/ScheduledTaskRegistrar
+instanceKlass org/springframework/aop/aspectj/annotation/AbstractAspectJAdvisorFactory$AspectJAnnotationParameterNameDiscoverer
+instanceKlass java/util/Comparator$$Lambda$274
+instanceKlass org/springframework/util/comparator/ComparableComparator
+instanceKlass org/springframework/util/comparator/Comparators
+instanceKlass org/springframework/aop/aspectj/annotation/ReflectiveAspectJAdvisorFactory$$Lambda$273
+instanceKlass org/springframework/aop/aspectj/annotation/ReflectiveAspectJAdvisorFactory$$Lambda$272
+instanceKlass org/springframework/util/comparator/InstanceComparator
+instanceKlass org/springframework/core/convert/converter/ConvertingComparator
+instanceKlass org/aspectj/lang/annotation/AfterThrowing
+instanceKlass org/aspectj/lang/annotation/AfterReturning
+instanceKlass org/aspectj/lang/annotation/After
+instanceKlass org/aspectj/lang/annotation/Before
+instanceKlass org/aspectj/lang/annotation/Around
+instanceKlass org/aspectj/lang/annotation/Pointcut
+instanceKlass org/springframework/aop/aspectj/annotation/AbstractAspectJAdvisorFactory
+instanceKlass org/springframework/core/convert/support/NumberToNumberConverterFactory$NumberToNumber
+instanceKlass sun/reflect/generics/reflectiveObjects/GenericArrayTypeImpl
+instanceKlass org/springframework/aop/framework/autoproxy/BeanFactoryAdvisorRetrievalHelper
+instanceKlass org/springframework/aop/aspectj/annotation/BeanFactoryAspectJAdvisorsBuilder
+instanceKlass org/springframework/aop/framework/adapter/ThrowsAdviceAdapter
+instanceKlass org/springframework/aop/framework/adapter/AfterReturningAdviceAdapter
+instanceKlass org/springframework/aop/framework/adapter/MethodBeforeAdviceAdapter
+instanceKlass org/springframework/aop/framework/adapter/AdvisorAdapter
+instanceKlass org/springframework/aop/framework/adapter/DefaultAdvisorAdapterRegistry
+instanceKlass org/springframework/aop/framework/adapter/GlobalAdvisorAdapterRegistry
+instanceKlass org/springframework/aop/aspectj/autoproxy/AspectJPrecedenceComparator
+instanceKlass org/springframework/aop/framework/autoproxy/TargetSourceCreator
+instanceKlass org/springframework/aop/framework/adapter/AdvisorAdapterRegistry
+instanceKlass org/springframework/aop/TargetSource
+instanceKlass org/springframework/aop/aspectj/annotation/AspectJAdvisorFactory
+instanceKlass com/github/yulichang/toolkit/SpringContentUtils
+instanceKlass org/springframework/boot/info/InfoProperties
+instanceKlass org/springframework/boot/autoconfigure/template/TemplateLocation
+instanceKlass org/mybatis/spring/mapper/ClassPathMapperScanner$$Lambda$271
+instanceKlass org/mybatis/spring/mapper/ClassPathMapperScanner$$Lambda$270
+instanceKlass org/mybatis/spring/mapper/ClassPathMapperScanner$$Lambda$269
+instanceKlass org/mybatis/spring/mapper/ClassPathMapperScanner$$Lambda$268
+instanceKlass org/mybatis/spring/mapper/ClassPathMapperScanner$$Lambda$267
+instanceKlass org/mybatis/spring/mapper/ClassPathMapperScanner$$Lambda$266
+instanceKlass org/apache/ibatis/logging/LogFactory$$Lambda$265
+instanceKlass org/apache/ibatis/logging/LogFactory$$Lambda$264
+instanceKlass org/apache/ibatis/logging/LogFactory$$Lambda$263
+instanceKlass org/apache/ibatis/logging/LogFactory$$Lambda$262
+instanceKlass org/apache/ibatis/logging/LogFactory$$Lambda$261
+instanceKlass org/apache/ibatis/logging/slf4j/Slf4jLocationAwareLoggerImpl
+instanceKlass org/slf4j/event/LoggingEvent
+instanceKlass org/apache/ibatis/logging/slf4j/Slf4jImpl
+instanceKlass org/apache/ibatis/logging/Log
+instanceKlass org/apache/ibatis/logging/LogFactory$$Lambda$260
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/apache/ibatis/logging/LogFactory
+instanceKlass org/mybatis/logging/Logger
+instanceKlass org/mybatis/logging/LoggerFactory
+instanceKlass org/mybatis/spring/mapper/MapperScannerConfigurer$$Lambda$259
+instanceKlass org/mybatis/spring/mapper/MapperScannerConfigurer$$Lambda$258
+instanceKlass org/mybatis/spring/mapper/MapperScannerConfigurer$$Lambda$257
+instanceKlass org/mybatis/spring/mapper/MapperScannerConfigurer$$Lambda$256
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/cloud/context/scope/StandardScopeCache
+instanceKlass org/springframework/cloud/context/scope/ScopeCache
+instanceKlass org/springframework/cloud/context/scope/GenericScope$BeanLifecycleWrapperCache
+instanceKlass org/springframework/boot/autoconfigure/thymeleaf/ThymeleafProperties$Servlet
+instanceKlass org/springframework/boot/autoconfigure/thymeleaf/ThymeleafProperties$Reactive
+instanceKlass org/springframework/boot/autoconfigure/task/TaskSchedulingProperties$Pool
+instanceKlass org/springframework/boot/autoconfigure/security/SecurityProperties$User
+instanceKlass org/springframework/boot/autoconfigure/security/SecurityProperties$Filter
+instanceKlass org/springframework/boot/autoconfigure/jdbc/JdbcProperties$Template
+instanceKlass org/springframework/boot/autoconfigure/info/ProjectInfoProperties$Build
+instanceKlass org/springframework/boot/autoconfigure/info/ProjectInfoProperties$Git
+instanceKlass org/springframework/boot/autoconfigure/data/web/SpringDataWebProperties$Pageable
+instanceKlass org/springframework/boot/autoconfigure/data/web/SpringDataWebProperties$Sort
+instanceKlass com/google/gson/FieldNamingStrategy
+instanceKlass org/springframework/data/redis/core/TimeToLive
+instanceKlass org/springframework/data/redis/core/RedisKeyValueAdapter$RedisUpdateObject
+instanceKlass org/springframework/data/util/CloseableIterator
+instanceKlass org/springframework/data/redis/core/RedisCallback
+instanceKlass org/springframework/data/mapping/Association
+instanceKlass org/springframework/data/redis/core/PartialUpdate$PropertyUpdate
+instanceKlass org/springframework/data/redis/core/PartialUpdate
+instanceKlass org/springframework/data/redis/core/convert/IndexResolver
+instanceKlass org/springframework/data/mapping/PersistentPropertyAccessor
+instanceKlass org/springframework/data/redis/core/convert/Bucket
+instanceKlass org/springframework/data/redis/core/convert/RedisData
+instanceKlass org/springframework/data/util/TypeInformation
+instanceKlass org/springframework/data/redis/core/mapping/RedisPersistentEntity
+instanceKlass org/springframework/data/mapping/model/AbstractPersistentProperty
+instanceKlass org/springframework/data/keyvalue/core/mapping/KeyValuePersistentEntity
+instanceKlass org/springframework/data/mapping/PersistentProperty
+instanceKlass org/springframework/data/mapping/model/SimpleTypeHolder
+instanceKlass org/springframework/data/mapping/model/MutablePersistentEntity
+instanceKlass org/springframework/data/mapping/PersistentEntity
+instanceKlass org/springframework/data/mapping/model/Property
+instanceKlass org/springframework/data/keyvalue/core/mapping/KeySpaceResolver
+instanceKlass org/springframework/boot/autoconfigure/data/redis/RedisProperties$Jedis
+instanceKlass org/springframework/boot/autoconfigure/data/redis/RedisProperties$Lettuce
+instanceKlass org/springframework/boot/autoconfigure/data/redis/RedisProperties$Cluster
+instanceKlass com/kangaroohy/milo/configuration/MiloProperties$Pool
+instanceKlass org/apache/ibatis/session/Configuration
+instanceKlass org/springframework/boot/autoconfigure/jdbc/DataSourceProperties$Xa
+instanceKlass com/baomidou/dynamic/datasource/spring/boot/autoconfigure/druid/DruidConfig
+instanceKlass com/baomidou/dynamic/datasource/spring/boot/autoconfigure/hikari/HikariCpConfig
+instanceKlass org/springframework/boot/autoconfigure/web/ResourceProperties$Cache
+instanceKlass org/springframework/boot/autoconfigure/task/TaskExecutionProperties$Pool
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/WebMvcProperties$Contentnegotiation
+instanceKlass org/springframework/validation/MessageCodeFormatter
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/WebMvcProperties$Pathmatch
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/WebMvcProperties$Async
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/WebMvcProperties$Servlet
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/WebMvcProperties$View
+instanceKlass org/springframework/boot/autoconfigure/http/HttpProperties$Encoding
+instanceKlass org/springframework/boot/web/server/Http2
+instanceKlass org/springframework/boot/web/server/Compression
+instanceKlass org/springframework/boot/autoconfigure/web/ServerProperties$Tomcat
+instanceKlass org/springframework/boot/autoconfigure/web/ServerProperties$Undertow
+instanceKlass org/springframework/boot/autoconfigure/web/ServerProperties$Jetty
+instanceKlass org/springframework/boot/web/server/Ssl
+instanceKlass org/springframework/boot/autoconfigure/web/ServerProperties$Servlet
+instanceKlass org/springframework/boot/autoconfigure/web/ErrorProperties
+instanceKlass org/springframework/lang/NonNull
+instanceKlass org/springframework/aop/Pointcut
+instanceKlass org/springframework/cloud/openfeign/FeignClientProperties
+instanceKlass org/springframework/cloud/openfeign/FeignAutoConfiguration$HystrixFeignTargeterConfiguration
+instanceKlass org/springframework/cloud/openfeign/Targeter
+instanceKlass feign/Request$Options
+instanceKlass org/springframework/cloud/openfeign/ribbon/FeignRibbonClientAutoConfiguration
+instanceKlass org/springframework/cloud/openfeign/ribbon/CachingSpringLoadBalancerFactory
+instanceKlass org/springframework/cloud/openfeign/ribbon/OkHttpFeignLoadBalancedConfiguration
+instanceKlass org/springframework/cloud/openfeign/ribbon/HttpClientFeignLoadBalancedConfiguration
+instanceKlass org/springframework/cloud/openfeign/support/FeignHttpClientProperties
+instanceKlass org/springframework/cloud/openfeign/FeignAutoConfiguration
+instanceKlass org/springframework/cloud/openfeign/ribbon/DefaultFeignLoadBalancedConfiguration
+instanceKlass org/springframework/cloud/configuration/CompositeCompatibilityVerifier
+instanceKlass org/springframework/cloud/configuration/SpringBootVersionVerifier
+instanceKlass org/springframework/cloud/configuration/CompatibilityVerifier
+instanceKlass org/springframework/cloud/configuration/CompatibilityVerifierAutoConfiguration
+instanceKlass org/springframework/cloud/configuration/CompatibilityVerifierProperties
+instanceKlass org/springframework/cloud/commons/util/UtilAutoConfiguration
+instanceKlass org/springframework/cloud/commons/httpclient/HttpClientConfiguration
+instanceKlass org/springframework/cloud/commons/httpclient/ApacheHttpClientFactory
+instanceKlass org/apache/http/impl/client/HttpClientBuilder
+instanceKlass org/springframework/cloud/commons/httpclient/HttpClientConfiguration$ApacheHttpClientConfiguration
+instanceKlass org/springframework/cloud/client/serviceregistry/ServiceRegistryAutoConfiguration
+instanceKlass org/springframework/cloud/commons/httpclient/ApacheHttpClientConnectionManagerFactory
+instanceKlass org/springframework/cloud/client/loadbalancer/LoadBalancerRetryProperties
+instanceKlass org/springframework/cloud/client/loadbalancer/LoadBalancerRequestFactory
+instanceKlass org/springframework/cloud/client/loadbalancer/LoadBalancerInterceptor
+instanceKlass org/springframework/http/client/ClientHttpRequestInterceptor
+instanceKlass org/springframework/cloud/client/loadbalancer/LoadBalancerAutoConfiguration$LoadBalancerInterceptorConfig
+instanceKlass org/springframework/cloud/client/loadbalancer/RestTemplateCustomizer
+instanceKlass org/springframework/cloud/client/loadbalancer/AsyncLoadBalancerAutoConfiguration$AsyncRestTemplateCustomizerConfig
+instanceKlass org/springframework/cloud/client/loadbalancer/AsyncRestTemplateCustomizer
+instanceKlass org/springframework/cloud/client/loadbalancer/AsyncLoadBalancerInterceptor
+instanceKlass org/springframework/http/client/AsyncClientHttpRequestInterceptor
+instanceKlass org/springframework/cloud/client/loadbalancer/AsyncLoadBalancerAutoConfiguration$LoadBalancerInterceptorConfig
+instanceKlass org/springframework/cloud/client/hypermedia/RemoteResource
+instanceKlass org/springframework/cloud/client/discovery/simple/SimpleDiscoveryProperties
+instanceKlass org/springframework/cloud/client/discovery/composite/CompositeDiscoveryClient
+instanceKlass org/springframework/cloud/client/discovery/composite/CompositeDiscoveryClientAutoConfiguration
+instanceKlass org/springframework/cloud/client/discovery/noop/NoopDiscoveryClientAutoConfiguration
+instanceKlass org/springframework/cloud/autoconfigure/LifecycleMvcEndpointAutoConfiguration
+instanceKlass org/springframework/cloud/context/environment/EnvironmentManager
+instanceKlass org/springframework/boot/autoconfigure/websocket/servlet/WebSocketMessagingAutoConfiguration
+instanceKlass org/springframework/web/multipart/commons/CommonsFileUploadSupport
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/MultipartAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/HttpEncodingAutoConfiguration$LocaleCharsetMappingsCustomizer
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/MultipartProperties
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/HttpEncodingAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/EmbeddedWebServerFactoryCustomizerAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer
+instanceKlass org/springframework/boot/autoconfigure/web/embedded/EmbeddedWebServerFactoryCustomizerAutoConfiguration$TomcatWebServerFactoryCustomizerConfiguration
+instanceKlass org/springframework/boot/autoconfigure/web/client/RestTemplateAutoConfiguration
+instanceKlass org/springframework/boot/web/client/RestTemplateBuilder
+instanceKlass org/springframework/boot/autoconfigure/transaction/TransactionAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/transaction/TransactionManagerCustomizers
+instanceKlass org/springframework/boot/autoconfigure/transaction/TransactionProperties
+instanceKlass org/springframework/boot/autoconfigure/transaction/PlatformTransactionManagerCustomizer
+instanceKlass org/springframework/boot/autoconfigure/data/neo4j/Neo4jDataAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/transaction/jta/JtaAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/transaction/TransactionAutoConfiguration$TransactionTemplateConfiguration
+instanceKlass org/springframework/transaction/support/DefaultTransactionDefinition
+instanceKlass org/springframework/transaction/TransactionDefinition
+instanceKlass org/springframework/transaction/support/TransactionOperations
+instanceKlass org/springframework/boot/autoconfigure/transaction/TransactionAutoConfiguration$EnableTransactionManagementConfiguration
+instanceKlass org/springframework/boot/autoconfigure/transaction/TransactionAutoConfiguration$EnableTransactionManagementConfiguration$CglibAutoProxyConfiguration
+instanceKlass org/springframework/transaction/event/TransactionalEventListenerFactory
+instanceKlass org/springframework/transaction/interceptor/TransactionAttributeSource
+instanceKlass org/springframework/transaction/interceptor/TransactionAspectSupport
+instanceKlass org/springframework/boot/autoconfigure/jdbc/DataSourceTransactionManagerAutoConfiguration
+instanceKlass org/springframework/transaction/support/AbstractPlatformTransactionManager
+instanceKlass org/springframework/transaction/support/ResourceTransactionManager
+instanceKlass org/springframework/boot/autoconfigure/jdbc/DataSourceTransactionManagerAutoConfiguration$DataSourceTransactionManagerConfiguration
+instanceKlass org/springframework/boot/autoconfigure/thymeleaf/ThymeleafAutoConfiguration
+instanceKlass org/thymeleaf/templateresolver/AbstractTemplateResolver
+instanceKlass org/thymeleaf/templateresolver/ITemplateResolver
+instanceKlass org/springframework/boot/autoconfigure/thymeleaf/ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration
+instanceKlass org/springframework/boot/autoconfigure/web/reactive/WebFluxAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/thymeleaf/ThymeleafProperties
+instanceKlass org/springframework/boot/autoconfigure/thymeleaf/ThymeleafAutoConfiguration$ThymeleafDefaultConfiguration
+instanceKlass org/springframework/boot/autoconfigure/thymeleaf/ThymeleafAutoConfiguration$ThymeleafWebMvcConfiguration
+instanceKlass org/springframework/boot/autoconfigure/thymeleaf/ThymeleafAutoConfiguration$ThymeleafWebMvcConfiguration$ThymeleafViewResolverConfiguration
+instanceKlass org/springframework/boot/autoconfigure/thymeleaf/ThymeleafAutoConfiguration$ThymeleafJava8TimeDialect
+instanceKlass org/springframework/boot/task/TaskSchedulerBuilder
+instanceKlass org/springframework/boot/autoconfigure/task/TaskSchedulingAutoConfiguration
+instanceKlass org/springframework/scheduling/annotation/SchedulingConfigurer
+instanceKlass org/springframework/boot/autoconfigure/task/TaskSchedulingProperties
+instanceKlass org/springframework/security/authentication/AuthenticationProvider
+instanceKlass org/springframework/boot/autoconfigure/security/servlet/SecurityFilterAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/security/servlet/SecurityAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/security/SecurityDataConfiguration
+instanceKlass org/springframework/boot/autoconfigure/security/servlet/WebSecurityEnablerConfiguration
+instanceKlass org/springframework/boot/autoconfigure/security/servlet/SpringBootWebSecurityConfiguration
+instanceKlass org/springframework/boot/autoconfigure/security/SecurityProperties
+instanceKlass org/springframework/boot/autoconfigure/jdbc/JdbcTemplateAutoConfiguration
+instanceKlass org/springframework/jdbc/core/namedparam/NamedParameterJdbcTemplate
+instanceKlass org/springframework/boot/autoconfigure/jdbc/JdbcProperties
+instanceKlass org/springframework/jdbc/core/namedparam/NamedParameterJdbcOperations
+instanceKlass org/springframework/boot/autoconfigure/jdbc/JdbcTemplateAutoConfiguration$NamedParameterJdbcTemplateConfiguration
+instanceKlass org/springframework/boot/autoconfigure/jdbc/JdbcTemplateAutoConfiguration$JdbcTemplateConfiguration
+instanceKlass org/springframework/boot/autoconfigure/info/ProjectInfoAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/http/codec/CodecsAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/info/ProjectInfoProperties
+instanceKlass org/springframework/boot/autoconfigure/http/codec/CodecsAutoConfiguration$JacksonCodecConfiguration
+instanceKlass org/springframework/boot/web/codec/CodecCustomizer
+instanceKlass org/springframework/boot/autoconfigure/http/codec/CodecsAutoConfiguration$LoggingCodecConfiguration
+instanceKlass org/springframework/boot/autoconfigure/freemarker/FreeMarkerAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/template/AbstractViewResolverProperties
+instanceKlass org/springframework/boot/autoconfigure/freemarker/AbstractFreeMarkerConfiguration
+instanceKlass org/springframework/boot/autoconfigure/data/web/SpringDataWebAutoConfiguration
+instanceKlass org/springframework/data/web/config/SpringDataJacksonConfiguration
+instanceKlass org/springframework/data/web/config/SortHandlerMethodArgumentResolverCustomizer
+instanceKlass org/springframework/data/web/SortHandlerMethodArgumentResolver
+instanceKlass org/springframework/data/web/SortArgumentResolver
+instanceKlass org/springframework/data/web/config/ProjectingArgumentResolverRegistrar$ProjectingArgumentResolverBeanPostProcessor
+instanceKlass org/springframework/data/web/config/PageableHandlerMethodArgumentResolverCustomizer
+instanceKlass org/springframework/boot/autoconfigure/data/rest/RepositoryRestMvcAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/data/web/SpringDataWebProperties
+instanceKlass org/springframework/boot/autoconfigure/http/HttpMessageConvertersAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/http/JsonbHttpMessageConvertersConfiguration
+instanceKlass org/springframework/boot/autoconfigure/http/GsonHttpMessageConvertersConfiguration
+instanceKlass org/springframework/boot/autoconfigure/jsonb/JsonbAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/http/JacksonHttpMessageConvertersConfiguration
+instanceKlass org/springframework/boot/autoconfigure/http/JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration
+instanceKlass org/springframework/boot/autoconfigure/http/HttpMessageConvertersAutoConfiguration$StringHttpMessageConverterConfiguration
+instanceKlass org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration$JacksonObjectMapperConfiguration
+instanceKlass org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration$ParameterNamesModuleConfiguration
+instanceKlass org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration$JacksonObjectMapperBuilderConfiguration
+instanceKlass org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration$Jackson2ObjectMapperBuilderCustomizerConfiguration$StandardJackson2ObjectMapperBuilderCustomizer
+instanceKlass org/springframework/boot/autoconfigure/jackson/Jackson2ObjectMapperBuilderCustomizer
+instanceKlass org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration$Jackson2ObjectMapperBuilderCustomizerConfiguration
+instanceKlass org/springframework/boot/autoconfigure/jackson/JacksonProperties
+instanceKlass org/springframework/boot/autoconfigure/gson/GsonAutoConfiguration$StandardGsonBuilderCustomizer
+instanceKlass org/springframework/boot/autoconfigure/gson/GsonBuilderCustomizer
+instanceKlass org/springframework/boot/autoconfigure/gson/GsonAutoConfiguration
+instanceKlass org/springframework/data/redis/core/convert/ReferenceResolverImpl
+instanceKlass org/springframework/data/redis/core/convert/ReferenceResolver
+instanceKlass org/springframework/boot/autoconfigure/data/redis/RedisRepositoriesAutoConfiguration
+instanceKlass com/google/gson/GsonBuilder
+instanceKlass org/springframework/boot/autoconfigure/gson/GsonProperties
+instanceKlass org/springframework/data/repository/config/RepositoryConfigurationSourceSupport$$Lambda$255
+instanceKlass org/springframework/data/util/Streamable$$Lambda$254
+instanceKlass org/springframework/util/MethodInvoker
+instanceKlass org/springframework/beans/factory/support/ConstructorResolver$ConstructorPropertiesChecker
+instanceKlass org/springframework/beans/Mergeable
+instanceKlass org/springframework/beans/factory/config/RuntimeBeanNameReference
+instanceKlass org/springframework/data/repository/config/RepositoryConfigurationSourceSupport$$Lambda$253
+instanceKlass org/springframework/data/repository/config/RepositoryConfigurationSourceSupport$$Lambda$252
+instanceKlass org/springframework/data/repository/NoRepositoryBean
+instanceKlass org/springframework/data/repository/RepositoryDefinition
+instanceKlass org/springframework/data/repository/Repository
+instanceKlass org/springframework/data/repository/config/AnnotationRepositoryConfigurationSource$$Lambda$251
+instanceKlass org/springframework/data/util/LazyStreamable
+instanceKlass org/springframework/data/util/Streamable
+instanceKlass org/springframework/data/repository/config/AnnotationRepositoryConfigurationSource$$Lambda$250
+instanceKlass org/springframework/data/util/Lazy$$Lambda$249
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/data/util/Lazy
+instanceKlass org/springframework/data/repository/config/CustomRepositoryImplementationDetector$$Lambda$248
+instanceKlass org/springframework/data/repository/config/RepositoryConfigurationSourceSupport$SpringImplementationDetectionConfiguration
+instanceKlass org/springframework/data/repository/config/ImplementationDetectionConfiguration
+instanceKlass org/springframework/data/repository/config/CustomRepositoryImplementationDetector
+instanceKlass org/springframework/data/repository/config/FragmentMetadata
+instanceKlass org/springframework/data/repository/config/RepositoryBeanDefinitionBuilder
+instanceKlass org/springframework/data/keyvalue/core/KeyValueTemplate
+instanceKlass org/springframework/data/keyvalue/core/KeyValueOperations
+instanceKlass org/springframework/data/keyvalue/core/AbstractKeyValueAdapter
+instanceKlass org/springframework/data/keyvalue/core/KeyValueAdapter
+instanceKlass org/springframework/data/redis/core/convert/MappingRedisConverter
+instanceKlass org/springframework/data/redis/core/convert/RedisConverter
+instanceKlass org/springframework/data/convert/EntityConverter
+instanceKlass org/springframework/data/convert/EntityWriter
+instanceKlass org/springframework/data/convert/EntityReader
+instanceKlass org/springframework/data/convert/CustomConversions
+instanceKlass org/springframework/data/repository/config/RepositoryConfigurationExtensionSupport$$Lambda$247
+instanceKlass org/springframework/data/mapping/context/AbstractMappingContext
+instanceKlass org/springframework/data/mapping/context/MappingContext
+instanceKlass org/springframework/data/redis/core/convert/MappingConfiguration
+instanceKlass org/slf4j/helpers/FormattingTuple
+instanceKlass org/slf4j/helpers/MessageFormatter
+instanceKlass org/springframework/data/repository/config/RepositoryConfigurationExtensionSupport
+instanceKlass org/springframework/data/repository/config/RepositoryConfigurationExtension
+instanceKlass org/springframework/data/repository/core/support/RepositoryFactorySupport
+instanceKlass org/springframework/data/repository/query/parser/AbstractQueryCreator
+instanceKlass org/springframework/data/keyvalue/repository/query/KeyValuePartTreeQuery
+instanceKlass org/springframework/data/repository/query/RepositoryQuery
+instanceKlass org/springframework/data/repository/config/RepositoryBeanDefinitionRegistrarSupport
+instanceKlass org/springframework/data/repository/config/SpringDataAnnotationBeanNameGenerator
+instanceKlass org/springframework/data/repository/config/RepositoryBeanNameGenerator
+instanceKlass org/springframework/data/config/ConfigurationUtils
+instanceKlass org/springframework/data/repository/config/RepositoryConfigurationSourceSupport
+instanceKlass org/springframework/data/repository/config/RepositoryConfigurationSource
+instanceKlass org/springframework/data/keyvalue/repository/config/QueryCreatorType
+instanceKlass org/springframework/data/repository/config/DefaultRepositoryBaseClass
+instanceKlass org/springframework/data/redis/core/convert/KeyspaceConfiguration
+instanceKlass org/springframework/data/redis/core/index/IndexConfiguration
+instanceKlass org/springframework/data/redis/core/index/ConfigurableIndexDefinitionProvider
+instanceKlass org/springframework/data/redis/core/index/IndexDefinitionRegistry
+instanceKlass org/springframework/data/redis/core/index/IndexDefinitionProvider
+instanceKlass org/springframework/boot/autoconfigure/data/redis/RedisRepositoriesAutoConfigureRegistrar$EnableRedisRepositoriesConfiguration
+instanceKlass org/springframework/data/repository/config/RepositoryConfigurationDelegate
+instanceKlass org/springframework/data/repository/core/support/RepositoryFactoryBeanSupport
+instanceKlass org/springframework/data/repository/core/support/RepositoryFactoryInformation
+instanceKlass org/springframework/boot/autoconfigure/dao/PersistenceExceptionTranslationAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/context/ConfigurationPropertiesAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/data/redis/RedisAutoConfiguration
+instanceKlass org/springframework/data/redis/connection/RedisStandaloneConfiguration
+instanceKlass org/springframework/data/redis/connection/RedisConfiguration$WithHostAndPort
+instanceKlass org/springframework/data/redis/connection/RedisSentinelConfiguration
+instanceKlass org/springframework/data/redis/connection/RedisConfiguration$SentinelConfiguration
+instanceKlass org/springframework/data/redis/connection/RedisConfiguration$WithDatabaseIndex
+instanceKlass org/springframework/data/redis/connection/RedisClusterConfiguration
+instanceKlass org/springframework/data/redis/connection/RedisConfiguration$ClusterConfiguration
+instanceKlass org/springframework/data/redis/connection/RedisConfiguration$WithPassword
+instanceKlass org/springframework/data/redis/connection/RedisConfiguration
+instanceKlass org/springframework/boot/autoconfigure/data/redis/RedisProperties$Sentinel
+instanceKlass org/springframework/boot/autoconfigure/data/redis/RedisConnectionConfiguration$ConnectionInfo
+instanceKlass org/springframework/data/redis/connection/jedis/JedisClientConfiguration
+instanceKlass org/springframework/boot/autoconfigure/data/redis/JedisClientConfigurationBuilderCustomizer
+instanceKlass org/springframework/data/redis/connection/jedis/JedisConnectionFactory
+instanceKlass org/springframework/boot/autoconfigure/data/redis/RedisProperties$Pool
+instanceKlass org/springframework/data/redis/connection/jedis/JedisClientConfiguration$JedisClientConfigurationBuilder
+instanceKlass org/springframework/boot/autoconfigure/data/redis/RedisProperties
+instanceKlass org/springframework/boot/autoconfigure/data/redis/RedisConnectionConfiguration
+instanceKlass org/springframework/cloud/endpoint/event/RefreshEventListener
+instanceKlass org/springframework/cloud/context/refresh/ContextRefresher
+instanceKlass org/springframework/cloud/logging/LoggingRebinder
+instanceKlass org/springframework/cloud/autoconfigure/RefreshAutoConfiguration
+instanceKlass org/springframework/cloud/autoconfigure/RefreshAutoConfiguration$RefreshScopeBeanDefinitionEnhancer
+instanceKlass org/springframework/boot/autoconfigure/aop/AopAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/aop/AopAutoConfiguration$CglibAutoProxyConfiguration
+instanceKlass org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/admin/SpringApplicationAdminJmxAutoConfiguration
+instanceKlass org/springframework/boot/admin/SpringApplicationAdminMXBeanRegistrar
+instanceKlass org/springframework/jmx/export/naming/MetadataNamingStrategy
+instanceKlass org/springframework/jmx/export/naming/ObjectNamingStrategy
+instanceKlass org/springframework/boot/autoconfigure/jmx/JmxAutoConfiguration
+instanceKlass com/kangaroohy/milo/configuration/MiloProperties$Config
+instanceKlass com/kangaroohy/milo/configuration/MiloAutoConfiguration
+instanceKlass com/kangaroohy/milo/configuration/MiloProperties
+instanceKlass com/github/yulichang/config/MPJInterceptorConfig
+instanceKlass com/baomidou/mybatisplus/core/injector/AbstractSqlInjector
+instanceKlass com/github/yulichang/autoconfigure/consumer/MybatisPlusJoinIfExistsConsumer
+instanceKlass java/util/function/BiPredicate
+instanceKlass com/github/yulichang/interceptor/MPJInterceptor
+instanceKlass com/github/yulichang/autoconfigure/consumer/MybatisPlusJoinPropertiesConsumer
+instanceKlass com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration
+instanceKlass com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration$MPJSpringContext
+instanceKlass com/github/yulichang/toolkit/SpringContentUtils$SpringContext
+instanceKlass com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration$MPJMappingConfig
+instanceKlass com/baomidou/mybatisplus/core/injector/ISqlInjector
+instanceKlass com/github/yulichang/autoconfigure/MybatisPlusJoinProperties
+instanceKlass com/baomidou/mybatisplus/core/incrementer/IKeyGenerator
+instanceKlass com/baomidou/mybatisplus/core/config/GlobalConfig
+instanceKlass com/baomidou/mybatisplus/autoconfigure/MybatisPlusPropertiesCustomizer
+instanceKlass com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean
+instanceKlass org/mybatis/spring/SqlSessionTemplate
+instanceKlass org/apache/ibatis/session/SqlSession
+instanceKlass com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration
+instanceKlass com/baomidou/mybatisplus/autoconfigure/MybatisPlusProperties
+instanceKlass com/baomidou/mybatisplus/autoconfigure/MybatisPlusLanguageDriverAutoConfiguration
+instanceKlass org/springframework/boot/jdbc/metadata/DataSourcePoolMetadataProvider
+instanceKlass org/springframework/boot/jdbc/metadata/DataSourcePoolMetadata
+instanceKlass org/springframework/boot/autoconfigure/jdbc/metadata/DataSourcePoolMetadataProvidersConfiguration$HikariPoolDataSourceMetadataProviderConfiguration
+instanceKlass org/springframework/boot/autoconfigure/condition/OnBeanCondition$SingleCandidateBeanSearchSpec$$Lambda$246
+instanceKlass org/springframework/boot/autoconfigure/jdbc/DataSourceInitializationConfiguration
+instanceKlass org/springframework/boot/autoconfigure/jdbc/metadata/DataSourcePoolMetadataProvidersConfiguration
+instanceKlass org/springframework/boot/autoconfigure/jdbc/DataSourceProperties
+instanceKlass org/springframework/boot/autoconfigure/jdbc/DataSourceInitializerPostProcessor
+instanceKlass org/springframework/boot/autoconfigure/jdbc/DataSourceInitializerInvoker
+instanceKlass javax/sql/XADataSource
+instanceKlass com/baomidou/dynamic/datasource/processor/DsProcessor
+instanceKlass com/baomidou/dynamic/datasource/spring/boot/autoconfigure/DynamicDataSourceAutoConfiguration
+instanceKlass com/baomidou/dynamic/datasource/provider/DynamicDataSourceProvider
+instanceKlass com/baomidou/dynamic/datasource/spring/boot/autoconfigure/druid/DruidDynamicDataSourceConfiguration
+instanceKlass org/springframework/boot/autoconfigure/jdbc/DataSourceAutoConfiguration
+instanceKlass com/baomidou/dynamic/datasource/spring/boot/autoconfigure/DynamicDataSourceCreatorAutoConfiguration
+instanceKlass com/baomidou/dynamic/datasource/creator/DefaultDataSourceCreator
+instanceKlass com/baomidou/dynamic/datasource/spring/boot/autoconfigure/DynamicDataSourceProperties
+instanceKlass com/baomidou/dynamic/datasource/spring/boot/autoconfigure/DynamicDataSourceCreatorAutoConfiguration$DruidDataSourceCreatorConfiguration
+instanceKlass com/baomidou/dynamic/datasource/spring/boot/autoconfigure/DynamicDataSourceCreatorAutoConfiguration$HikariDataSourceCreatorConfiguration
+instanceKlass com/alibaba/cloud/nacos/ribbon/RibbonNacosAutoConfiguration
+instanceKlass com/baomidou/dynamic/datasource/creator/AbstractDataSourceCreator
+instanceKlass com/baomidou/dynamic/datasource/creator/DataSourceCreator
+instanceKlass com/alibaba/cloud/nacos/ribbon/NacosRibbonClientConfiguration
+instanceKlass org/springframework/cloud/netflix/ribbon/RibbonClientSpecification
+instanceKlass org/springframework/cloud/context/named/NamedContextFactory$Specification
+instanceKlass org/springframework/cloud/client/loadbalancer/LoadBalancedRetryFactory
+instanceKlass org/springframework/cloud/context/named/NamedContextFactory
+instanceKlass org/springframework/cloud/netflix/ribbon/PropertiesFactory
+instanceKlass org/springframework/cloud/netflix/ribbon/RibbonApplicationContextInitializer
+instanceKlass org/springframework/cloud/client/actuator/HasFeatures
+instanceKlass org/springframework/cloud/netflix/ribbon/RibbonAutoConfiguration
+instanceKlass org/springframework/cloud/client/loadbalancer/LoadBalancerClient
+instanceKlass org/springframework/cloud/client/loadbalancer/ServiceInstanceChooser
+instanceKlass org/springframework/cloud/netflix/ribbon/ServerIntrospectorProperties
+instanceKlass org/springframework/cloud/netflix/ribbon/RibbonEagerLoadProperties
+instanceKlass org/springframework/cloud/client/loadbalancer/AsyncLoadBalancerAutoConfiguration
+instanceKlass org/springframework/cloud/client/loadbalancer/LoadBalancerAutoConfiguration
+instanceKlass org/springframework/cloud/client/discovery/DiscoveryClient
+instanceKlass com/alibaba/cloud/nacos/discovery/NacosWatch
+instanceKlass com/alibaba/cloud/nacos/discovery/NacosDiscoveryClientAutoConfiguration
+instanceKlass org/springframework/cloud/client/CommonsClientAutoConfiguration
+instanceKlass org/springframework/cloud/client/discovery/simple/SimpleDiscoveryClientAutoConfiguration
+instanceKlass org/springframework/cloud/client/serviceregistry/AbstractAutoServiceRegistration
+instanceKlass org/springframework/cloud/client/serviceregistry/AutoServiceRegistration
+instanceKlass com/alibaba/cloud/nacos/registry/NacosServiceRegistry
+instanceKlass org/springframework/cloud/client/serviceregistry/ServiceRegistry
+instanceKlass com/alibaba/cloud/nacos/registry/NacosRegistration
+instanceKlass org/springframework/cloud/client/serviceregistry/Registration
+instanceKlass org/springframework/cloud/client/ServiceInstance
+instanceKlass com/alibaba/cloud/nacos/NacosDiscoveryAutoConfiguration
+instanceKlass org/springframework/cloud/client/serviceregistry/AutoServiceRegistrationAutoConfiguration
+instanceKlass org/springframework/boot/web/servlet/filter/OrderedFilter
+instanceKlass org/springframework/web/context/request/RequestContextListener
+instanceKlass javax/servlet/ServletRequestListener
+instanceKlass org/springframework/boot/autoconfigure/condition/OnBeanCondition$BeanSearchSpec$$Lambda$245
+instanceKlass org/springframework/boot/autoconfigure/condition/OnBeanCondition$$Lambda$244
+instanceKlass org/springframework/boot/autoconfigure/http/HttpMessageConverters
+instanceKlass org/springframework/web/servlet/config/annotation/ResourceHandlerRegistration
+instanceKlass org/springframework/web/servlet/LocaleResolver
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter
+instanceKlass org/springframework/web/servlet/mvc/HttpRequestHandlerAdapter
+instanceKlass org/springframework/web/method/support/CompositeUriComponentsContributor
+instanceKlass org/springframework/web/method/support/UriComponentsContributor
+instanceKlass org/springframework/web/servlet/handler/HandlerMappingIntrospector
+instanceKlass org/springframework/web/servlet/mvc/SimpleControllerHandlerAdapter
+instanceKlass org/springframework/web/servlet/resource/ResourceUrlProvider
+instanceKlass org/springframework/web/util/UrlPathHelper
+instanceKlass javax/servlet/ServletContext
+instanceKlass org/springframework/web/bind/support/ConfigurableWebBindingInitializer
+instanceKlass org/springframework/web/bind/support/WebBindingInitializer
+instanceKlass org/springframework/web/servlet/handler/AbstractHandlerExceptionResolver
+instanceKlass org/springframework/web/servlet/HandlerAdapter
+instanceKlass org/springframework/web/accept/ContentNegotiationManager
+instanceKlass org/springframework/web/accept/MediaTypeFileExtensionResolver
+instanceKlass org/springframework/web/servlet/handler/MatchableHandlerMapping
+instanceKlass org/springframework/web/cors/CorsConfigurationSource
+instanceKlass org/springframework/web/HttpRequestHandler
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter$FaviconConfiguration
+instanceKlass org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupport
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration$PreserveErrorControllerTargetClassPostProcessor
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/error/AbstractErrorController
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration$ErrorPageCustomizer
+instanceKlass org/springframework/boot/web/server/ErrorPageRegistrar
+instanceKlass org/springframework/boot/web/servlet/error/DefaultErrorAttributes
+instanceKlass org/springframework/web/servlet/HandlerExceptionResolver
+instanceKlass org/springframework/boot/web/servlet/error/ErrorController
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration
+instanceKlass org/springframework/boot/web/servlet/error/ErrorAttributes
+instanceKlass org/springframework/boot/autoconfigure/web/ResourceProperties
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/error/DefaultErrorViewResolver
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/error/ErrorViewResolver
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration$DefaultErrorViewResolverConfiguration
+instanceKlass org/springframework/web/servlet/View
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration
+instanceKlass org/springframework/web/servlet/ViewResolver
+instanceKlass org/springframework/validation/beanvalidation/SpringValidatorAdapter
+instanceKlass org/springframework/validation/SmartValidator
+instanceKlass org/springframework/boot/autoconfigure/validation/ValidationAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/task/TaskExecutionAutoConfiguration
+instanceKlass org/springframework/cloud/netflix/archaius/ArchaiusAutoConfiguration
+instanceKlass org/springframework/cloud/netflix/archaius/ArchaiusAutoConfiguration$PropagateEventsConfiguration
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/DispatcherServletAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/DispatcherServletPath
+instanceKlass org/springframework/boot/task/TaskExecutorBuilder
+instanceKlass org/springframework/boot/autoconfigure/task/TaskExecutionProperties
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/DispatcherServletAutoConfiguration$DispatcherServletRegistrationConfiguration
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/DispatcherServletAutoConfiguration$DispatcherServletConfiguration
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/WebMvcProperties
+instanceKlass org/springframework/boot/autoconfigure/http/HttpProperties
+instanceKlass org/springframework/boot/web/server/ErrorPageRegistrarBeanPostProcessor
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/TomcatServletWebServerFactoryCustomizer
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryCustomizer
+instanceKlass org/springframework/boot/web/server/AbstractConfigurableWebServerFactory
+instanceKlass org/springframework/boot/web/servlet/server/ConfigurableServletWebServerFactory
+instanceKlass org/springframework/boot/web/embedded/tomcat/ConfigurableTomcatWebServerFactory
+instanceKlass org/springframework/boot/web/server/ConfigurableWebServerFactory
+instanceKlass org/springframework/boot/web/server/ErrorPageRegistry
+instanceKlass org/springframework/boot/web/server/WebServerFactory
+instanceKlass org/springframework/boot/web/server/WebServerFactoryCustomizerBeanPostProcessor
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryConfiguration$EmbeddedUndertow
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryConfiguration$EmbeddedJetty
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryConfiguration$EmbeddedTomcat
+instanceKlass org/springframework/boot/autoconfigure/web/ServerProperties
+instanceKlass org/springframework/boot/autoconfigure/websocket/servlet/WebSocketServletAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/websocket/servlet/TomcatWebSocketServletWebServerCustomizer
+instanceKlass org/springframework/boot/web/server/WebServerFactoryCustomizer
+instanceKlass org/springframework/boot/autoconfigure/websocket/servlet/WebSocketServletAutoConfiguration$TomcatWebSocketConfiguration
+instanceKlass org/springframework/boot/web/servlet/server/ServletWebServerFactory
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryAutoConfiguration
+instanceKlass org/springframework/cloud/client/serviceregistry/AutoServiceRegistrationConfiguration
+instanceKlass org/springframework/beans/factory/config/ConstructorArgumentValues$$Lambda$243
+instanceKlass org/springframework/beans/factory/config/ConstructorArgumentValues$$Lambda$242
+instanceKlass org/springframework/beans/factory/config/ConstructorArgumentValues$$Lambda$241
+instanceKlass org/springframework/web/accept/ContentNegotiationStrategy
+instanceKlass org/springframework/security/authentication/AuthenticationTrustResolver
+instanceKlass org/springframework/security/crypto/password/PasswordEncoder
+instanceKlass org/springframework/security/config/annotation/web/HttpSecurityBuilder
+instanceKlass org/springframework/security/access/prepost/PreInvocationAuthorizationAdvice
+instanceKlass org/springframework/security/access/intercept/AfterInvocationManager
+instanceKlass org/springframework/security/access/AccessDecisionManager
+instanceKlass org/springframework/security/access/expression/method/MethodSecurityExpressionHandler
+instanceKlass org/springframework/security/access/intercept/RunAsManager
+instanceKlass org/springframework/security/access/method/MethodSecurityMetadataSource
+instanceKlass org/springframework/security/access/SecurityMetadataSource
+instanceKlass org/springframework/web/servlet/config/annotation/CorsRegistry
+instanceKlass org/springframework/web/servlet/config/annotation/InterceptorRegistry
+instanceKlass org/springframework/web/servlet/config/annotation/ViewControllerRegistry
+instanceKlass org/springframework/web/servlet/config/annotation/ViewResolverRegistry
+instanceKlass org/springframework/web/servlet/config/annotation/AsyncSupportConfigurer
+instanceKlass org/springframework/web/servlet/config/annotation/ResourceHandlerRegistry
+instanceKlass org/springframework/validation/MessageCodesResolver
+instanceKlass org/springframework/web/servlet/config/annotation/DefaultServletHandlerConfigurer
+instanceKlass org/springframework/web/servlet/config/annotation/ContentNegotiationConfigurer
+instanceKlass org/springframework/web/servlet/config/annotation/PathMatchConfigurer
+instanceKlass org/springframework/web/servlet/support/RequestDataValueProcessor
+instanceKlass org/springframework/security/config/annotation/web/configuration/WebMvcSecurityConfiguration
+instanceKlass org/springframework/security/web/FilterInvocation
+instanceKlass org/springframework/security/context/DelegatingApplicationListener
+instanceKlass org/springframework/security/access/expression/SecurityExpressionHandler
+instanceKlass org/springframework/security/web/access/WebInvocationPrivilegeEvaluator
+instanceKlass org/springframework/security/config/annotation/web/configuration/AutowiredWebSecurityConfigurersIgnoreParents
+instanceKlass org/springframework/security/config/annotation/AbstractSecurityBuilder
+instanceKlass org/springframework/security/config/annotation/authentication/ProviderManagerBuilder
+instanceKlass org/springframework/security/config/annotation/SecurityBuilder
+instanceKlass org/springframework/security/config/annotation/authentication/configuration/GlobalAuthenticationConfigurerAdapter
+instanceKlass org/springframework/data/redis/core/RedisAccessor
+instanceKlass org/springframework/cache/annotation/CachingConfigurer
+instanceKlass org/springframework/cache/interceptor/CacheOperationSource
+instanceKlass org/aopalliance/intercept/MethodInterceptor
+instanceKlass org/aopalliance/intercept/Interceptor
+instanceKlass org/aopalliance/aop/Advice
+instanceKlass org/springframework/context/support/ApplicationObjectSupport
+instanceKlass springfox/documentation/spring/web/plugins/Docket
+instanceKlass springfox/documentation/service/ApiInfo
+instanceKlass com/baomidou/mybatisplus/extension/plugins/MybatisPlusInterceptor
+instanceKlass org/apache/ibatis/plugin/Interceptor
+instanceKlass com/github/xingshuangs/iot/protocol/s7/serializer/S7Serializer
+instanceKlass com/github/xingshuangs/iot/protocol/common/serializer/IPLCSerializable
+instanceKlass org/springframework/cloud/client/serviceregistry/AutoServiceRegistrationProperties
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationPackages$BasePackages
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationPackages
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationPackages$PackageImport
+instanceKlass springfox/documentation/spi/service/contexts/DocumentationContext
+instanceKlass springfox/documentation/spi/schema/contexts/ModelContext
+instanceKlass org/springframework/plugin/core/PluginRegistrySupport
+instanceKlass org/springframework/plugin/core/PluginRegistry
+instanceKlass org/springframework/plugin/metadata/SimplePluginMetadata
+instanceKlass org/springframework/plugin/metadata/PluginMetadata
+instanceKlass org/springframework/plugin/core/support/AbstractTypeAwareSupport
+instanceKlass org/springframework/beans/factory/config/ConstructorArgumentValues$ValueHolder
+instanceKlass org/springframework/beans/factory/config/ConstructorArgumentValues
+instanceKlass org/springframework/aop/support/AbstractPointcutAdvisor
+instanceKlass org/springframework/aop/PointcutAdvisor
+instanceKlass org/springframework/aop/Advisor
+instanceKlass org/springframework/security/config/annotation/configuration/ObjectPostProcessorConfiguration
+instanceKlass org/springframework/aop/config/AopConfigUtils
+instanceKlass org/mybatis/spring/annotation/MapperScannerRegistrar$$Lambda$240
+instanceKlass org/mybatis/spring/annotation/MapperScannerRegistrar$$Lambda$239
+instanceKlass org/mybatis/spring/annotation/MapperScannerRegistrar$$Lambda$238
+instanceKlass org/mybatis/spring/mapper/MapperScannerConfigurer
+instanceKlass feign/hystrix/HystrixFeign
+instanceKlass org/apache/http/client/HttpClient
+instanceKlass org/springframework/cloud/client/ConditionalOnDiscoveryEnabled
+instanceKlass org/springframework/messaging/simp/config/AbstractMessageBrokerConfiguration
+instanceKlass org/springframework/transaction/annotation/AbstractTransactionManagementConfiguration
+instanceKlass org/springframework/transaction/annotation/TransactionManagementConfigurationSelector$1
+instanceKlass org/springframework/transaction/annotation/EnableTransactionManagement
+instanceKlass org/thymeleaf/dialect/AbstractDialect
+instanceKlass org/thymeleaf/dialect/IExpressionObjectDialect
+instanceKlass org/thymeleaf/dialect/IDialect
+instanceKlass org/springframework/web/servlet/view/freemarker/FreeMarkerConfig
+instanceKlass org/springframework/boot/autoconfigure/condition/ConditionalOnNotWebApplication
+instanceKlass org/springframework/data/querydsl/QuerydslUtils
+instanceKlass org/springframework/data/web/config/EnableSpringDataWebSupport$SpringDataWebConfigurationImportSelector$$Lambda$237
+instanceKlass org/springframework/data/web/config/SpringDataJacksonModules
+instanceKlass org/springframework/data/web/config/EnableSpringDataWebSupport$SpringDataWebConfigurationImportSelector$$Lambda$236
+instanceKlass org/springframework/data/web/config/EnableSpringDataWebSupport$SpringDataWebConfigurationImportSelector$$Lambda$235
+instanceKlass org/springframework/data/web/config/SpringDataWebConfiguration
+instanceKlass org/springframework/data/web/config/EnableSpringDataWebSupport$SpringDataWebConfigurationImportSelector$$Lambda$234
+instanceKlass org/springframework/data/web/config/EnableSpringDataWebSupport$SpringDataWebConfigurationImportSelector$$Lambda$233
+instanceKlass org/springframework/data/web/config/EnableSpringDataWebSupport$SpringDataWebConfigurationImportSelector$$Lambda$232
+instanceKlass org/springframework/data/web/config/ProjectingArgumentResolverRegistrar
+instanceKlass org/springframework/data/web/config/EnableSpringDataWebSupport$SpringDataWebConfigurationImportSelector$$Lambda$231
+instanceKlass org/springframework/data/web/config/EnableSpringDataWebSupport$QuerydslActivator
+instanceKlass org/springframework/data/web/config/EnableSpringDataWebSupport$SpringDataWebConfigurationImportSelector
+instanceKlass org/springframework/data/web/config/EnableSpringDataWebSupport
+instanceKlass org/springframework/boot/autoconfigure/data/AbstractRepositoryConfigurationSourceSupport
+instanceKlass org/springframework/cache/caffeine/CaffeineCacheManager
+instanceKlass org/springframework/cache/support/AbstractCacheManager
+instanceKlass org/springframework/boot/autoconfigure/cache/CacheConfigurations$$Lambda$230
+instanceKlass org/springframework/boot/autoconfigure/cache/NoOpCacheConfiguration
+instanceKlass org/springframework/boot/autoconfigure/cache/SimpleCacheConfiguration
+instanceKlass org/springframework/boot/autoconfigure/cache/CaffeineCacheConfiguration
+instanceKlass org/springframework/boot/autoconfigure/cache/RedisCacheConfiguration
+instanceKlass org/springframework/boot/autoconfigure/cache/CouchbaseCacheConfiguration
+instanceKlass org/springframework/boot/autoconfigure/cache/JCacheCacheConfiguration
+instanceKlass org/springframework/boot/autoconfigure/cache/InfinispanCacheConfiguration
+instanceKlass org/springframework/boot/autoconfigure/cache/HazelcastCacheConfiguration
+instanceKlass org/springframework/boot/autoconfigure/cache/EhCacheCacheConfiguration
+instanceKlass org/springframework/boot/autoconfigure/cache/GenericCacheConfiguration
+instanceKlass org/springframework/boot/autoconfigure/cache/CacheConfigurations
+instanceKlass org/springframework/boot/autoconfigure/cache/CacheAutoConfiguration$CacheConfigurationImportSelector
+instanceKlass redis/clients/jedis/BinaryJedis
+instanceKlass redis/clients/jedis/BinaryScriptingCommands
+instanceKlass redis/clients/jedis/AdvancedBinaryJedisCommands
+instanceKlass redis/clients/jedis/MultiKeyBinaryCommands
+instanceKlass redis/clients/jedis/BinaryJedisCommands
+instanceKlass redis/clients/jedis/SentinelCommands
+instanceKlass redis/clients/jedis/ClusterCommands
+instanceKlass redis/clients/jedis/BasicCommands
+instanceKlass redis/clients/jedis/ScriptingCommands
+instanceKlass redis/clients/jedis/AdvancedJedisCommands
+instanceKlass redis/clients/jedis/MultiKeyCommands
+instanceKlass redis/clients/jedis/JedisCommands
+instanceKlass org/springframework/data/redis/connection/AbstractRedisConnection
+instanceKlass org/springframework/data/redis/connection/DefaultedRedisConnection
+instanceKlass org/springframework/data/redis/connection/RedisConnection
+instanceKlass org/springframework/data/redis/connection/RedisCommands
+instanceKlass org/springframework/data/redis/connection/RedisHyperLogLogCommands
+instanceKlass org/springframework/data/redis/connection/RedisGeoCommands
+instanceKlass org/springframework/data/redis/connection/RedisScriptingCommands
+instanceKlass org/springframework/data/redis/connection/RedisServerCommands
+instanceKlass org/springframework/data/redis/connection/RedisConnectionCommands
+instanceKlass org/springframework/data/redis/connection/RedisPubSubCommands
+instanceKlass org/springframework/data/redis/connection/RedisTxCommands
+instanceKlass org/springframework/data/redis/connection/RedisHashCommands
+instanceKlass org/springframework/data/redis/connection/RedisZSetCommands
+instanceKlass org/springframework/data/redis/connection/RedisSetCommands
+instanceKlass org/springframework/data/redis/connection/RedisListCommands
+instanceKlass org/springframework/data/redis/connection/RedisStringCommands
+instanceKlass org/springframework/data/redis/connection/RedisKeyCommands
+instanceKlass org/apache/commons/pool2/UsageTracking
+instanceKlass org/apache/commons/pool2/impl/GenericObjectPoolMXBean
+instanceKlass org/apache/commons/pool2/ObjectPool
+instanceKlass org/springframework/context/annotation/AspectJAutoProxyRegistrar
+instanceKlass org/apache/commons/pool2/BaseObject
+instanceKlass org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean
+instanceKlass org/apache/commons/pool2/KeyedObjectPool
+instanceKlass com/kangaroohy/milo/service/MiloService
+instanceKlass com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration$AutoConfiguredMapperScannerRegistrar
+instanceKlass org/springframework/boot/autoconfigure/jdbc/DataSourceInitializationConfiguration$Registrar
+instanceKlass org/springframework/boot/jdbc/DataSourceBuilder
+instanceKlass com/alibaba/druid/pool/WrapperAdapter
+instanceKlass com/alibaba/druid/proxy/jdbc/DataSourceProxy
+instanceKlass javax/sql/ConnectionPoolDataSource
+instanceKlass javax/naming/Referenceable
+instanceKlass com/alibaba/druid/pool/ManagedDataSource
+instanceKlass com/alibaba/druid/pool/DruidDataSourceMBean
+instanceKlass com/alibaba/druid/pool/DruidAbstractDataSourceMBean
+instanceKlass com/zaxxer/hikari/HikariConfig
+instanceKlass com/zaxxer/hikari/HikariConfigMXBean
+instanceKlass com/netflix/client/ClientRequest
+instanceKlass org/springframework/cloud/netflix/ribbon/RibbonAutoConfiguration$ConditionalOnRibbonRestClient
+instanceKlass com/netflix/client/IClient
+instanceKlass org/springframework/http/client/support/AsyncHttpAccessor
+instanceKlass org/springframework/web/client/AsyncRestOperations
+instanceKlass com/netflix/ribbon/Ribbon
+instanceKlass org/springframework/boot/autoconfigure/condition/AbstractNestedCondition$MemberOutcomes
+instanceKlass org/springframework/boot/autoconfigure/condition/AbstractNestedCondition$MemberConditions$$Lambda$229
+instanceKlass org/springframework/boot/autoconfigure/condition/AbstractNestedCondition$MemberMatchOutcomes
+instanceKlass org/springframework/boot/autoconfigure/condition/AbstractNestedCondition$MemberConditions
+instanceKlass com/alibaba/cloud/nacos/NacosDiscoveryProperties
+instanceKlass org/springframework/boot/autoconfigure/web/ResourceProperties$Chain
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ConditionalOnMissingFilterBean
+instanceKlass org/springframework/boot/autoconfigure/web/ConditionalOnEnabledResourceChain
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/JspTemplateAvailabilityProvider
+instanceKlass org/springframework/boot/autoconfigure/thymeleaf/ThymeleafTemplateAvailabilityProvider
+instanceKlass org/springframework/boot/autoconfigure/mustache/MustacheTemplateAvailabilityProvider
+instanceKlass org/springframework/boot/autoconfigure/template/PathBasedTemplateAvailabilityProvider$TemplateAvailabilityProperties
+instanceKlass org/springframework/boot/autoconfigure/template/PathBasedTemplateAvailabilityProvider
+instanceKlass org/springframework/boot/autoconfigure/template/TemplateAvailabilityProviders$NoTemplateAvailabilityProvider
+instanceKlass org/springframework/boot/autoconfigure/template/TemplateAvailabilityProvider
+instanceKlass org/springframework/boot/autoconfigure/template/TemplateAvailabilityProviders
+instanceKlass org/springframework/boot/autoconfigure/validation/PrimaryDefaultValidatorPostProcessor
+instanceKlass org/springframework/boot/autoconfigure/condition/ConditionalOnResource
+instanceKlass org/apache/commons/configuration/ConfigurationBuilder
+instanceKlass org/apache/commons/configuration/event/EventSource
+instanceKlass org/apache/commons/configuration/event/ConfigurationListener
+instanceKlass com/netflix/config/AggregatedConfiguration
+instanceKlass org/apache/commons/configuration/Configuration
+instanceKlass org/springframework/boot/web/servlet/RegistrationBean
+instanceKlass org/springframework/boot/web/servlet/ServletContextInitializer
+instanceKlass springfox/documentation/swagger/web/ApiResourceController
+instanceKlass springfox/documentation/swagger/web/InMemorySwaggerResourcesProvider
+instanceKlass springfox/documentation/swagger/web/SwaggerResourcesProvider
+instanceKlass springfox/documentation/swagger/web/ClassOrApiAnnotationResourceGrouping
+instanceKlass springfox/documentation/swagger/web/SwaggerApiListingReader
+instanceKlass springfox/documentation/swagger/readers/parameter/SwaggerExpandedParameterBuilder
+instanceKlass springfox/documentation/swagger/readers/parameter/ApiParamParameterBuilder
+instanceKlass springfox/documentation/swagger/readers/operation/SwaggerOperationTagsReader
+instanceKlass springfox/documentation/swagger/readers/operation/OperationNotesReader
+instanceKlass springfox/documentation/swagger/readers/operation/OperationPositionReader
+instanceKlass springfox/documentation/swagger/readers/operation/OperationNicknameIntoUniqueIdReader
+instanceKlass springfox/documentation/swagger/readers/operation/SwaggerResponseMessageReader
+instanceKlass springfox/documentation/swagger/readers/operation/OperationSummaryReader
+instanceKlass springfox/documentation/swagger/readers/operation/OperationHiddenReader
+instanceKlass springfox/documentation/swagger/readers/operation/OperationAuthReader
+instanceKlass springfox/documentation/swagger/readers/operation/OperationImplicitParametersReader
+instanceKlass springfox/documentation/swagger/readers/operation/OperationHttpMethodReader
+instanceKlass springfox/documentation/swagger/readers/operation/SwaggerMediaTypeReader
+instanceKlass springfox/documentation/swagger/readers/operation/SwaggerOperationModelsProvider
+instanceKlass springfox/documentation/swagger/readers/operation/SwaggerOperationResponseClassReader
+instanceKlass springfox/documentation/swagger/readers/operation/VendorExtensionsReader
+instanceKlass springfox/documentation/swagger/readers/operation/OperationImplicitParameterReader
+instanceKlass springfox/documentation/swagger/schema/ApiModelBuilder
+instanceKlass springfox/documentation/schema/DefaultTypeNameProvider
+instanceKlass springfox/documentation/swagger/schema/ApiModelPropertyPropertyBuilder
+instanceKlass springfox/documentation/schema/DefaultModelProvider
+instanceKlass springfox/documentation/schema/JacksonEnumTypeDeterminer
+instanceKlass springfox/documentation/spi/schema/EnumTypeDeterminer
+instanceKlass springfox/documentation/schema/DefaultModelDependencyProvider
+instanceKlass springfox/documentation/schema/CachingModelProvider
+instanceKlass springfox/documentation/schema/ModelProvider
+instanceKlass springfox/documentation/schema/property/FactoryMethodProvider
+instanceKlass springfox/documentation/schema/property/OptimizedModelPropertiesProvider
+instanceKlass springfox/documentation/schema/property/XmlPropertyPlugin
+instanceKlass springfox/documentation/schema/property/field/FieldProvider
+instanceKlass springfox/documentation/schema/property/bean/AccessorsProvider
+instanceKlass springfox/documentation/schema/property/ObjectMapperBeanPropertyNamingStrategy
+instanceKlass springfox/documentation/schema/property/BeanPropertyNamingStrategy
+instanceKlass springfox/documentation/schema/property/CachingModelPropertiesProvider
+instanceKlass springfox/documentation/schema/property/ModelPropertiesProvider
+instanceKlass springfox/documentation/schema/plugins/SchemaPluginsManager
+instanceKlass springfox/documentation/schema/plugins/XmlModelPlugin
+instanceKlass springfox/documentation/schema/plugins/PropertyDiscriminatorBasedInheritancePlugin
+instanceKlass springfox/documentation/schema/TypeNameExtractor
+instanceKlass springfox/documentation/schema/CachingModelDependencyProvider
+instanceKlass springfox/documentation/schema/ModelDependencyProvider
+instanceKlass springfox/documentation/schema/JacksonJsonViewProvider
+instanceKlass springfox/documentation/spring/web/paths/OperationPathDecorator
+instanceKlass springfox/documentation/spring/web/paths/PathSanitizer
+instanceKlass springfox/documentation/spring/web/paths/PathMappingDecorator
+instanceKlass springfox/documentation/spring/web/paths/QueryStringUriTemplateDecorator
+instanceKlass springfox/documentation/spring/web/plugins/WebMvcRequestHandlerProvider
+instanceKlass springfox/documentation/spi/service/RequestHandlerProvider
+instanceKlass springfox/documentation/spring/web/plugins/DocumentationPluginsManager
+instanceKlass springfox/documentation/spring/web/plugins/AbstractDocumentationPluginsBootstrapper
+instanceKlass org/springframework/context/SmartLifecycle
+instanceKlass org/springframework/context/Phased
+instanceKlass springfox/documentation/spring/web/readers/parameter/ExpandedParameterBuilder
+instanceKlass springfox/documentation/spring/web/readers/parameter/ParameterNameReader
+instanceKlass springfox/documentation/spring/web/readers/parameter/ParameterDefaultReader
+instanceKlass springfox/documentation/spring/web/readers/parameter/ParameterDataTypeReader
+instanceKlass springfox/documentation/spring/web/readers/parameter/ParameterRequiredReader
+instanceKlass springfox/documentation/spring/web/readers/parameter/ParameterTypeReader
+instanceKlass springfox/documentation/spring/web/readers/parameter/ModelAttributeParameterExpander
+instanceKlass springfox/documentation/spring/web/readers/parameter/ParameterMultiplesReader
+instanceKlass springfox/documentation/spring/web/readers/operation/CachingOperationNameGenerator
+instanceKlass springfox/documentation/OperationNameGenerator
+instanceKlass springfox/documentation/spring/web/readers/operation/OperationResponseClassReader
+instanceKlass springfox/documentation/spring/web/readers/operation/AbstractOperationParameterRequestConditionReader
+instanceKlass springfox/documentation/spring/web/readers/operation/DefaultOperationReader
+instanceKlass springfox/documentation/spring/web/readers/operation/ApiOperationReader
+instanceKlass springfox/documentation/spring/web/readers/operation/OperationTagsReader
+instanceKlass springfox/documentation/spring/web/readers/operation/DefaultTagsProvider
+instanceKlass springfox/documentation/spring/web/readers/operation/OperationParameterReader
+instanceKlass springfox/documentation/spring/web/readers/operation/ResponseMessagesReader
+instanceKlass springfox/documentation/spring/web/readers/operation/OperationDeprecatedReader
+instanceKlass springfox/documentation/spring/web/readers/operation/OperationModelsProvider
+instanceKlass springfox/documentation/spring/web/scanners/ApiDescriptionLookup
+instanceKlass springfox/documentation/spring/web/scanners/ApiModelReader
+instanceKlass springfox/documentation/spring/web/scanners/ApiListingScanner
+instanceKlass springfox/documentation/spring/web/scanners/MediaTypeReader
+instanceKlass springfox/documentation/spring/web/scanners/CachingOperationReader
+instanceKlass springfox/documentation/spring/web/readers/operation/OperationReader
+instanceKlass springfox/documentation/spring/web/scanners/ApiListingReader
+instanceKlass springfox/documentation/spring/web/scanners/ApiDescriptionReader
+instanceKlass springfox/documentation/spring/web/scanners/ApiDocumentationScanner
+instanceKlass springfox/documentation/spring/web/scanners/ApiListingReferenceScanner
+instanceKlass springfox/documentation/swagger2/mappers/SecurityMapper
+instanceKlass springfox/documentation/swagger2/mappers/LicenseMapper
+instanceKlass springfox/documentation/swagger2/mappers/ModelMapper
+instanceKlass springfox/documentation/swagger2/mappers/ParameterMapper
+instanceKlass springfox/documentation/swagger2/mappers/VendorExtensionsMapper
+instanceKlass org/springframework/security/core/userdetails/UserDetailsService
+instanceKlass com/mes/userinfo/service/SysUserService
+instanceKlass com/mes/userinfo/service/SysUserRoleService
+instanceKlass com/mes/userinfo/controller/SysUserController
+instanceKlass com/mes/role/service/SysRoleService
+instanceKlass com/mes/role/service/SysRoleMenuService
+instanceKlass com/mes/role/controller/SysRoleController
+instanceKlass com/mes/menu/service/SysMenuService
+instanceKlass com/mes/menu/controller/SysMenuController
+instanceKlass com/mes/common/handler/LoginSuccessHandler
+instanceKlass org/springframework/security/web/authentication/AuthenticationSuccessHandler
+instanceKlass com/mes/common/handler/LoginFailureHandler
+instanceKlass org/springframework/security/web/authentication/AuthenticationFailureHandler
+instanceKlass com/mes/common/handler/JwtLogoutSuccessHandler
+instanceKlass org/springframework/security/web/authentication/logout/LogoutSuccessHandler
+instanceKlass com/mes/common/handler/JwtAuthenticationEntryPoint
+instanceKlass org/springframework/security/web/AuthenticationEntryPoint
+instanceKlass com/mes/common/handler/JwtAccessDeniedHandler
+instanceKlass org/springframework/security/web/access/AccessDeniedHandler
+instanceKlass com/mes/common/config/RedisConfig
+instanceKlass com/mes/work_assignment/service/WorkAssignmentService
+instanceKlass com/mes/work_assignment/controller/WorkAssignmentController
+instanceKlass com/mes/utils/RedisUtil
+instanceKlass com/mes/tools/WebSocketServer
+instanceKlass com/mes/temperingglass/service/TemperingGlassInfoService
+instanceKlass com/mes/sysdict/service/SysDictTypeService
+instanceKlass com/mes/sysdict/service/SysDictDataService
+instanceKlass com/mes/sysconfig/service/SysConfigService
+instanceKlass com/mes/sysconfig/controller/SysConfigController
+instanceKlass com/mes/rawglasstask/service/RawGlassStorageTaskService
+instanceKlass com/mes/rawglassstation/service/RawGlassStorageStationService
+instanceKlass com/mes/rawglassdetails/service/RawGlassStorageDetailsService
+instanceKlass com/mes/pp/service/ReportingWorkService
+instanceKlass com/mes/pp/service/OptimizeProjectService
+instanceKlass com/mes/pp/service/OptimizeLayoutService
+instanceKlass com/mes/pp/service/OptimizeHeatLayoutService
+instanceKlass com/mes/pp/service/OptimizeHeatDetailService
+instanceKlass com/mes/pp/service/OptimizeDetailService
+instanceKlass com/mes/pp/service/FlowCardService
+instanceKlass com/mes/pp/service/BasicDataProduceService
+instanceKlass com/mes/pp/controller/ReportingWorkDetailController
+instanceKlass com/mes/pp/controller/ReportingWorkController
+instanceKlass com/mes/pp/controller/OptimizeProjectController
+instanceKlass com/mes/pp/controller/OptimizeLayoutController
+instanceKlass com/mes/pp/controller/FlowCardController
+instanceKlass com/mes/pp/controller/DamageDetailsController
+instanceKlass com/mes/pp/controller/BasicDataProduceController
+instanceKlass com/mes/order/service/OrdersService
+instanceKlass com/mes/order/controller/OrderController
+instanceKlass com/mes/opctask/service/LoadGlassDeviceTaskHistoryService
+instanceKlass com/mes/opctask/service/impl/LoadGlassDeviceOneTaskServiceImpl
+instanceKlass com/mes/opctask/service/LoadGlassDeviceTaskService
+instanceKlass com/mes/largenscreen/service/impl/LargenScreenServiceImpl
+instanceKlass com/mes/largenscreen/service/LargenScreenService
+instanceKlass com/mes/largenscreen/controller/LargenScreenController
+instanceKlass com/mes/glassinfo/service/GlassInfoService
+instanceKlass com/mes/glassinfo/controller/GlassInfoController
+instanceKlass com/mes/engineering/service/EngineeringService
+instanceKlass com/baomidou/mybatisplus/extension/service/impl/ServiceImpl
+instanceKlass com/mes/damage/service/DamageService
+instanceKlass com/github/yulichang/base/MPJBaseService
+instanceKlass com/baomidou/mybatisplus/extension/service/IService
+instanceKlass com/mes/damage/controller/DamageController
+instanceKlass com/mes/common/handler/MyMetaObjectHandler
+instanceKlass com/baomidou/mybatisplus/core/handlers/MetaObjectHandler
+instanceKlass com/mes/common/exception/GlobalExceptionHandler
+instanceKlass com/mes/common/config/WebSocketConfig
+instanceKlass com/mes/common/config/Swagger2Config
+instanceKlass com/mes/common/config/MybatisPlusConfig
+instanceKlass com/mes/bigstoragecagetask/service/impl/BigStorageCageTaskServiceImpl
+instanceKlass com/mes/bigstoragecagetask/service/BigStorageCageTaskService
+instanceKlass com/mes/rawglasstask/controller/RawGlassStorageTaskController
+instanceKlass com/mes/rawglassstation/controller/RawGlassStorageStationController
+instanceKlass com/mes/rawglassdetails/controller/RawGlassStorageDetailsController
+instanceKlass com/mes/job/RawGlassTask
+instanceKlass com/mes/job/RawGlassPushMessage
+instanceKlass com/mes/config/S7Config
+instanceKlass org/apache/coyote/UpgradeProtocol
+instanceKlass org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryAutoConfiguration$BeanPostProcessorsRegistrar
+instanceKlass org/apache/tomcat/websocket/server/WsSci
+instanceKlass javax/servlet/ServletContainerInitializer
+instanceKlass org/apache/catalina/startup/Tomcat
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationImportSelector$AutoConfigurationGroup$$Lambda$228
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationSorter$AutoConfigurationClasses$$Lambda$227
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationSorter$$Lambda$226
+instanceKlass com/github/yulichang/autoconfigure/conditional/OnSqlInjectorCondition
+instanceKlass com/github/yulichang/autoconfigure/conditional/JoinSqlInjectorCondition
+instanceKlass org/springframework/cloud/client/loadbalancer/LoadBalanced
+instanceKlass org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationRegistrar
+instanceKlass org/springframework/cloud/netflix/ribbon/RibbonClient
+instanceKlass org/springframework/cloud/netflix/ribbon/RibbonClients
+instanceKlass com/alibaba/cloud/nacos/ribbon/ConditionalOnRibbonNacos
+instanceKlass com/alibaba/cloud/nacos/ConditionalOnNacosDiscoveryEnabled
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigureAfter
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigureBefore
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationSorter$AutoConfigurationClass
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationSorter$AutoConfigurationClasses
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationSorter
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationImportSelector$AutoConfigurationGroup$$Lambda$225
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationImportSelector$AutoConfigurationGroup$$Lambda$224
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationImportSelector$AutoConfigurationGroup$$Lambda$223
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationImportSelector$AutoConfigurationGroup$$Lambda$222
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationImportSelector$AutoConfigurationGroup$$Lambda$221
+instanceKlass org/springframework/boot/autoconfigure/condition/ConditionEvaluationReportAutoConfigurationImportListener
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationImportListener
+instanceKlass org/springframework/security/config/annotation/ObjectPostProcessor
+instanceKlass org/springframework/mail/javamail/JavaMailSenderImpl
+instanceKlass org/springframework/mail/javamail/JavaMailSender
+instanceKlass org/springframework/mail/MailSender
+instanceKlass org/springframework/data/redis/connection/RedisConnectionFactory
+instanceKlass org/springframework/dao/support/PersistenceExceptionTranslator
+instanceKlass org/springframework/cache/interceptor/AbstractCacheInvoker
+instanceKlass feign/Client
+instanceKlass org/springframework/oxm/Unmarshaller
+instanceKlass org/springframework/oxm/Marshaller
+instanceKlass org/springframework/web/socket/config/annotation/WebSocketMessageBrokerConfigurer
+instanceKlass javax/websocket/server/ServerContainer
+instanceKlass javax/websocket/WebSocketContainer
+instanceKlass org/springframework/web/multipart/support/StandardServletMultipartResolver
+instanceKlass org/springframework/web/multipart/MultipartResolver
+instanceKlass javax/servlet/MultipartConfigElement
+instanceKlass org/springframework/web/filter/GenericFilterBean
+instanceKlass org/springframework/http/ReactiveHttpInputMessage
+instanceKlass org/springframework/http/HttpMessage
+instanceKlass org/springframework/http/server/reactive/HttpHandler
+instanceKlass org/springframework/http/client/support/HttpAccessor
+instanceKlass org/springframework/web/client/RestOperations
+instanceKlass org/thymeleaf/TemplateEngine
+instanceKlass org/springframework/ui/freemarker/FreeMarkerConfigurationFactory
+instanceKlass org/thymeleaf/spring5/ISpringTemplateEngine
+instanceKlass org/thymeleaf/ITemplateEngine
+instanceKlass freemarker/core/Configurable
+instanceKlass org/springframework/scheduling/TaskScheduler
+instanceKlass org/springframework/util/CustomizableThreadCreator
+instanceKlass freemarker/core/ParserConfiguration
+instanceKlass org/springframework/scheduling/SchedulingTaskExecutor
+instanceKlass org/springframework/core/task/AsyncListenableTaskExecutor
+instanceKlass org/springframework/core/task/AsyncTaskExecutor
+instanceKlass org/springframework/core/task/TaskExecutor
+instanceKlass org/springframework/security/config/annotation/web/reactive/EnableWebFluxSecurity
+instanceKlass org/springframework/web/servlet/config/annotation/WebMvcConfigurer
+instanceKlass org/springframework/data/web/PageableHandlerMethodArgumentResolver
+instanceKlass org/springframework/data/web/PageableArgumentResolver
+instanceKlass org/springframework/web/method/support/HandlerMethodArgumentResolver
+instanceKlass org/springframework/security/authentication/ReactiveAuthenticationManager
+instanceKlass org/springframework/security/web/context/AbstractSecurityWebApplicationInitializer
+instanceKlass org/springframework/web/WebApplicationInitializer
+instanceKlass org/springframework/data/redis/repository/configuration/EnableRedisRepositories
+instanceKlass org/springframework/security/authentication/AuthenticationManager
+instanceKlass org/springframework/data/redis/core/RedisOperations
+instanceKlass org/springframework/security/authentication/DefaultAuthenticationEventPublisher
+instanceKlass org/springframework/security/authentication/AuthenticationEventPublisher
+instanceKlass javax/naming/ldap/LdapContext
+instanceKlass javax/naming/directory/DirContext
+instanceKlass javax/activation/MimeType
+instanceKlass liquibase/integration/spring/SpringLiquibase
+instanceKlass liquibase/change/DatabaseChange
+instanceKlass org/springframework/aop/framework/ProxyConfig
+instanceKlass org/springframework/aop/framework/AopInfrastructureBean
+instanceKlass javax/servlet/ServletRegistration
+instanceKlass javax/servlet/Registration
+instanceKlass org/springframework/jmx/support/MBeanRegistrationSupport
+instanceKlass org/springframework/jmx/export/MBeanExportOperations
+instanceKlass org/springframework/cache/CacheManager
+instanceKlass org/springframework/transaction/PlatformTransactionManager
+instanceKlass org/springframework/context/annotation/EnableAspectJAutoProxy
+instanceKlass org/aspectj/weaver/AnnotatedElement
+instanceKlass org/springframework/jdbc/support/JdbcAccessor
+instanceKlass org/aspectj/lang/reflect/Advice
+instanceKlass org/springframework/jdbc/core/JdbcOperations
+instanceKlass org/aspectj/lang/annotation/Aspect
+instanceKlass org/mybatis/spring/SqlSessionFactoryBean
+instanceKlass org/apache/ibatis/session/SqlSessionFactory
+instanceKlass org/apache/ibatis/scripting/LanguageDriver
+instanceKlass feign/Feign
+instanceKlass com/netflix/loadbalancer/ILoadBalancer
+instanceKlass javax/sql/DataSource
+instanceKlass java/sql/Wrapper
+instanceKlass javax/sql/CommonDataSource
+instanceKlass org/springframework/http/codec/CodecConfigurer
+instanceKlass org/springframework/cloud/context/scope/GenericScope
+instanceKlass org/springframework/boot/autoconfigure/condition/OnClassCondition$ThreadedOutcomesResolver$$Lambda$220
+instanceKlass org/springframework/boot/autoconfigure/condition/OnClassCondition$ThreadedOutcomesResolver
+instanceKlass org/springframework/boot/autoconfigure/condition/OnClassCondition$StandardOutcomesResolver
+instanceKlass org/springframework/boot/autoconfigure/condition/OnClassCondition$OutcomesResolver
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationImportSelector$$Lambda$219
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationImportSelector$$Lambda$218
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationMetadataLoader$PropertiesAutoConfigurationMetadata
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationMetadata
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationMetadataLoader
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationImportSelector$AutoConfigurationGroup$$Lambda$217
+instanceKlass org/springframework/boot/autoconfigure/condition/OnPropertyCondition$Spec
+instanceKlass org/springframework/boot/autoconfigure/condition/OnPropertyCondition$$Lambda$216
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationImportSelector$AutoConfigurationGroup
+instanceKlass org/springframework/scheduling/annotation/ScheduledAnnotationBeanPostProcessor
+instanceKlass org/springframework/scheduling/config/ScheduledTaskHolder
+instanceKlass org/springframework/web/servlet/HandlerMapping
+instanceKlass springfox/documentation/swagger2/mappers/ServiceModelToSwagger2Mapper
+instanceKlass springfox/documentation/spring/web/json/JacksonModuleRegistrar
+instanceKlass springfox/documentation/annotations/ApiIgnore
+instanceKlass com/fasterxml/jackson/annotation/JsonValue
+instanceKlass com/fasterxml/jackson/annotation/JsonIgnore
+instanceKlass com/fasterxml/jackson/annotation/JsonProperty
+instanceKlass com/fasterxml/jackson/annotation/JacksonAnnotation
+instanceKlass com/fasterxml/jackson/annotation/JsonInclude
+instanceKlass springfox/documentation/spring/web/WebMvcObjectMapperConfigurer
+instanceKlass springfox/documentation/spring/web/DocumentationCache
+instanceKlass springfox/documentation/spring/web/DescriptionResolver
+instanceKlass springfox/documentation/PathProvider
+instanceKlass springfox/documentation/spring/web/json/JsonSerializer
+instanceKlass springfox/documentation/spring/web/readers/operation/HandlerMethodResolver
+instanceKlass springfox/documentation/spi/service/contexts/Defaults
+instanceKlass javax/xml/bind/annotation/XmlElement
+instanceKlass springfox/documentation/schema/ClassPresentInClassPathCondition
+instanceKlass springfox/documentation/spi/schema/ViewProviderPlugin
+instanceKlass springfox/documentation/spi/schema/SyntheticModelProviderPlugin
+instanceKlass springfox/documentation/spi/schema/TypeNameProviderPlugin
+instanceKlass springfox/documentation/spi/schema/ModelPropertyBuilderPlugin
+instanceKlass springfox/documentation/spi/schema/ModelBuilderPlugin
+instanceKlass springfox/documentation/spring/web/plugins/SpringIntegrationPluginNotPresentInClassPathCondition
+instanceKlass springfox/documentation/annotations/Cacheable
+instanceKlass springfox/documentation/annotations/Incubating
+instanceKlass org/springframework/plugin/core/config/PluginRegistriesBeanDefinitionRegistrar
+instanceKlass springfox/documentation/spi/service/ApiListingScannerPlugin
+instanceKlass springfox/documentation/service/PathDecorator
+instanceKlass springfox/documentation/spi/service/DefaultsProviderPlugin
+instanceKlass springfox/documentation/spi/service/OperationModelsProviderPlugin
+instanceKlass springfox/documentation/spi/service/ResourceGroupingStrategy
+instanceKlass springfox/documentation/spi/service/ExpandedParameterBuilderPlugin
+instanceKlass springfox/documentation/spi/service/ParameterBuilderPlugin
+instanceKlass springfox/documentation/spi/service/OperationBuilderPlugin
+instanceKlass springfox/documentation/spi/service/ApiListingBuilderPlugin
+instanceKlass springfox/documentation/spi/service/DocumentationPlugin
+instanceKlass org/springframework/plugin/core/Plugin
+instanceKlass org/springframework/plugin/core/config/EnablePluginRegistries
+instanceKlass springfox/documentation/schema/configuration/ModelsConfiguration
+instanceKlass org/mapstruct/Mapping
+instanceKlass org/mapstruct/Mappings
+instanceKlass org/mapstruct/Qualifier
+instanceKlass org/mapstruct/Builder
+instanceKlass org/mapstruct/Mapper
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationImportSelector$AutoConfigurationEntry
+instanceKlass springfox/documentation/swagger/configuration/SwaggerCommonConfiguration
+instanceKlass springfox/documentation/spring/web/SpringfoxWebMvcConfiguration
+instanceKlass springfox/documentation/spring/web/SpringfoxWebConfiguration
+instanceKlass javax/servlet/FilterChain
+instanceKlass javax/servlet/FilterConfig
+instanceKlass javax/servlet/Filter
+instanceKlass org/springframework/security/config/annotation/method/configuration/MethodSecurityMetadataSourceAdvisorRegistrar
+instanceKlass org/springframework/security/config/annotation/method/configuration/GlobalMethodSecurityConfiguration
+instanceKlass org/springframework/security/config/annotation/web/configuration/WebSecurityConfigurerAdapter
+instanceKlass org/springframework/security/config/annotation/web/WebSecurityConfigurer
+instanceKlass org/springframework/security/config/annotation/SecurityConfigurer
+instanceKlass org/springframework/security/config/annotation/method/configuration/GlobalMethodSecuritySelector$$Lambda$215
+instanceKlass javax/servlet/GenericServlet
+instanceKlass javax/servlet/ServletConfig
+instanceKlass org/springframework/context/annotation/AutoProxyRegistrar
+instanceKlass org/springframework/cache/annotation/CachingConfigurationSelector$1
+instanceKlass org/springframework/cache/annotation/AbstractCachingConfiguration
+instanceKlass javax/annotation/meta/TypeQualifier
+instanceKlass org/springframework/security/access/prepost/PreAuthorize
+instanceKlass org/springframework/transaction/annotation/Transactional
+instanceKlass org/springframework/security/config/annotation/method/configuration/GlobalMethodSecuritySelector
+instanceKlass org/springframework/security/config/annotation/method/configuration/EnableGlobalMethodSecurity
+instanceKlass org/springframework/security/config/annotation/authentication/configuration/AuthenticationConfiguration
+instanceKlass org/springframework/security/config/annotation/authentication/configuration/EnableGlobalAuthentication
+instanceKlass org/springframework/security/config/annotation/web/configuration/OAuth2ImportSelector
+instanceKlass org/springframework/security/config/annotation/web/configuration/SpringWebMvcImportSelector
+instanceKlass org/springframework/security/config/annotation/web/configuration/WebSecurityConfiguration
+instanceKlass org/springframework/security/config/annotation/web/configuration/EnableWebSecurity
+instanceKlass org/springframework/context/annotation/AdviceModeImportSelector
+instanceKlass org/springframework/cache/annotation/EnableCaching
+instanceKlass javax/websocket/OnError
+instanceKlass javax/websocket/OnMessage
+instanceKlass javax/websocket/OnClose
+instanceKlass javax/websocket/OnOpen
+instanceKlass javax/websocket/server/ServerEndpointConfig$Configurator
+instanceKlass javax/websocket/server/ServerEndpoint
+instanceKlass org/apache/ibatis/annotations/Update$List
+instanceKlass org/apache/ibatis/annotations/Update
+instanceKlass org/apache/ibatis/annotations/Select$List
+instanceKlass org/apache/ibatis/annotations/Select
+instanceKlass org/springframework/cache/annotation/CacheEvict
+instanceKlass org/springframework/cache/annotation/CachePut
+instanceKlass org/springframework/cache/annotation/Cacheable
+instanceKlass io/swagger/annotations/ApiModel
+instanceKlass org/springframework/web/bind/annotation/GetMapping
+instanceKlass com/baomidou/dynamic/datasource/annotation/DS
+instanceKlass io/swagger/annotations/Api
+instanceKlass org/springframework/web/bind/annotation/ExceptionHandler
+instanceKlass org/springframework/web/bind/annotation/ControllerAdvice
+instanceKlass org/springframework/stereotype/Service
+instanceKlass org/springframework/web/bind/annotation/PostMapping
+instanceKlass sun/reflect/annotation/AnnotationInvocationHandler$1
+instanceKlass io/swagger/annotations/AuthorizationScope
+instanceKlass io/swagger/annotations/ExtensionProperty
+instanceKlass io/swagger/annotations/ResponseHeader
+instanceKlass io/swagger/annotations/Authorization
+instanceKlass io/swagger/annotations/Extension
+instanceKlass io/swagger/annotations/ApiOperation
+instanceKlass org/springframework/web/bind/annotation/Mapping
+instanceKlass org/springframework/web/bind/annotation/RequestMapping
+instanceKlass org/springframework/web/bind/annotation/ResponseBody
+instanceKlass org/springframework/stereotype/Controller
+instanceKlass org/springframework/web/bind/annotation/RestController
+instanceKlass org/springframework/scheduling/annotation/Schedules
+instanceKlass org/springframework/scheduling/annotation/Scheduled
+instanceKlass sun/nio/ch/IOStatus
+instanceKlass java/nio/DirectByteBuffer$Deallocator
+instanceKlass sun/nio/ch/Util$BufferCache
+instanceKlass sun/nio/ch/Util
+instanceKlass sun/nio/ch/NativeThread
+instanceKlass java/nio/channels/spi/AbstractInterruptibleChannel$1
+instanceKlass java/nio/channels/Channels
+instanceKlass sun/nio/ch/FileDispatcherImpl$1
+instanceKlass sun/nio/ch/NativeDispatcher
+instanceKlass sun/nio/ch/NativeThreadSet
+instanceKlass sun/nio/fs/WindowsChannelFactory$Flags
+instanceKlass sun/nio/fs/WindowsChannelFactory$1
+instanceKlass sun/nio/fs/WindowsChannelFactory
+instanceKlass sun/nio/fs/WindowsSecurityDescriptor
+instanceKlass java/nio/file/OpenOption
+instanceKlass org/springframework/util/AntPathMatcher$AntPathStringMatcher
+instanceKlass java/util/Comparator$$Lambda$214
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/core/io/support/PathMatchingResourcePatternResolver$$Lambda$213
+instanceKlass org/springframework/context/annotation/ComponentScanAnnotationParser$2
+instanceKlass org/springframework/boot/web/servlet/context/ServletWebServerApplicationContext$ExistingWebApplicationScopes$$Lambda$212
+instanceKlass org/springframework/web/context/support/WebApplicationContextUtils$WebRequestObjectFactory
+instanceKlass org/springframework/web/context/request/WebRequest
+instanceKlass org/springframework/web/context/request/RequestAttributes
+instanceKlass org/springframework/web/context/support/WebApplicationContextUtils$SessionObjectFactory
+instanceKlass javax/servlet/http/HttpSession
+instanceKlass org/springframework/web/context/support/WebApplicationContextUtils$ResponseObjectFactory
+instanceKlass javax/servlet/ServletResponse
+instanceKlass org/springframework/web/context/support/WebApplicationContextUtils$RequestObjectFactory
+instanceKlass javax/servlet/ServletRequest
+instanceKlass org/springframework/web/context/request/AbstractRequestAttributesScope
+instanceKlass org/springframework/beans/factory/config/Scope
+instanceKlass org/springframework/boot/web/servlet/context/ServletWebServerApplicationContext$ExistingWebApplicationScopes
+instanceKlass org/springframework/web/context/ServletContextAware
+instanceKlass org/springframework/web/context/support/ServletContextAwareProcessor
+instanceKlass org/springframework/web/context/request/RequestContextHolder
+instanceKlass org/springframework/web/context/support/WebApplicationContextUtils
+instanceKlass org/springframework/boot/autoconfigure/condition/OnWebApplicationCondition$1
+instanceKlass org/springframework/scheduling/annotation/SchedulingConfiguration
+instanceKlass org/mybatis/spring/annotation/MapperScans
+instanceKlass org/mybatis/spring/annotation/MapperScannerRegistrar
+instanceKlass org/springframework/cloud/commons/util/SpringFactoryImportSelector
+instanceKlass org/springframework/core/annotation/AnnotatedElementUtils$4$$Lambda$211
+instanceKlass springfox/documentation/swagger2/configuration/Swagger2DocumentationWebMvcConfiguration
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationPackages$Registrar
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationExcludeFilter
+instanceKlass org/springframework/boot/context/TypeExcludeFilter
+instanceKlass org/springframework/context/annotation/ComponentScan$Filter
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationPackage
+instanceKlass org/springframework/scheduling/annotation/EnableScheduling
+instanceKlass java/lang/annotation/Repeatable
+instanceKlass org/springframework/dao/support/DaoSupport
+instanceKlass org/mybatis/spring/annotation/MapperScan
+instanceKlass org/springframework/cloud/client/discovery/EnableDiscoveryClient
+instanceKlass org/springframework/boot/autoconfigure/condition/ConditionalOnWebApplication
+instanceKlass springfox/documentation/swagger2/annotations/EnableSwagger2WebMvc
+instanceKlass org/springframework/boot/autoconfigure/EnableAutoConfiguration
+instanceKlass org/springframework/boot/SpringBootConfiguration
+instanceKlass org/springframework/boot/autoconfigure/SpringBootApplication
+instanceKlass org/springframework/beans/factory/config/NamedBeanHolder
+instanceKlass org/springframework/beans/factory/NamedBean
+instanceKlass org/springframework/cloud/bootstrap/encrypt/EnvironmentDecryptApplicationInitializer$$Lambda$210
+instanceKlass org/springframework/boot/builder/ParentContextApplicationContextInitializer$EventPublisher
+instanceKlass org/springframework/ui/context/ThemeSource
+instanceKlass org/springframework/boot/web/context/ConfigurableWebServerApplicationContext
+instanceKlass org/springframework/boot/web/context/WebServerApplicationContext
+instanceKlass org/springframework/boot/SpringApplicationBannerPrinter$PrintedBanner
+instanceKlass org/springframework/boot/ansi/AnsiPropertySource$MappedEnum
+instanceKlass org/springframework/boot/SpringBootVersion
+instanceKlass org/springframework/util/StreamUtils
+instanceKlass org/springframework/boot/ResourceBanner
+instanceKlass org/springframework/boot/SpringApplicationBannerPrinter$Banners
+instanceKlass org/springframework/boot/SpringBootBanner
+instanceKlass org/springframework/boot/SpringApplicationBannerPrinter
+instanceKlass org/springframework/boot/EnvironmentConverter
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Loader$$Lambda$209
+instanceKlass org/springframework/boot/convert/Delimiter
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/boot/context/properties/bind/Binder$$Lambda$208
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/util/stream/StreamSpliterators$WrappingSpliterator$$Lambda$207
+instanceKlass java/util/function/BooleanSupplier
+instanceKlass java/util/stream/StreamSpliterators$WrappingSpliterator$$Lambda$206
+instanceKlass java/util/Spliterators$1Adapter
+instanceKlass java/util/stream/StreamSpliterators$AbstractWrappingSpliterator
+instanceKlass java/util/stream/AbstractPipeline$$Lambda$205
+instanceKlass org/springframework/boot/context/properties/source/FilteredConfigurationPropertiesSource
+instanceKlass org/springframework/boot/context/properties/bind/IndexedElementsBinder$$Lambda$204
+instanceKlass org/springframework/boot/context/properties/bind/ArrayBinder$$Lambda$203
+instanceKlass org/springframework/boot/context/properties/bind/AggregateBinder$AggregateSupplier
+instanceKlass org/springframework/boot/context/properties/bind/Binder$$Lambda$202
+instanceKlass org/springframework/boot/context/properties/bind/Binder$$Lambda$201
+instanceKlass org/springframework/boot/context/properties/bind/AggregateElementBinder
+instanceKlass org/springframework/boot/context/properties/bind/AggregateBinder
+instanceKlass org/springframework/beans/factory/config/YamlProcessor$$Lambda$200
+instanceKlass org/springframework/core/CollectionFactory
+instanceKlass org/springframework/beans/factory/config/YamlProcessor$$Lambda$199
+instanceKlass java/util/TreeMap$NavigableSubMap$SubMapIterator
+instanceKlass java/util/Collections$ReverseComparator
+instanceKlass org/springframework/boot/env/OriginTrackedYamlLoader$OriginTrackingConstructor$$Lambda$198
+instanceKlass org/yaml/snakeyaml/parser/ParserImpl$ParseDocumentStart
+instanceKlass org/yaml/snakeyaml/nodes/NodeTuple
+instanceKlass org/yaml/snakeyaml/events/ImplicitTuple
+instanceKlass org/yaml/snakeyaml/parser/ParserImpl$ParseBlockMappingValue
+instanceKlass org/yaml/snakeyaml/parser/ParserImpl$ParseBlockMappingKey
+instanceKlass org/yaml/snakeyaml/nodes/Node
+instanceKlass org/yaml/snakeyaml/resolver/Resolver$1
+instanceKlass org/yaml/snakeyaml/parser/ParserImpl$ParseBlockMappingFirstKey
+instanceKlass org/yaml/snakeyaml/parser/ParserImpl$ParseBlockNode
+instanceKlass org/yaml/snakeyaml/parser/ParserImpl$ParseDocumentEnd
+instanceKlass org/yaml/snakeyaml/scanner/SimpleKey
+instanceKlass org/yaml/snakeyaml/scanner/Constant
+instanceKlass org/yaml/snakeyaml/parser/ParserImpl$ParseImplicitDocumentStart
+instanceKlass org/yaml/snakeyaml/events/Event
+instanceKlass org/yaml/snakeyaml/Yaml$YamlIterable
+instanceKlass org/yaml/snakeyaml/Yaml$1
+instanceKlass org/yaml/snakeyaml/parser/ParserImpl$ParseStreamStart
+instanceKlass org/yaml/snakeyaml/parser/Production
+instanceKlass org/yaml/snakeyaml/parser/VersionTagsTuple
+instanceKlass org/yaml/snakeyaml/tokens/Token
+instanceKlass org/yaml/snakeyaml/error/Mark
+instanceKlass org/yaml/snakeyaml/util/ArrayStack
+instanceKlass org/yaml/snakeyaml/scanner/ScannerImpl
+instanceKlass org/yaml/snakeyaml/scanner/Scanner
+instanceKlass org/yaml/snakeyaml/reader/StreamReader
+instanceKlass org/yaml/snakeyaml/parser/ParserImpl
+instanceKlass org/yaml/snakeyaml/parser/Parser
+instanceKlass org/yaml/snakeyaml/composer/Composer
+instanceKlass sun/net/DefaultProgressMeteringPolicy
+instanceKlass sun/net/ProgressMeteringPolicy
+instanceKlass sun/net/ProgressMonitor
+instanceKlass org/yaml/snakeyaml/LoaderOptions
+instanceKlass org/yaml/snakeyaml/resolver/ResolverTuple
+instanceKlass org/yaml/snakeyaml/resolver/Resolver
+instanceKlass org/yaml/snakeyaml/serializer/NumberAnchorGenerator
+instanceKlass org/yaml/snakeyaml/serializer/AnchorGenerator
+instanceKlass org/yaml/snakeyaml/DumperOptions
+instanceKlass org/yaml/snakeyaml/representer/Representer$RepresentJavaBean
+instanceKlass org/yaml/snakeyaml/representer/SafeRepresenter$RepresentEnum
+instanceKlass org/yaml/snakeyaml/representer/SafeRepresenter$RepresentDate
+instanceKlass org/yaml/snakeyaml/representer/SafeRepresenter$RepresentArray
+instanceKlass org/yaml/snakeyaml/representer/SafeRepresenter$RepresentIterator
+instanceKlass org/yaml/snakeyaml/representer/SafeRepresenter$RepresentSet
+instanceKlass org/yaml/snakeyaml/representer/SafeRepresenter$RepresentMap
+instanceKlass org/yaml/snakeyaml/representer/SafeRepresenter$RepresentList
+instanceKlass org/yaml/snakeyaml/representer/SafeRepresenter$RepresentNumber
+instanceKlass org/yaml/snakeyaml/representer/SafeRepresenter$RepresentPrimitiveArray
+instanceKlass org/yaml/snakeyaml/representer/SafeRepresenter$RepresentByteArray
+instanceKlass org/yaml/snakeyaml/representer/SafeRepresenter$RepresentUuid
+instanceKlass org/yaml/snakeyaml/representer/SafeRepresenter$RepresentBoolean
+instanceKlass org/yaml/snakeyaml/representer/SafeRepresenter$RepresentString
+instanceKlass org/yaml/snakeyaml/representer/SafeRepresenter$RepresentNull
+instanceKlass org/yaml/snakeyaml/representer/Represent
+instanceKlass org/yaml/snakeyaml/representer/BaseRepresenter
+instanceKlass org/yaml/snakeyaml/util/PlatformFeatureDetector
+instanceKlass org/yaml/snakeyaml/introspector/PropertyUtils
+instanceKlass org/yaml/snakeyaml/constructor/Constructor$ConstructSequence
+instanceKlass org/yaml/snakeyaml/constructor/Constructor$ConstructMapping
+instanceKlass org/yaml/snakeyaml/constructor/Constructor$ConstructYamlObject
+instanceKlass org/yaml/snakeyaml/constructor/SafeConstructor$ConstructYamlMap
+instanceKlass org/yaml/snakeyaml/constructor/SafeConstructor$ConstructYamlSeq
+instanceKlass org/yaml/snakeyaml/constructor/SafeConstructor$ConstructYamlSet
+instanceKlass org/yaml/snakeyaml/external/com/google/gdata/util/common/base/UnicodeEscaper
+instanceKlass org/yaml/snakeyaml/external/com/google/gdata/util/common/base/Escaper
+instanceKlass org/yaml/snakeyaml/util/UriEncoder
+instanceKlass org/yaml/snakeyaml/nodes/Tag
+instanceKlass org/yaml/snakeyaml/TypeDescription
+instanceKlass org/yaml/snakeyaml/constructor/AbstractConstruct
+instanceKlass org/yaml/snakeyaml/constructor/Construct
+instanceKlass org/yaml/snakeyaml/constructor/BaseConstructor
+instanceKlass org/springframework/boot/env/OriginTrackedYamlLoader$$Lambda$197
+instanceKlass org/springframework/beans/factory/config/YamlProcessor$MatchCallback
+instanceKlass org/springframework/beans/factory/config/YamlProcessor
+instanceKlass org/yaml/snakeyaml/Yaml
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Loader$$Lambda$196
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Loader$$Lambda$195
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Loader$$Lambda$194
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Loader$$Lambda$193
+instanceKlass java/util/Collections$2
+instanceKlass org/springframework/boot/origin/OriginTrackedValue
+instanceKlass org/springframework/boot/origin/TextResourceOrigin
+instanceKlass org/springframework/boot/origin/TextResourceOrigin$Location
+instanceKlass org/springframework/boot/env/OriginTrackedPropertiesLoader$CharacterReader
+instanceKlass org/springframework/boot/env/OriginTrackedPropertiesLoader
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$DocumentsCacheKey
+instanceKlass org/springframework/cloud/bootstrap/BootstrapApplicationListener$DelegatingEnvironmentDecryptApplicationInitializer
+instanceKlass org/springframework/cloud/bootstrap/BootstrapApplicationListener$CloseContextOnFailureApplicationListener
+instanceKlass org/springframework/cloud/bootstrap/BootstrapApplicationListener$AncestorInitializer
+instanceKlass org/springframework/util/StopWatch$TaskInfo
+instanceKlass org/springframework/util/ConcurrentReferenceHashMap$EntryIterator
+instanceKlass java/util/AbstractMap$1$1
+instanceKlass org/springframework/beans/CachedIntrospectionResults$$Lambda$192
+instanceKlass org/springframework/beans/CachedIntrospectionResults$$Lambda$191
+instanceKlass org/springframework/beans/CachedIntrospectionResults$$Lambda$190
+instanceKlass org/springframework/context/support/LiveBeansView
+instanceKlass org/springframework/context/support/LiveBeansViewMBean
+instanceKlass org/springframework/boot/autoconfigure/condition/ConditionEvaluationReport$$Lambda$189
+instanceKlass org/springframework/boot/autoconfigure/condition/ConditionEvaluationReport$$Lambda$188
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/context/support/DefaultLifecycleProcessor$$Lambda$187
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/context/support/DefaultLifecycleProcessor
+instanceKlass org/springframework/context/LifecycleProcessor
+instanceKlass org/springframework/core/MethodIntrospector$$Lambda$186
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/core/MethodIntrospector
+instanceKlass org/springframework/context/event/EventListenerMethodProcessor$$Lambda$185
+instanceKlass org/springframework/core/MethodIntrospector$MetadataLookup
+instanceKlass org/springframework/aop/scope/ScopedObject
+instanceKlass org/springframework/aop/RawTargetAccess
+instanceKlass org/springframework/aop/scope/ScopedProxyUtils
+instanceKlass org/springframework/jmx/export/annotation/ManagedResource
+instanceKlass org/springframework/jmx/export/annotation/ManagedAttribute
+instanceKlass org/springframework/jmx/export/annotation/ManagedOperation
+instanceKlass org/springframework/beans/factory/support/ConstructorResolver$AutowiredArgumentMarker
+instanceKlass org/springframework/beans/factory/support/ConstructorResolver$ArgumentsHolder
+instanceKlass org/springframework/beans/factory/support/AutowireUtils$$Lambda$184
+instanceKlass org/springframework/beans/factory/support/AutowireUtils
+instanceKlass org/springframework/cloud/bootstrap/encrypt/EncryptionBootstrapConfiguration$FailsafeTextEncryptor
+instanceKlass org/springframework/core/SimpleAliasRegistry$$Lambda$183
+instanceKlass org/springframework/boot/context/properties/ConfigurationPropertiesBinder$$Lambda$182
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/beans/factory/annotation/BeanFactoryAnnotationUtils
+instanceKlass org/springframework/boot/context/properties/ConversionServiceDeducer$Factory
+instanceKlass org/springframework/core/NestedExceptionUtils
+instanceKlass org/springframework/boot/context/properties/ConversionServiceDeducer
+instanceKlass java/util/stream/SortedOps
+instanceKlass org/springframework/core/OrderComparator$$Lambda$181
+instanceKlass org/springframework/beans/factory/support/DefaultListableBeanFactory$FactoryAwareOrderSourceProvider
+instanceKlass org/springframework/core/OrderComparator$OrderSourceProvider
+instanceKlass org/springframework/beans/factory/support/DefaultListableBeanFactory$$Lambda$180
+instanceKlass org/springframework/beans/factory/support/DefaultListableBeanFactory$1
+instanceKlass org/springframework/beans/factory/support/DefaultListableBeanFactory$BeanObjectProvider
+instanceKlass org/springframework/boot/context/properties/ConfigurationPropertiesBindHandlerAdvisor
+instanceKlass org/springframework/boot/context/properties/bind/AbstractBindHandler
+instanceKlass org/springframework/boot/context/properties/ConfigurationPropertiesBinder$$Lambda$179
+instanceKlass org/springframework/validation/annotation/Validated
+instanceKlass java/util/concurrent/ConcurrentHashMap$MapEntry
+instanceKlass org/springframework/cloud/bootstrap/config/PropertySourceLocator
+instanceKlass org/springframework/core/SerializableTypeWrapper$FieldTypeProvider
+instanceKlass org/springframework/core/annotation/AnnotatedElementUtils$1
+instanceKlass org/springframework/beans/factory/ObjectProvider
+instanceKlass org/springframework/beans/factory/InjectionPoint
+instanceKlass org/springframework/beans/factory/SmartFactoryBean
+instanceKlass org/springframework/context/weaving/LoadTimeWeaverAware
+instanceKlass org/springframework/context/support/MessageSourceSupport
+instanceKlass org/springframework/context/HierarchicalMessageSource
+instanceKlass org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata$$Lambda$178
+instanceKlass org/springframework/cglib/reflect/FastClassEmitter$4
+instanceKlass org/springframework/cglib/core/Block
+instanceKlass org/springframework/cglib/core/EmitUtils$14
+instanceKlass org/springframework/cglib/core/EmitUtils$13
+instanceKlass org/springframework/cglib/core/EmitUtils$12
+instanceKlass org/springframework/cglib/core/EmitUtils$11
+instanceKlass org/springframework/cglib/core/EmitUtils$10
+instanceKlass org/springframework/cglib/core/EmitUtils$ParameterTyper
+instanceKlass org/springframework/cglib/reflect/FastClassEmitter$GetIndexCallback
+instanceKlass org/springframework/cglib/reflect/FastClassEmitter$3
+instanceKlass org/springframework/cglib/reflect/FastClassEmitter$1
+instanceKlass org/springframework/cglib/reflect/FastClass
+instanceKlass org/springframework/cglib/proxy/MethodProxy$FastClassInfo
+instanceKlass ch/qos/logback/core/pattern/SpacePadder
+instanceKlass java/text/DontCareFieldPosition$1
+instanceKlass java/text/Format$FieldDelegate
+instanceKlass ch/qos/logback/classic/util/LogbackMDCAdapter
+instanceKlass org/slf4j/spi/MDCAdapter
+instanceKlass org/slf4j/impl/StaticMDCBinder
+instanceKlass org/slf4j/MDC
+instanceKlass ch/qos/logback/classic/spi/EventArgUtil
+instanceKlass ch/qos/logback/classic/spi/LoggingEvent
+instanceKlass ch/qos/logback/classic/spi/ILoggingEvent
+instanceKlass ch/qos/logback/core/spi/DeferredProcessingAware
+instanceKlass org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor$$Lambda$177
+instanceKlass org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor$$Lambda$176
+instanceKlass org/springframework/context/annotation/CommonAnnotationBeanPostProcessor$$Lambda$175
+instanceKlass org/springframework/context/annotation/CommonAnnotationBeanPostProcessor$$Lambda$174
+instanceKlass org/springframework/util/ReflectionUtils$FieldCallback
+instanceKlass org/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata
+instanceKlass org/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$$Lambda$173
+instanceKlass org/springframework/beans/factory/annotation/Lookup
+instanceKlass org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor$$Lambda$172
+instanceKlass org/springframework/boot/context/properties/ConfigurationPropertiesJsr303Validator
+instanceKlass org/springframework/validation/Validator
+instanceKlass org/springframework/boot/context/properties/PropertySourcesDeducer
+instanceKlass org/springframework/boot/context/properties/ConfigurationPropertiesBinder
+instanceKlass javax/annotation/PreDestroy
+instanceKlass javax/annotation/PostConstruct
+instanceKlass org/springframework/jndi/JndiTemplate
+instanceKlass javax/xml/ws/WebServiceRef
+instanceKlass javax/inject/Inject
+instanceKlass org/springframework/beans/factory/annotation/Autowired
+instanceKlass org/springframework/context/support/PostProcessorRegistrationDelegate$BeanPostProcessorChecker
+instanceKlass java/util/concurrent/ConcurrentHashMap$Traverser
+instanceKlass org/springframework/beans/factory/support/AbstractBeanFactory$$Lambda$171
+instanceKlass org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata$FactoryMetadata
+instanceKlass org/springframework/context/expression/CachedExpressionEvaluator
+instanceKlass org/springframework/core/SimpleAliasRegistry$$Lambda$170
+instanceKlass org/springframework/beans/factory/config/BeanDefinitionVisitor
+instanceKlass org/springframework/context/support/PropertySourcesPlaceholderConfigurer$$Lambda$169
+instanceKlass org/springframework/context/annotation/ImportAware
+instanceKlass org/springframework/util/DefaultPropertiesPersister
+instanceKlass org/springframework/util/PropertiesPersister
+instanceKlass org/springframework/beans/factory/support/ConstructorResolver
+instanceKlass org/springframework/cglib/proxy/Enhancer$EnhancerFactoryData
+instanceKlass org/springframework/cglib/proxy/MethodProxy$CreateInfo
+instanceKlass org/springframework/cglib/proxy/MethodProxy
+instanceKlass org/springframework/cglib/core/EmitUtils$6
+instanceKlass org/springframework/cglib/core/ProcessSwitchCallback
+instanceKlass java/util/DualPivotQuicksort
+instanceKlass org/springframework/cglib/core/EmitUtils$5
+instanceKlass org/springframework/cglib/proxy/MethodInterceptorGenerator$2
+instanceKlass org/springframework/cglib/core/ObjectSwitchCallback
+instanceKlass org/springframework/cglib/proxy/Enhancer$6
+instanceKlass org/springframework/cglib/proxy/CallbackGenerator$Context
+instanceKlass org/springframework/cglib/proxy/BridgeMethodResolver
+instanceKlass org/springframework/cglib/core/MethodInfoTransformer
+instanceKlass org/springframework/cglib/proxy/Enhancer$2
+instanceKlass org/springframework/cglib/core/DuplicatesPredicate
+instanceKlass org/springframework/cglib/core/RejectModifierPredicate
+instanceKlass org/springframework/cglib/core/MethodWrapper$MethodWrapperKey
+instanceKlass org/springframework/cglib/core/MethodWrapper
+instanceKlass org/springframework/cglib/proxy/Factory
+instanceKlass org/springframework/cglib/core/VisibilityPredicate
+instanceKlass org/springframework/cglib/transform/TransformingClassGenerator
+instanceKlass org/springframework/cglib/proxy/ProxyRefDispatcher
+instanceKlass org/springframework/cglib/proxy/FixedValueGenerator
+instanceKlass org/springframework/cglib/proxy/FixedValue
+instanceKlass org/springframework/cglib/proxy/DispatcherGenerator
+instanceKlass org/springframework/cglib/proxy/Dispatcher
+instanceKlass org/springframework/cglib/proxy/LazyLoaderGenerator
+instanceKlass org/springframework/cglib/proxy/LazyLoader
+instanceKlass org/springframework/cglib/proxy/InvocationHandlerGenerator
+instanceKlass org/springframework/cglib/proxy/InvocationHandler
+instanceKlass org/springframework/cglib/proxy/MethodInterceptorGenerator$1
+instanceKlass org/springframework/cglib/core/Transformer
+instanceKlass org/springframework/cglib/proxy/MethodInterceptorGenerator
+instanceKlass org/springframework/cglib/proxy/NoOpGenerator
+instanceKlass org/springframework/cglib/proxy/CallbackGenerator
+instanceKlass org/springframework/cglib/proxy/CallbackInfo
+instanceKlass org/springframework/cglib/core/ClassNameReader
+instanceKlass org/springframework/cglib/core/DebuggingClassWriter$1
+instanceKlass org/springframework/asm/Handler
+instanceKlass org/springframework/cglib/core/EmitUtils$9
+instanceKlass org/springframework/cglib/core/EmitUtils$8
+instanceKlass org/springframework/cglib/core/Local
+instanceKlass org/springframework/cglib/core/EmitUtils$7
+instanceKlass org/springframework/cglib/core/ProcessArrayCallback
+instanceKlass org/springframework/asm/Edge
+instanceKlass org/springframework/cglib/core/ClassEmitter$FieldInfo
+instanceKlass org/springframework/cglib/core/MethodInfo
+instanceKlass org/springframework/cglib/core/LocalVariablesSorter$State
+instanceKlass org/springframework/asm/Frame
+instanceKlass org/springframework/cglib/core/EmitUtils$ArrayDelimiters
+instanceKlass org/springframework/cglib/core/EmitUtils
+instanceKlass org/springframework/cglib/core/ClassInfo
+instanceKlass org/springframework/cglib/core/ReflectUtils$4
+instanceKlass org/springframework/cglib/core/ReflectUtils$5
+instanceKlass java/lang/AssertionStatusDirectives
+instanceKlass org/springframework/cglib/core/ReflectUtils$3
+instanceKlass org/springframework/cglib/core/ReflectUtils$2
+instanceKlass org/springframework/cglib/core/ReflectUtils$1
+instanceKlass org/springframework/cglib/core/ReflectUtils
+instanceKlass org/springframework/asm/ByteVector
+instanceKlass org/springframework/asm/Symbol
+instanceKlass org/springframework/asm/SymbolTable
+instanceKlass org/springframework/cglib/core/AsmApi
+instanceKlass org/springframework/cglib/core/Constants
+instanceKlass org/springframework/cglib/core/internal/LoadingCache$2
+instanceKlass org/springframework/cglib/core/internal/LoadingCache$1
+instanceKlass org/springframework/cglib/core/internal/LoadingCache
+instanceKlass org/springframework/cglib/core/AbstractClassGenerator$ClassLoaderData$3
+instanceKlass org/springframework/cglib/core/AbstractClassGenerator$ClassLoaderData$1
+instanceKlass org/springframework/cglib/core/Predicate
+instanceKlass org/springframework/cglib/core/AbstractClassGenerator$ClassLoaderData$2
+instanceKlass org/springframework/cglib/core/internal/Function
+instanceKlass org/springframework/cglib/core/AbstractClassGenerator$ClassLoaderData
+instanceKlass org/springframework/cglib/core/internal/CustomizerRegistry
+instanceKlass org/springframework/cglib/core/DefaultNamingPolicy
+instanceKlass org/springframework/cglib/core/NamingPolicy
+instanceKlass org/springframework/cglib/core/DefaultGeneratorStrategy
+instanceKlass org/springframework/cglib/core/GeneratorStrategy
+instanceKlass org/springframework/cglib/core/KeyFactory$4
+instanceKlass org/springframework/cglib/core/KeyFactory$3
+instanceKlass org/springframework/cglib/core/HashCodeCustomizer
+instanceKlass org/springframework/cglib/core/KeyFactory$2
+instanceKlass org/springframework/cglib/core/FieldTypeCustomizer
+instanceKlass org/springframework/cglib/core/KeyFactory$1
+instanceKlass org/springframework/cglib/core/Customizer
+instanceKlass org/springframework/cglib/core/KeyFactoryCustomizer
+instanceKlass org/springframework/cglib/core/Signature
+instanceKlass org/springframework/cglib/core/CollectionUtils
+instanceKlass org/springframework/cglib/core/TypeUtils
+instanceKlass org/springframework/cglib/core/KeyFactory
+instanceKlass org/springframework/cglib/proxy/Enhancer$EnhancerKey
+instanceKlass org/springframework/cglib/core/AbstractClassGenerator$Source
+instanceKlass org/springframework/cglib/proxy/Enhancer$1
+instanceKlass org/springframework/cglib/core/AbstractClassGenerator
+instanceKlass org/springframework/cglib/core/ClassGenerator
+instanceKlass org/springframework/context/annotation/ConfigurationClassEnhancer$EnhancedConfiguration
+instanceKlass org/springframework/aop/framework/autoproxy/AutoProxyUtils
+instanceKlass org/springframework/objenesis/strategy/BaseInstantiatorStrategy
+instanceKlass org/springframework/objenesis/strategy/InstantiatorStrategy
+instanceKlass org/springframework/objenesis/SpringObjenesis
+instanceKlass org/springframework/objenesis/Objenesis
+instanceKlass org/springframework/context/annotation/ConfigurationClassEnhancer$ConditionalCallbackFilter
+instanceKlass org/springframework/cglib/proxy/CallbackFilter
+instanceKlass org/springframework/cglib/proxy/NoOp$1
+instanceKlass org/springframework/cglib/proxy/NoOp
+instanceKlass org/springframework/context/annotation/ConfigurationClassEnhancer$BeanFactoryAwareMethodInterceptor
+instanceKlass org/springframework/context/annotation/ConfigurationClassEnhancer$BeanMethodInterceptor
+instanceKlass org/springframework/context/annotation/ConfigurationClassEnhancer$ConditionalCallback
+instanceKlass org/springframework/cglib/proxy/MethodInterceptor
+instanceKlass org/springframework/cglib/proxy/Callback
+instanceKlass org/springframework/context/annotation/ConfigurationClassEnhancer
+instanceKlass org/springframework/cloud/bootstrap/encrypt/KeyProperties$KeyStore
+instanceKlass org/springframework/boot/autoconfigure/context/PropertyPlaceholderAutoConfiguration
+instanceKlass org/springframework/core/io/support/PropertiesLoaderSupport
+instanceKlass org/springframework/cloud/context/properties/ConfigurationPropertiesRebinder
+instanceKlass org/springframework/cloud/autoconfigure/ConfigurationPropertiesRebinderAutoConfiguration
+instanceKlass org/springframework/cloud/context/properties/ConfigurationPropertiesBeans
+instanceKlass org/springframework/core/type/classreading/MethodMetadataReadingVisitor$$Lambda$168
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/boot/autoconfigure/condition/ConditionalOnSingleCandidate
+instanceKlass java/util/stream/Collectors$$Lambda$167
+instanceKlass java/util/stream/Collectors$$Lambda$166
+instanceKlass org/springframework/boot/autoconfigure/condition/BeanTypeRegistry$$Lambda$165
+instanceKlass org/springframework/boot/autoconfigure/condition/BeanTypeRegistry$$Lambda$164
+instanceKlass org/springframework/boot/autoconfigure/condition/BeanTypeRegistry$$Lambda$163
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/context/annotation/BeanAnnotationHelper
+instanceKlass org/springframework/util/ReflectionUtils$$Lambda$162
+instanceKlass org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory$$Lambda$161
+instanceKlass org/springframework/cloud/bootstrap/encrypt/EnvironmentDecryptApplicationInitializer
+instanceKlass org/springframework/util/ReflectionUtils$$Lambda$160
+instanceKlass org/springframework/util/ReflectionUtils$MethodCallback
+instanceKlass org/springframework/core/type/StandardMethodMetadata
+instanceKlass org/springframework/cloud/bootstrap/encrypt/EncryptionBootstrapConfiguration
+instanceKlass org/springframework/cloud/bootstrap/config/PropertySourceBootstrapConfiguration
+instanceKlass org/springframework/boot/autoconfigure/condition/BeanTypeRegistry$$Lambda$159
+instanceKlass org/springframework/util/CompositeIterator
+instanceKlass org/springframework/boot/autoconfigure/condition/BeanTypeRegistry$$Lambda$158
+instanceKlass org/springframework/boot/autoconfigure/condition/BeanTypeRegistry
+instanceKlass org/springframework/boot/autoconfigure/condition/OnBeanCondition$BeanSearchSpec$$Lambda$157
+instanceKlass org/springframework/boot/autoconfigure/condition/BeanTypeRegistry$TypeExtractor
+instanceKlass org/springframework/boot/autoconfigure/condition/OnBeanCondition$MatchResult
+instanceKlass java/util/stream/MatchOps$$Lambda$156
+instanceKlass org/springframework/boot/autoconfigure/condition/OnBeanCondition$BeanSearchSpec$$Lambda$155
+instanceKlass org/springframework/boot/autoconfigure/condition/OnBeanCondition$BeanSearchSpec
+instanceKlass org/springframework/core/annotation/AnnotationAttributes$$Lambda$154
+instanceKlass org/springframework/cloud/bootstrap/encrypt/KeyProperties
+instanceKlass org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata
+instanceKlass org/springframework/boot/context/properties/ConfigurationPropertiesBindingPostProcessor
+instanceKlass org/springframework/boot/context/properties/EnableConfigurationPropertiesImportSelector$ConfigurationPropertiesBeanRegistrar$$Lambda$153
+instanceKlass org/springframework/core/annotation/SynthesizedAnnotationInvocationHandler
+instanceKlass org/springframework/core/annotation/AbstractAliasAwareAnnotationAttributeExtractor
+instanceKlass org/springframework/core/annotation/AnnotationAttributeExtractor
+instanceKlass org/springframework/boot/context/properties/ConfigurationProperties
+instanceKlass org/springframework/boot/context/properties/EnableConfigurationPropertiesImportSelector$ConfigurationPropertiesBeanRegistrar$$Lambda$152
+instanceKlass org/springframework/boot/context/properties/EnableConfigurationPropertiesImportSelector$ConfigurationPropertiesBeanRegistrar$$Lambda$151
+instanceKlass org/springframework/boot/context/properties/EnableConfigurationPropertiesImportSelector$ConfigurationPropertiesBeanRegistrar$$Lambda$150
+instanceKlass org/springframework/boot/context/properties/EnableConfigurationPropertiesImportSelector$ConfigurationPropertiesBeanRegistrar$$Lambda$149
+instanceKlass org/springframework/cloud/bootstrap/config/PropertySourceBootstrapProperties
+instanceKlass org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader$$Lambda$148
+instanceKlass org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader$$Lambda$147
+instanceKlass org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader$TrackedConditionEvaluator
+instanceKlass org/springframework/context/annotation/ConfigurationMethod
+instanceKlass org/springframework/security/rsa/crypto/RsaSecretEncryptor
+instanceKlass org/springframework/security/rsa/crypto/RsaKeyHolder
+instanceKlass org/springframework/security/crypto/encrypt/BytesEncryptor
+instanceKlass org/springframework/boot/autoconfigure/condition/ConditionalOnMissingClass
+instanceKlass org/springframework/security/crypto/encrypt/TextEncryptor
+instanceKlass org/springframework/boot/context/properties/ConfigurationPropertiesBindingPostProcessorRegistrar
+instanceKlass org/springframework/boot/context/properties/EnableConfigurationPropertiesImportSelector$ConfigurationPropertiesBeanRegistrar
+instanceKlass org/springframework/boot/autoconfigure/condition/ConditionEvaluationReport$ConditionAndOutcome
+instanceKlass org/springframework/boot/autoconfigure/condition/ConditionEvaluationReport$ConditionAndOutcomes
+instanceKlass org/springframework/boot/autoconfigure/condition/ConditionOutcome
+instanceKlass org/springframework/boot/autoconfigure/condition/ConditionMessage$ItemsBuilder
+instanceKlass org/springframework/boot/autoconfigure/condition/ConditionMessage$Builder
+instanceKlass org/springframework/boot/autoconfigure/condition/ConditionMessage
+instanceKlass org/springframework/context/annotation/ImportBeanDefinitionRegistrar
+instanceKlass org/springframework/context/annotation/ConfigurationClassParser$DeferredImportSelectorGroupingHandler$$Lambda$146
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/context/annotation/DeferredImportSelector$Group$Entry
+instanceKlass java/util/stream/Nodes$ArrayNode
+instanceKlass org/springframework/cloud/bootstrap/BootstrapImportSelector$$Lambda$145
+instanceKlass org/springframework/cloud/bootstrap/BootstrapImportSelector$$Lambda$144
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigureOrder
+instanceKlass org/springframework/boot/autoconfigure/condition/ConditionalOnMissingBean
+instanceKlass org/springframework/context/annotation/ConfigurationCondition
+instanceKlass org/springframework/boot/autoconfigure/condition/ConditionalOnBean
+instanceKlass org/springframework/asm/Handle
+instanceKlass org/springframework/asm/FieldVisitor
+instanceKlass org/springframework/boot/context/properties/EnableConfigurationPropertiesImportSelector
+instanceKlass org/springframework/boot/context/properties/EnableConfigurationProperties
+instanceKlass org/springframework/core/type/classreading/AnnotationReadingVisitorUtils
+instanceKlass org/springframework/asm/Label
+instanceKlass org/springframework/asm/MethodVisitor
+instanceKlass org/springframework/core/type/MethodMetadata
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationImportSelector
+instanceKlass org/springframework/boot/context/annotation/DeterminableImports
+instanceKlass org/springframework/boot/autoconfigure/ImportAutoConfiguration
+instanceKlass org/springframework/boot/autoconfigure/condition/ConditionalOnProperty
+instanceKlass org/springframework/boot/autoconfigure/condition/SpringBootCondition
+instanceKlass org/springframework/boot/autoconfigure/AutoConfigurationImportFilter
+instanceKlass org/springframework/boot/autoconfigure/condition/ConditionalOnClass
+instanceKlass org/springframework/asm/AnnotationVisitor
+instanceKlass org/springframework/asm/Type
+instanceKlass org/springframework/asm/Context
+instanceKlass org/springframework/asm/Attribute
+instanceKlass org/springframework/asm/ClassVisitor
+instanceKlass org/springframework/asm/ClassReader
+instanceKlass org/springframework/core/type/classreading/SimpleMetadataReader
+instanceKlass org/springframework/cloud/bootstrap/BootstrapImportSelector$OrderedAnnotatedElement
+instanceKlass org/springframework/cloud/bootstrap/BootstrapConfiguration
+instanceKlass org/springframework/context/annotation/ConfigurationClassParser$DefaultDeferredImportSelectorGroup
+instanceKlass org/springframework/context/annotation/DeferredImportSelector$Group
+instanceKlass org/springframework/context/annotation/ConfigurationClassParser$DeferredImportSelectorGroupingHandler$$Lambda$143
+instanceKlass org/springframework/context/annotation/ConfigurationClassParser$DeferredImportSelectorGrouping
+instanceKlass org/springframework/context/annotation/ConfigurationClassParser$DeferredImportSelectorHandler$$Lambda$142
+instanceKlass org/springframework/context/annotation/ConfigurationClassParser$DeferredImportSelectorGroupingHandler
+instanceKlass org/springframework/context/annotation/ParserStrategyUtils
+instanceKlass org/springframework/context/annotation/ComponentScans
+instanceKlass org/springframework/context/annotation/PropertySource
+instanceKlass org/springframework/context/annotation/PropertySources
+instanceKlass org/springframework/context/annotation/ConfigurationClassParser$SourceClass
+instanceKlass org/springframework/context/annotation/ConfigurationClass
+instanceKlass org/springframework/context/annotation/ComponentScanAnnotationParser
+instanceKlass org/springframework/context/annotation/ConfigurationClassParser$DeferredImportSelectorHandler
+instanceKlass org/springframework/context/annotation/ImportRegistry
+instanceKlass org/springframework/context/annotation/ConfigurationClassParser$$Lambda$141
+instanceKlass org/springframework/context/annotation/ConfigurationClassParser$DeferredImportSelectorHolder
+instanceKlass org/springframework/core/io/support/DefaultPropertySourceFactory
+instanceKlass org/springframework/core/io/support/PropertySourceFactory
+instanceKlass org/springframework/context/annotation/ConfigurationClassParser
+instanceKlass org/springframework/context/annotation/ConfigurationClassPostProcessor$$Lambda$140
+instanceKlass org/springframework/beans/BeanMetadataAttribute
+instanceKlass org/springframework/context/event/EventListener
+instanceKlass org/springframework/beans/factory/annotation/InjectionMetadata$InjectedElement
+instanceKlass javax/annotation/Nonnull
+instanceKlass org/springframework/lang/Nullable
+instanceKlass org/springframework/beans/factory/annotation/InjectionMetadata
+instanceKlass org/springframework/context/annotation/Bean
+instanceKlass org/springframework/context/annotation/ImportResource
+instanceKlass org/springframework/core/Conventions
+instanceKlass org/springframework/context/annotation/ConfigurationClassUtils
+instanceKlass org/springframework/beans/AbstractNestablePropertyAccessor$PropertyTokenHolder
+instanceKlass org/springframework/beans/factory/config/TypedStringValue
+instanceKlass org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader
+instanceKlass org/springframework/core/convert/Property
+instanceKlass org/springframework/beans/AbstractNestablePropertyAccessor$PropertyHandler
+instanceKlass org/springframework/core/BridgeMethodResolver
+instanceKlass java/beans/SimpleBeanInfo
+instanceKlass com/sun/beans/WildcardTypeImpl
+instanceKlass com/sun/beans/TypeResolver
+instanceKlass java/beans/MethodRef
+instanceKlass com/sun/beans/util/Cache$CacheEntry
+instanceKlass com/sun/beans/util/Cache
+instanceKlass com/sun/beans/finder/AbstractFinder
+instanceKlass com/sun/beans/finder/ClassFinder
+instanceKlass org/springframework/beans/ExtendedBeanInfo
+instanceKlass java/beans/BeanInfo
+instanceKlass org/springframework/beans/ExtendedBeanInfoFactory
+instanceKlass org/springframework/beans/BeanInfoFactory
+instanceKlass org/springframework/beans/CachedIntrospectionResults
+instanceKlass org/springframework/beans/PropertyAccessorUtils
+instanceKlass org/springframework/beans/factory/support/DefaultSingletonBeanRegistry$$Lambda$139
+instanceKlass org/springframework/beans/factory/support/DefaultSingletonBeanRegistry$$Lambda$138
+instanceKlass org/springframework/beans/factory/support/DisposableBeanAdapter
+instanceKlass org/springframework/beans/factory/DisposableBean
+instanceKlass org/springframework/beans/factory/InitializingBean
+instanceKlass org/springframework/expression/spel/support/StandardTypeConverter
+instanceKlass org/springframework/expression/TypeConverter
+instanceKlass org/springframework/expression/spel/support/StandardTypeLocator
+instanceKlass org/springframework/expression/TypeLocator
+instanceKlass org/springframework/context/expression/BeanFactoryResolver
+instanceKlass org/springframework/expression/BeanResolver
+instanceKlass org/springframework/context/expression/EnvironmentAccessor
+instanceKlass org/springframework/context/expression/MapAccessor
+instanceKlass org/springframework/expression/spel/CompilablePropertyAccessor
+instanceKlass org/springframework/asm/Opcodes
+instanceKlass org/springframework/context/expression/BeanFactoryAccessor
+instanceKlass org/springframework/expression/spel/support/ReflectivePropertyAccessor
+instanceKlass org/springframework/context/expression/BeanExpressionContextAccessor
+instanceKlass org/springframework/expression/PropertyAccessor
+instanceKlass org/springframework/expression/TypedValue
+instanceKlass org/springframework/expression/spel/support/StandardOperatorOverloader
+instanceKlass org/springframework/expression/OperatorOverloader
+instanceKlass org/springframework/expression/spel/support/StandardTypeComparator
+instanceKlass org/springframework/expression/TypeComparator
+instanceKlass org/springframework/expression/spel/support/StandardEvaluationContext
+instanceKlass org/springframework/expression/EvaluationContext
+instanceKlass org/springframework/expression/common/LiteralExpression
+instanceKlass org/springframework/expression/Expression
+instanceKlass org/springframework/beans/factory/support/BeanDefinitionValueResolver
+instanceKlass org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory$$Lambda$137
+instanceKlass org/springframework/core/io/ContextResource
+instanceKlass org/springframework/beans/BeanWrapper
+instanceKlass org/springframework/beans/ConfigurablePropertyAccessor
+instanceKlass org/springframework/beans/PropertyAccessor
+instanceKlass org/springframework/beans/factory/parsing/PassThroughSourceExtractor
+instanceKlass org/springframework/beans/factory/support/AbstractBeanFactory$$Lambda$136
+instanceKlass org/springframework/beans/factory/support/NullBean
+instanceKlass org/springframework/beans/factory/BeanFactoryUtils$$Lambda$135
+instanceKlass org/springframework/context/annotation/ComponentScan
+instanceKlass org/springframework/beans/factory/config/RuntimeBeanReference
+instanceKlass org/springframework/beans/factory/config/BeanReference
+instanceKlass org/springframework/beans/MutablePropertyValues
+instanceKlass org/springframework/beans/PropertyValues
+instanceKlass org/springframework/beans/factory/support/BeanDefinitionBuilder
+instanceKlass org/springframework/boot/autoconfigure/SharedMetadataReaderFactoryContextInitializer$CachingMetadataReaderFactoryPostProcessor$$Lambda$134
+instanceKlass org/springframework/boot/autoconfigure/SharedMetadataReaderFactoryContextInitializer$SharedMetadataReaderFactoryBean
+instanceKlass org/springframework/context/support/PostProcessorRegistrationDelegate
+instanceKlass org/springframework/context/support/ApplicationListenerDetector
+instanceKlass org/springframework/beans/factory/ObjectFactory
+instanceKlass org/springframework/context/MessageSourceAware
+instanceKlass org/springframework/context/ApplicationEventPublisherAware
+instanceKlass org/springframework/beans/factory/config/BeanExpressionContext
+instanceKlass org/springframework/beans/factory/config/EmbeddedValueResolver
+instanceKlass org/springframework/util/StringValueResolver
+instanceKlass org/springframework/context/support/ApplicationContextAwareProcessor
+instanceKlass org/springframework/beans/support/ResourceEditorRegistrar
+instanceKlass org/springframework/beans/PropertyEditorRegistrar
+instanceKlass org/springframework/expression/spel/SpelParserConfiguration
+instanceKlass org/springframework/expression/common/TemplateAwareExpressionParser
+instanceKlass org/springframework/expression/ExpressionParser
+instanceKlass org/springframework/context/expression/StandardBeanExpressionResolver$1
+instanceKlass org/springframework/expression/ParserContext
+instanceKlass org/springframework/context/expression/StandardBeanExpressionResolver
+instanceKlass org/springframework/beans/factory/config/BeanExpressionResolver
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$PropertySourceOrderingPostProcessor
+instanceKlass org/springframework/boot/logging/DeferredLog$1
+instanceKlass org/springframework/beans/factory/support/BeanDefinitionReaderUtils
+instanceKlass org/springframework/context/annotation/Description
+instanceKlass org/springframework/context/annotation/Role
+instanceKlass org/springframework/context/annotation/DependsOn
+instanceKlass org/springframework/context/annotation/Primary
+instanceKlass org/springframework/context/annotation/Lazy
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/core/annotation/AnnotationUtils$$Lambda$133
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/core/annotation/AnnotationUtils$DefaultValueHolder
+instanceKlass org/springframework/core/annotation/AnnotatedElementUtils$MergedAnnotationAttributesProcessor
+instanceKlass org/springframework/context/annotation/ScopeMetadata
+instanceKlass org/springframework/core/annotation/AnnotatedElementUtils$SimpleAnnotationProcessor
+instanceKlass org/springframework/core/annotation/AnnotatedElementUtils$Processor
+instanceKlass org/springframework/core/annotation/AnnotatedElementUtils
+instanceKlass org/springframework/context/annotation/Conditional
+instanceKlass org/springframework/core/type/StandardClassMetadata
+instanceKlass org/springframework/core/type/AnnotationMetadata
+instanceKlass org/springframework/core/type/AnnotatedTypeMetadata
+instanceKlass org/springframework/core/type/ClassMetadata
+instanceKlass org/springframework/beans/factory/annotation/AnnotatedBeanDefinition
+instanceKlass org/springframework/beans/factory/config/BeanDefinitionCustomizer
+instanceKlass org/springframework/cloud/bootstrap/BootstrapImportSelector
+instanceKlass org/springframework/context/annotation/DeferredImportSelector
+instanceKlass org/springframework/context/annotation/ImportSelector
+instanceKlass org/springframework/context/annotation/Import
+instanceKlass org/springframework/context/annotation/Configuration
+instanceKlass org/springframework/util/xml/XmlValidationModeDetector
+instanceKlass org/springframework/util/xml/SimpleSaxErrorHandler
+instanceKlass org/springframework/beans/factory/xml/DefaultDocumentLoader
+instanceKlass org/springframework/beans/factory/xml/DocumentLoader
+instanceKlass org/springframework/beans/factory/parsing/NullSourceExtractor
+instanceKlass org/springframework/beans/factory/parsing/SourceExtractor
+instanceKlass org/springframework/beans/factory/parsing/EmptyReaderEventListener
+instanceKlass org/springframework/beans/factory/parsing/ReaderEventListener
+instanceKlass org/springframework/beans/factory/parsing/FailFastProblemReporter
+instanceKlass org/springframework/beans/factory/parsing/ProblemReporter
+instanceKlass org/springframework/beans/factory/xml/DefaultBeanDefinitionDocumentReader
+instanceKlass org/springframework/beans/factory/xml/BeanDefinitionDocumentReader
+instanceKlass org/springframework/beans/factory/support/DefaultBeanNameGenerator
+instanceKlass org/springframework/core/Constants
+instanceKlass org/springframework/beans/factory/support/AbstractBeanDefinitionReader
+instanceKlass org/springframework/beans/factory/support/BeanDefinitionReader
+instanceKlass org/springframework/boot/context/ConfigurationWarningsApplicationContextInitializer$ComponentScanPackageCheck
+instanceKlass org/springframework/boot/context/ConfigurationWarningsApplicationContextInitializer$Check
+instanceKlass org/springframework/boot/context/ConfigurationWarningsApplicationContextInitializer$ConfigurationWarningsPostProcessor
+instanceKlass org/springframework/beans/factory/FactoryBean
+instanceKlass org/springframework/beans/factory/BeanFactoryUtils
+instanceKlass org/springframework/boot/autoconfigure/logging/ConditionEvaluationReportLoggingListener$ConditionEvaluationReportListener
+instanceKlass org/springframework/boot/context/ContextIdApplicationContextInitializer$ContextId
+instanceKlass org/springframework/boot/autoconfigure/SharedMetadataReaderFactoryContextInitializer$CachingMetadataReaderFactoryPostProcessor
+instanceKlass org/springframework/beans/factory/support/DefaultListableBeanFactory$$Lambda$132
+instanceKlass org/springframework/beans/factory/support/DefaultListableBeanFactory$$Lambda$131
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass org/springframework/boot/autoconfigure/condition/ConditionEvaluationReport$AncestorsMatchedCondition
+instanceKlass org/springframework/context/annotation/Condition
+instanceKlass org/springframework/boot/autoconfigure/condition/ConditionEvaluationReport
+instanceKlass org/springframework/boot/diagnostics/AbstractFailureAnalyzer
+instanceKlass org/springframework/boot/diagnostics/FailureAnalyzer
+instanceKlass org/springframework/boot/diagnostics/FailureAnalyzers
+instanceKlass org/springframework/boot/SpringBootExceptionReporter
+instanceKlass org/springframework/context/index/CandidateComponentsIndexLoader$$Lambda$130
+instanceKlass org/springframework/context/index/CandidateComponentsIndex
+instanceKlass org/springframework/context/index/CandidateComponentsIndexLoader
+instanceKlass org/springframework/core/io/DefaultResourceLoader$$Lambda$129
+instanceKlass org/springframework/core/type/classreading/MetadataReader
+instanceKlass org/springframework/core/type/classreading/SimpleMetadataReaderFactory
+instanceKlass org/springframework/core/type/classreading/MetadataReaderFactory
+instanceKlass org/springframework/core/io/support/ResourcePatternUtils
+instanceKlass javax/inject/Named
+instanceKlass javax/annotation/ManagedBean
+instanceKlass org/springframework/stereotype/Indexed
+instanceKlass org/springframework/stereotype/Component
+instanceKlass org/springframework/core/type/filter/AbstractTypeHierarchyTraversingFilter
+instanceKlass org/springframework/core/type/filter/TypeFilter
+instanceKlass org/springframework/beans/factory/support/BeanDefinitionDefaults
+instanceKlass org/springframework/context/annotation/ClassPathScanningCandidateComponentProvider
+instanceKlass org/springframework/context/event/DefaultEventListenerFactory
+instanceKlass org/springframework/context/event/EventListenerFactory
+instanceKlass org/springframework/context/event/EventListenerMethodProcessor
+instanceKlass org/springframework/beans/factory/SmartInitializingSingleton
+instanceKlass org/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor
+instanceKlass org/springframework/beans/factory/config/DestructionAwareBeanPostProcessor
+instanceKlass org/springframework/beans/factory/config/InstantiationAwareBeanPostProcessorAdapter
+instanceKlass org/springframework/beans/factory/config/SmartInstantiationAwareBeanPostProcessor
+instanceKlass org/springframework/beans/factory/config/InstantiationAwareBeanPostProcessor
+instanceKlass org/springframework/beans/factory/support/MergedBeanDefinitionPostProcessor
+instanceKlass org/springframework/beans/factory/config/BeanPostProcessor
+instanceKlass org/springframework/beans/factory/config/BeanDefinitionHolder
+instanceKlass org/springframework/beans/factory/support/DefaultListableBeanFactory$$Lambda$128
+instanceKlass org/springframework/beans/factory/support/DefaultListableBeanFactory$$Lambda$127
+instanceKlass org/springframework/context/annotation/ConfigurationClassPostProcessor
+instanceKlass org/springframework/context/EnvironmentAware
+instanceKlass org/springframework/context/ResourceLoaderAware
+instanceKlass org/springframework/beans/factory/support/BeanDefinitionRegistryPostProcessor
+instanceKlass org/springframework/beans/factory/config/BeanFactoryPostProcessor
+instanceKlass org/springframework/core/AttributeAccessorSupport
+instanceKlass org/springframework/beans/factory/config/BeanDefinition
+instanceKlass org/springframework/beans/BeanMetadataElement
+instanceKlass org/springframework/core/AttributeAccessor
+instanceKlass javax/inject/Qualifier
+instanceKlass org/springframework/beans/factory/annotation/Qualifier
+instanceKlass org/springframework/beans/factory/annotation/Value
+instanceKlass javax/annotation/Resource
+instanceKlass org/springframework/context/annotation/AnnotationConfigUtils
+instanceKlass org/springframework/context/annotation/ConditionEvaluator$ConditionContextImpl
+instanceKlass org/springframework/context/annotation/ConditionContext
+instanceKlass org/springframework/context/annotation/ConditionEvaluator
+instanceKlass org/springframework/context/annotation/Scope
+instanceKlass org/springframework/context/annotation/AnnotationScopeMetadataResolver
+instanceKlass org/springframework/context/annotation/ScopeMetadataResolver
+instanceKlass org/springframework/context/annotation/AnnotationBeanNameGenerator
+instanceKlass org/springframework/context/annotation/AnnotatedBeanDefinitionReader
+instanceKlass org/springframework/beans/factory/support/SimpleAutowireCandidateResolver
+instanceKlass org/springframework/beans/factory/support/AutowireCandidateResolver
+instanceKlass org/springframework/beans/factory/BeanNameAware
+instanceKlass org/springframework/core/LocalVariableTableParameterNameDiscoverer
+instanceKlass org/springframework/core/StandardReflectionParameterNameDiscoverer
+instanceKlass org/springframework/core/PrioritizedParameterNameDiscoverer
+instanceKlass org/springframework/core/ParameterNameDiscoverer
+instanceKlass org/springframework/beans/factory/support/SimpleInstantiationStrategy
+instanceKlass org/springframework/beans/factory/support/InstantiationStrategy
+instanceKlass javax/inject/Provider
+instanceKlass org/springframework/core/SimpleAliasRegistry
+instanceKlass org/springframework/beans/factory/config/ConfigurableListableBeanFactory
+instanceKlass org/springframework/beans/factory/config/ConfigurableBeanFactory
+instanceKlass org/springframework/beans/factory/config/SingletonBeanRegistry
+instanceKlass org/springframework/beans/factory/config/AutowireCapableBeanFactory
+instanceKlass org/springframework/context/annotation/AnnotationConfigRegistry
+instanceKlass sun/reflect/generics/tree/VoidDescriptor
+instanceKlass org/springframework/core/SerializableTypeWrapper$MethodInvokeTypeProvider
+instanceKlass java/lang/reflect/Proxy$1
+instanceKlass java/lang/reflect/Proxy$KeyX
+instanceKlass org/springframework/core/SerializableTypeWrapper$TypeProxyInvocationHandler
+instanceKlass org/springframework/core/GraalDetector
+instanceKlass org/springframework/boot/context/properties/source/ConfigurationPropertyName$Elements$$Lambda$126
+instanceKlass org/springframework/boot/context/properties/bind/JavaBeanBinder$BeanProperty$$Lambda$125
+instanceKlass org/springframework/core/SerializableTypeWrapper$MethodParameterTypeProvider
+instanceKlass org/springframework/core/SerializableTypeWrapper$TypeProvider
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/core/MethodParameter$$Lambda$124
+instanceKlass org/springframework/core/MethodParameter
+instanceKlass org/springframework/boot/context/properties/bind/JavaBeanBinder$Bean$$Lambda$123
+instanceKlass org/springframework/boot/context/properties/bind/JavaBeanBinder$BeanSupplier
+instanceKlass org/springframework/boot/context/properties/bind/JavaBeanBinder$Bean$$Lambda$122
+instanceKlass org/springframework/boot/context/properties/bind/BeanPropertyName
+instanceKlass org/springframework/boot/context/properties/bind/JavaBeanBinder$Bean$$Lambda$121
+instanceKlass java/beans/FeatureDescriptor
+instanceKlass com/sun/beans/WeakCache
+instanceKlass java/beans/Introspector
+instanceKlass org/springframework/boot/context/properties/bind/JavaBeanBinder$Bean$$Lambda$120
+instanceKlass org/springframework/boot/context/properties/bind/JavaBeanBinder$Bean$$Lambda$119
+instanceKlass org/springframework/boot/context/properties/bind/JavaBeanBinder$BeanProperty
+instanceKlass org/springframework/beans/factory/support/BeanNameGenerator
+instanceKlass org/springframework/boot/SpringBootExceptionHandler
+instanceKlass org/springframework/boot/BeanDefinitionLoader
+instanceKlass org/springframework/beans/factory/support/BeanDefinitionRegistry
+instanceKlass org/springframework/core/AliasRegistry
+instanceKlass org/springframework/boot/ApplicationRunner
+instanceKlass org/springframework/boot/CommandLineRunner
+instanceKlass org/springframework/boot/Banner
+instanceKlass org/springframework/boot/ExitCodeGenerator
+instanceKlass org/springframework/boot/context/properties/bind/JavaBeanBinder$Bean
+instanceKlass org/springframework/boot/context/properties/bind/Binder$$Lambda$118
+instanceKlass org/springframework/boot/context/properties/bind/Binder$$Lambda$117
+instanceKlass org/springframework/boot/context/properties/bind/Binder$$Lambda$116
+instanceKlass org/springframework/boot/context/properties/bind/Binder$$Lambda$115
+instanceKlass org/springframework/boot/context/properties/bind/BeanPropertyBinder
+instanceKlass org/springframework/boot/context/logging/LoggingApplicationListener$$Lambda$114
+instanceKlass org/springframework/boot/context/logging/LoggingApplicationListener$$Lambda$113
+instanceKlass org/springframework/boot/context/logging/LoggingApplicationListener$$Lambda$112
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass ch/qos/logback/classic/pattern/TargetLengthBasedClassNameAbbreviator
+instanceKlass ch/qos/logback/classic/pattern/Abbreviator
+instanceKlass ch/qos/logback/core/pattern/ConverterUtil
+instanceKlass ch/qos/logback/core/pattern/FormatInfo
+instanceKlass ch/qos/logback/core/pattern/parser/Node
+instanceKlass ch/qos/logback/core/pattern/util/AsIsEscapeUtil
+instanceKlass ch/qos/logback/core/pattern/parser/OptionTokenizer
+instanceKlass ch/qos/logback/core/pattern/parser/TokenStream$1
+instanceKlass ch/qos/logback/core/pattern/util/RestrictedEscapeUtil
+instanceKlass ch/qos/logback/core/pattern/parser/TokenStream
+instanceKlass ch/qos/logback/core/pattern/util/RegularEscapeUtil
+instanceKlass ch/qos/logback/core/pattern/util/IEscapeUtil
+instanceKlass ch/qos/logback/classic/pattern/EnsureExceptionHandling
+instanceKlass ch/qos/logback/core/pattern/PostCompileProcessor
+instanceKlass ch/qos/logback/core/pattern/parser/Token
+instanceKlass java/util/Vector$Itr
+instanceKlass ch/qos/logback/core/subst/NodeToStringTransformer$1
+instanceKlass ch/qos/logback/core/CoreConstants
+instanceKlass ch/qos/logback/core/subst/Node
+instanceKlass ch/qos/logback/core/subst/Parser$1
+instanceKlass ch/qos/logback/core/subst/Parser
+instanceKlass ch/qos/logback/core/subst/Token
+instanceKlass ch/qos/logback/core/subst/Tokenizer$1
+instanceKlass ch/qos/logback/core/subst/Tokenizer
+instanceKlass ch/qos/logback/core/subst/NodeToStringTransformer
+instanceKlass ch/qos/logback/classic/jul/JULHelper
+instanceKlass org/springframework/boot/logging/logback/DefaultLogbackConfiguration
+instanceKlass org/springframework/boot/logging/logback/LogbackConfigurator
+instanceKlass ch/qos/logback/classic/spi/LoggerContextListener
+instanceKlass ch/qos/logback/core/LifeCycleManager
+instanceKlass org/springframework/boot/logging/LoggingInitializationContext
+instanceKlass org/springframework/boot/logging/LogFile
+instanceKlass org/springframework/boot/system/ApplicationPid
+instanceKlass org/springframework/boot/logging/LoggingSystemProperties
+instanceKlass org/springframework/boot/ansi/AnsiElement
+instanceKlass org/springframework/boot/context/config/AnsiOutputApplicationListener$$Lambda$111
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/util/stream/Sink$ChainedInt
+instanceKlass java/util/stream/ForEachOps$ForEachOp
+instanceKlass java/util/stream/ForEachOps
+instanceKlass org/springframework/boot/convert/StringToEnumIgnoringCaseConverterFactory$StringToEnum$$Lambda$110
+instanceKlass org/springframework/boot/convert/StringToEnumIgnoringCaseConverterFactory$StringToEnum$$Lambda$109
+instanceKlass java/util/function/IntUnaryOperator
+instanceKlass org/springframework/boot/convert/StringToEnumIgnoringCaseConverterFactory$StringToEnum$$Lambda$108
+instanceKlass org/springframework/boot/ansi/AnsiOutput
+instanceKlass org/springframework/boot/convert/StringToEnumIgnoringCaseConverterFactory$StringToEnum
+instanceKlass org/springframework/boot/convert/StringToEnumIgnoringCaseConverterFactory$$Lambda$107
+instanceKlass org/springframework/util/AntPathMatcher$PathSeparatorPatternCache
+instanceKlass org/springframework/util/AntPathMatcher
+instanceKlass org/springframework/util/PathMatcher
+instanceKlass org/springframework/core/io/support/PathMatchingResourcePatternResolver
+instanceKlass org/springframework/boot/context/properties/bind/PropertySourcesPlaceholdersResolver$$Lambda$106
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Loader$$Lambda$105
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Loader$$Lambda$104
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Loader$$Lambda$103
+instanceKlass java/util/stream/AbstractSpinedBuffer
+instanceKlass java/util/stream/Node$Builder
+instanceKlass java/util/stream/Node$OfDouble
+instanceKlass java/util/stream/Node$OfLong
+instanceKlass java/util/stream/Node$OfInt
+instanceKlass java/util/stream/Node$OfPrimitive
+instanceKlass java/util/stream/Nodes$EmptyNode
+instanceKlass java/util/stream/Node
+instanceKlass java/util/stream/Nodes
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Loader$$Lambda$102
+instanceKlass java/util/function/IntFunction
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Loader$$Lambda$101
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Loader$$Lambda$100
+instanceKlass java/util/LinkedList$LLSpliterator
+instanceKlass org/springframework/boot/logging/DeferredLog$Line
+instanceKlass org/springframework/core/io/WritableResource
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Loader$$Lambda$99
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Loader$$Lambda$98
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/core/convert/support/ConversionUtils
+instanceKlass org/springframework/core/convert/support/GenericConversionService$ConverterCacheKey
+instanceKlass org/springframework/boot/context/properties/source/ConfigurationProperty
+instanceKlass org/springframework/boot/origin/OriginProvider
+instanceKlass org/springframework/boot/origin/PropertySourceOrigin
+instanceKlass org/springframework/boot/origin/Origin
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Loader$$Lambda$97
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/boot/context/properties/source/ConfigurationPropertyName$$Lambda$96
+instanceKlass org/springframework/boot/context/properties/source/ConfigurationPropertyName$ElementCharPredicate
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Loader$$Lambda$95
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$DocumentConsumer
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Document
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Loader$$Lambda$94
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Loader$$Lambda$93
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$DocumentFilterFactory
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$DocumentFilter
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Loader$$Lambda$92
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Loader$$Lambda$91
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Profile
+instanceKlass org/springframework/boot/context/properties/source/SpringConfigurationPropertySource$$Lambda$90
+instanceKlass org/springframework/boot/env/YamlPropertySourceLoader
+instanceKlass org/springframework/boot/env/PropertiesPropertySourceLoader
+instanceKlass org/springframework/boot/env/PropertySourceLoader
+instanceKlass org/springframework/core/io/DefaultResourceLoader
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener$Loader
+instanceKlass org/springframework/cloud/commons/util/InetUtils$$Lambda$89
+instanceKlass org/springframework/cloud/commons/util/InetUtils$HostInfo
+instanceKlass org/springframework/cloud/commons/util/InetUtils$$Lambda$88
+instanceKlass org/springframework/cloud/commons/util/InetUtils
+instanceKlass org/springframework/boot/context/properties/bind/BindResult
+instanceKlass org/springframework/boot/context/properties/source/SpringIterableConfigurationPropertySource$$Lambda$87
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/boot/context/properties/bind/BindConverter$CompositeConversionService
+instanceKlass org/springframework/beans/TypeConverterDelegate
+instanceKlass org/springframework/beans/PropertyEditorRegistrySupport
+instanceKlass org/springframework/beans/PropertyEditorRegistry
+instanceKlass org/springframework/beans/TypeConverter
+instanceKlass org/springframework/boot/context/properties/bind/BindConverter$TypeConverterConverter
+instanceKlass java/beans/PropertyEditorSupport
+instanceKlass java/beans/PropertyEditor
+instanceKlass org/springframework/boot/context/properties/bind/BindConverter
+instanceKlass org/springframework/boot/context/properties/bind/Binder$Context
+instanceKlass org/springframework/boot/context/properties/bind/BindContext
+instanceKlass org/springframework/boot/context/properties/bind/BindHandler$1
+instanceKlass org/springframework/boot/context/properties/bind/BindHandler
+instanceKlass org/springframework/boot/context/properties/bind/Bindable$$Lambda$86
+instanceKlass org/springframework/boot/context/properties/bind/Bindable$$Lambda$85
+instanceKlass org/springframework/boot/context/properties/bind/PropertySourcesPlaceholdersResolver
+instanceKlass org/springframework/boot/context/properties/bind/PlaceholdersResolver
+instanceKlass org/springframework/boot/context/properties/bind/JavaBeanBinder
+instanceKlass org/springframework/boot/context/properties/bind/BeanBinder
+instanceKlass org/springframework/boot/context/properties/bind/Binder
+instanceKlass org/springframework/cloud/commons/util/InetUtilsProperties
+instanceKlass org/springframework/boot/env/SpringApplicationJsonEnvironmentPostProcessor$$Lambda$84
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/boot/env/SpringApplicationJsonEnvironmentPostProcessor$$Lambda$83
+instanceKlass org/springframework/boot/env/SpringApplicationJsonEnvironmentPostProcessor$$Lambda$82
+instanceKlass org/springframework/boot/env/SpringApplicationJsonEnvironmentPostProcessor$JsonPropertyValue
+instanceKlass org/springframework/boot/env/SystemEnvironmentPropertySourceEnvironmentPostProcessor
+instanceKlass org/springframework/boot/env/SpringApplicationJsonEnvironmentPostProcessor
+instanceKlass org/springframework/boot/cloud/CloudFoundryVcapEnvironmentPostProcessor
+instanceKlass org/springframework/cloud/client/HostInfoEnvironmentPostProcessor
+instanceKlass org/springframework/cloud/bootstrap/BootstrapImportSelectorConfiguration
+instanceKlass org/springframework/boot/builder/SpringApplicationBuilder
+instanceKlass org/springframework/boot/builder/ParentContextApplicationContextInitializer
+instanceKlass org/springframework/core/env/AbstractPropertyResolver$$Lambda$81
+instanceKlass org/springframework/util/PropertyPlaceholderHelper$PlaceholderResolver
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/util/PropertyPlaceholderHelper
+instanceKlass java/util/stream/Sink$OfInt
+instanceKlass java/util/function/IntConsumer
+instanceKlass java/util/Spliterators$IntIteratorSpliterator
+instanceKlass java/lang/CharSequence$1CharIterator
+instanceKlass java/util/PrimitiveIterator$OfInt
+instanceKlass java/util/PrimitiveIterator
+instanceKlass java/util/stream/MatchOps$$Lambda$80
+instanceKlass java/util/stream/MatchOps$BooleanTerminalSink
+instanceKlass java/util/stream/MatchOps$MatchOp
+instanceKlass java/util/stream/MatchOps
+instanceKlass org/springframework/boot/context/properties/source/SystemEnvironmentPropertyMapper$$Lambda$79
+instanceKlass java/util/function/IntPredicate
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/util/stream/IntStream
+instanceKlass java/lang/CharSequence$$Lambda$78
+instanceKlass org/springframework/boot/context/properties/source/SystemEnvironmentPropertyMapper$$Lambda$77
+instanceKlass org/springframework/boot/context/properties/source/SystemEnvironmentPropertyMapper
+instanceKlass org/springframework/boot/context/properties/source/SpringIterableConfigurationPropertySource$Cache
+instanceKlass org/springframework/boot/context/properties/source/SpringIterableConfigurationPropertySource$CacheKey
+instanceKlass org/springframework/boot/context/properties/source/DefaultPropertyMapper$LastMapping
+instanceKlass org/springframework/boot/context/properties/source/SpringConfigurationPropertySource$$Lambda$76
+instanceKlass org/springframework/boot/context/properties/source/IterableConfigurationPropertySource
+instanceKlass org/springframework/boot/context/properties/source/DefaultPropertyMapper
+instanceKlass org/springframework/boot/context/properties/source/PropertyMapping
+instanceKlass org/springframework/boot/context/properties/source/SpringConfigurationPropertySource$DelegatingPropertyMapper
+instanceKlass org/springframework/boot/context/properties/source/PropertyMapper
+instanceKlass org/springframework/boot/context/properties/source/SpringConfigurationPropertySource
+instanceKlass org/springframework/boot/context/properties/source/SpringConfigurationPropertySources$$Lambda$75
+instanceKlass org/springframework/boot/context/properties/source/ConfigurationPropertySource
+instanceKlass org/springframework/boot/context/properties/source/SpringConfigurationPropertySources$SourcesIterator
+instanceKlass org/springframework/boot/context/properties/source/SpringConfigurationPropertySources
+instanceKlass org/springframework/boot/origin/OriginLookup
+instanceKlass org/springframework/boot/context/properties/source/ConfigurationPropertySources
+instanceKlass org/springframework/boot/convert/StringToEnumIgnoringCaseConverterFactory
+instanceKlass org/springframework/boot/convert/NumberToDataSizeConverter
+instanceKlass org/springframework/util/unit/DataSize
+instanceKlass org/springframework/boot/convert/StringToDataSizeConverter
+instanceKlass org/springframework/boot/convert/DurationToNumberConverter
+instanceKlass org/springframework/boot/convert/NumberToDurationConverter
+instanceKlass org/springframework/boot/convert/DurationToStringConverter
+instanceKlass org/springframework/boot/convert/StringToDurationConverter
+instanceKlass org/springframework/boot/convert/DelimitedStringToCollectionConverter
+instanceKlass org/springframework/boot/convert/DelimitedStringToArrayConverter
+instanceKlass org/springframework/boot/convert/CollectionToDelimitedStringConverter
+instanceKlass org/springframework/boot/convert/ArrayToDelimitedStringConverter
+instanceKlass org/springframework/boot/convert/IsoOffsetFormatter
+instanceKlass org/springframework/boot/convert/InetAddressFormatter
+instanceKlass org/springframework/boot/convert/CharArrayFormatter
+instanceKlass javax/naming/spi/NamingManager
+instanceKlass com/sun/naming/internal/VersionHelper12$4
+instanceKlass com/sun/naming/internal/VersionHelper12$InputStreamEnumeration$1
+instanceKlass com/sun/naming/internal/VersionHelper12$InputStreamEnumeration
+instanceKlass javax/naming/NamingEnumeration
+instanceKlass com/sun/naming/internal/VersionHelper12$5
+instanceKlass com/sun/naming/internal/VersionHelper12$6
+instanceKlass com/sun/naming/internal/VersionHelper12$2
+instanceKlass com/sun/naming/internal/VersionHelper
+instanceKlass com/sun/naming/internal/ResourceManager
+instanceKlass javax/naming/InitialContext
+instanceKlass javax/naming/Context
+instanceKlass org/springframework/core/SpringProperties
+instanceKlass org/springframework/jndi/JndiAccessor
+instanceKlass org/springframework/core/env/AbstractPropertyResolver
+instanceKlass org/springframework/core/env/MutablePropertySources
+instanceKlass org/springframework/core/env/PropertySources
+instanceKlass org/springframework/core/env/AbstractEnvironment
+instanceKlass org/springframework/web/context/ConfigurableWebEnvironment
+instanceKlass org/springframework/core/env/ConfigurableEnvironment
+instanceKlass org/springframework/core/env/ConfigurablePropertyResolver
+instanceKlass org/springframework/core/env/Environment
+instanceKlass org/springframework/core/env/PropertyResolver
+instanceKlass org/springframework/boot/SpringApplication$1
+instanceKlass org/springframework/core/env/CommandLineArgs
+instanceKlass org/springframework/core/env/SimpleCommandLineArgsParser
+instanceKlass org/springframework/core/env/PropertySource
+instanceKlass org/springframework/boot/DefaultApplicationArguments
+instanceKlass org/springframework/boot/ApplicationArguments
+instanceKlass org/springframework/boot/autoconfigure/BackgroundPreinitializer$CharsetInitializer
+instanceKlass org/springframework/boot/autoconfigure/BackgroundPreinitializer$JacksonInitializer
+instanceKlass org/apache/tomcat/util/buf/StringUtils
+instanceKlass org/apache/tomcat/util/modeler/ManagedBean$$Lambda$74
+instanceKlass org/apache/tomcat/util/digester/SetPropertiesRule$Listener
+instanceKlass java/util/function/UnaryOperator
+instanceKlass org/apache/tomcat/util/modeler/BaseModelMBean
+instanceKlass javax/management/modelmbean/ModelMBeanNotificationBroadcaster
+instanceKlass java/lang/Throwable$PrintStreamOrWriter
+instanceKlass javax/management/remote/rmi/RMIConnectionImpl$PrivilegedOperation
+instanceKlass org/apache/tomcat/util/modeler/FeatureInfo
+instanceKlass org/apache/tomcat/util/modeler/ManagedBean
+instanceKlass sun/rmi/transport/DGCAckHandler$1
+instanceKlass sun/rmi/transport/DGCAckHandler
+instanceKlass com/sun/jmx/remote/internal/ServerCommunicatorAdmin$Timeout
+instanceKlass org/apache/tomcat/util/IntrospectionUtils
+instanceKlass com/sun/jmx/remote/internal/ServerCommunicatorAdmin
+instanceKlass javax/management/remote/rmi/RMIConnectionImpl$3
+instanceKlass javax/management/remote/rmi/RMIConnectionImpl$2
+instanceKlass org/xml/sax/helpers/AttributesImpl
+instanceKlass javax/management/remote/rmi/RMIConnectionImpl$1
+instanceKlass com/sun/jmx/remote/security/SubjectDelegator
+instanceKlass javax/management/remote/rmi/RMIConnectionImpl
+instanceKlass java/rmi/server/Unreferenced
+instanceKlass com/sun/org/apache/xerces/internal/impl/Constants$ArrayEnumeration
+instanceKlass com/sun/org/apache/xerces/internal/impl/Constants
+instanceKlass sun/rmi/server/UnicastServerRef$MyChecker
+instanceKlass sun/rmi/server/MarshalInputStream$StreamChecker
+instanceKlass java/io/ObjectStreamClass$5
+instanceKlass java/io/ObjectStreamClass$4
+instanceKlass java/io/ObjectStreamClass$3
+instanceKlass java/io/ObjectStreamClass$MemberSignature
+instanceKlass org/apache/tomcat/util/digester/DocumentProperties$Charset
+instanceKlass java/io/ObjectStreamClass$1
+instanceKlass java/util/concurrent/locks/LockSupport
+instanceKlass sun/rmi/server/MarshalOutputStream$1
+instanceKlass sun/rmi/transport/SequenceEntry
+instanceKlass com/sun/org/apache/xerces/internal/parsers/AbstractSAXParser$LocatorProxy
+instanceKlass org/xml/sax/ext/Locator2
+instanceKlass org/xml/sax/Locator
+instanceKlass java/util/concurrent/Executors$RunnableAdapter
+instanceKlass java/util/concurrent/Executors
+instanceKlass com/sun/org/apache/xerces/internal/util/XMLSymbols
+instanceKlass java/util/concurrent/FutureTask$WaitNode
+instanceKlass java/util/concurrent/Callable
+instanceKlass java/util/concurrent/FutureTask
+instanceKlass sun/rmi/transport/DGCImpl$1
+instanceKlass sun/rmi/transport/DGCImpl$LeaseInfo
+instanceKlass com/sun/org/apache/xerces/internal/util/XMLChar
+instanceKlass java/rmi/dgc/VMID
+instanceKlass com/sun/xml/internal/stream/Entity
+instanceKlass java/rmi/dgc/Lease
+instanceKlass com/sun/xml/internal/stream/util/BufferAllocator
+instanceKlass com/sun/xml/internal/stream/util/ThreadLocalBufferAllocator
+instanceKlass java/io/ObjectStreamClass$ExceptionInfo
+instanceKlass sun/rmi/server/LoaderHandler
+instanceKlass com/sun/org/apache/xerces/internal/utils/XMLLimitAnalyzer
+instanceKlass com/sun/org/apache/xerces/internal/xni/parser/XMLInputSource
+instanceKlass java/rmi/server/RMIClassLoader$1
+instanceKlass com/sun/org/apache/xerces/internal/util/ErrorHandlerWrapper
+instanceKlass com/sun/org/apache/xerces/internal/xni/parser/XMLErrorHandler
+instanceKlass java/rmi/server/RMIClassLoaderSpi
+instanceKlass java/rmi/server/RMIClassLoader
+instanceKlass com/sun/org/apache/xerces/internal/util/EntityResolver2Wrapper
+instanceKlass com/sun/org/apache/xerces/internal/impl/ExternalSubsetResolver
+instanceKlass sun/rmi/transport/Transport$1
+instanceKlass sun/rmi/transport/Transport$$Lambda$73
+instanceKlass java/io/ObjectInputStream$ValidationList
+instanceKlass java/io/ObjectInputStream$HandleTable$HandleList
+instanceKlass java/io/ObjectInputStream$HandleTable
+instanceKlass com/sun/org/apache/xerces/internal/parsers/AbstractSAXParser$AttributesProxy
+instanceKlass org/xml/sax/ext/Attributes2
+instanceKlass org/xml/sax/Attributes
+instanceKlass org/xml/sax/AttributeList
+instanceKlass java/rmi/registry/Registry
+instanceKlass com/sun/org/apache/xerces/internal/util/PropertyState
+instanceKlass java/rmi/activation/ActivationGroupDesc
+instanceKlass java/rmi/activation/ActivationMonitor
+instanceKlass com/sun/org/apache/xerces/internal/util/FeatureState
+instanceKlass java/rmi/activation/ActivationID
+instanceKlass java/rmi/activation/ActivationDesc
+instanceKlass com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter
+instanceKlass com/sun/org/apache/xerces/internal/util/MessageFormatter
+instanceKlass java/rmi/activation/ActivationInstantiator
+instanceKlass java/rmi/activation/ActivationGroupID
+instanceKlass com/sun/org/apache/xerces/internal/impl/XMLVersionDetector
+instanceKlass java/rmi/activation/ActivationSystem
+instanceKlass com/sun/org/apache/xerces/internal/impl/validation/ValidationManager
+instanceKlass com/sun/org/apache/xerces/internal/impl/dv/dtd/NMTOKENDatatypeValidator
+instanceKlass com/sun/org/apache/xerces/internal/impl/dv/dtd/NOTATIONDatatypeValidator
+instanceKlass java/io/ObjectInputStream$$Lambda$72
+instanceKlass com/sun/org/apache/xerces/internal/impl/dv/dtd/ENTITYDatatypeValidator
+instanceKlass com/sun/org/apache/xerces/internal/impl/dv/dtd/ListDatatypeValidator
+instanceKlass sun/misc/JavaObjectInputStreamAccess
+instanceKlass com/sun/org/apache/xerces/internal/impl/dv/dtd/IDREFDatatypeValidator
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass com/sun/org/apache/xerces/internal/impl/dv/dtd/IDDatatypeValidator
+instanceKlass com/sun/org/apache/xerces/internal/impl/dv/dtd/StringDatatypeValidator
+instanceKlass com/sun/org/apache/xerces/internal/impl/dv/DatatypeValidator
+instanceKlass sun/misc/ObjectStreamClassValidator
+instanceKlass com/sun/org/apache/xerces/internal/impl/dv/DTDDVFactory
+instanceKlass sun/rmi/transport/StreamRemoteCall
+instanceKlass com/sun/org/apache/xerces/internal/impl/dtd/DTDGrammarBucket
+instanceKlass java/rmi/server/RemoteCall
+instanceKlass com/sun/org/apache/xerces/internal/impl/dtd/XMLAttributeDecl
+instanceKlass sun/rmi/transport/tcp/TCPConnection
+instanceKlass com/sun/org/apache/xerces/internal/impl/dtd/XMLSimpleType
+instanceKlass sun/rmi/transport/Connection
+instanceKlass com/sun/org/apache/xerces/internal/impl/dtd/XMLElementDecl
+instanceKlass sun/rmi/transport/tcp/TCPChannel
+instanceKlass com/sun/org/apache/xerces/internal/impl/validation/ValidationState
+instanceKlass sun/rmi/transport/Channel
+instanceKlass com/sun/org/apache/xerces/internal/impl/dv/ValidationContext
+instanceKlass com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDValidator
+instanceKlass java/net/Socket$3
+instanceKlass com/sun/org/apache/xerces/internal/impl/RevalidationHandler
+instanceKlass com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDValidatorFilter
+instanceKlass com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentFilter
+instanceKlass sun/rmi/transport/tcp/TCPTransport$ConnectionHandler$$Lambda$71
+instanceKlass com/sun/org/apache/xerces/internal/impl/dtd/XMLEntityDecl
+instanceKlass sun/rmi/transport/tcp/TCPTransport$ConnectionHandler
+instanceKlass com/sun/org/apache/xerces/internal/impl/dtd/XMLDTDProcessor
+instanceKlass com/sun/org/apache/xerces/internal/xni/parser/XMLDTDContentModelFilter
+instanceKlass com/sun/org/apache/xerces/internal/xni/parser/XMLDTDFilter
+instanceKlass java/net/NetworkInterface$1checkedAddresses
+instanceKlass com/sun/org/apache/xerces/internal/xni/parser/XMLDTDScanner
+instanceKlass com/sun/org/apache/xerces/internal/xni/parser/XMLDTDContentModelSource
+instanceKlass com/sun/org/apache/xerces/internal/xni/parser/XMLDTDSource
+instanceKlass com/sun/org/apache/xerces/internal/xni/grammars/XMLDTDDescription
+instanceKlass com/sun/org/apache/xerces/internal/xni/grammars/XMLGrammarDescription
+instanceKlass com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl$TrailingMiscDriver
+instanceKlass com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl$PrologDriver
+instanceKlass com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl$XMLDeclDriver
+instanceKlass com/sun/org/apache/xerces/internal/util/NamespaceSupport
+instanceKlass com/sun/org/apache/xerces/internal/xni/NamespaceContext
+instanceKlass com/sun/org/apache/xerces/internal/util/XMLAttributesImpl$Attribute
+instanceKlass com/sun/org/apache/xerces/internal/util/XMLAttributesImpl
+instanceKlass com/sun/org/apache/xerces/internal/xni/XMLAttributes
+instanceKlass com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl$FragmentContentDriver
+instanceKlass com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl$Driver
+instanceKlass com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl$ElementStack2
+instanceKlass com/sun/org/apache/xerces/internal/xni/QName
+instanceKlass com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl$ElementStack
+instanceKlass com/sun/org/apache/xerces/internal/xni/XMLString
+instanceKlass com/sun/org/apache/xerces/internal/impl/XMLScanner
+instanceKlass com/sun/xml/internal/stream/XMLBufferListener
+instanceKlass com/sun/org/apache/xerces/internal/impl/XMLEntityHandler
+instanceKlass com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentScanner
+instanceKlass com/sun/org/apache/xerces/internal/xni/parser/XMLDocumentSource
+instanceKlass com/sun/org/apache/xerces/internal/impl/XMLErrorReporter
+instanceKlass com/sun/org/apache/xerces/internal/impl/XMLEntityScanner
+instanceKlass com/sun/org/apache/xerces/internal/xni/XMLLocator
+instanceKlass com/sun/xml/internal/stream/XMLEntityStorage
+instanceKlass com/sun/org/apache/xerces/internal/impl/XMLEntityManager$CharacterBuffer
+instanceKlass com/sun/org/apache/xerces/internal/impl/XMLEntityManager$CharacterBufferPool
+instanceKlass com/sun/org/apache/xerces/internal/util/AugmentationsImpl$AugmentationsItemsContainer
+instanceKlass com/sun/org/apache/xerces/internal/util/AugmentationsImpl
+instanceKlass com/sun/org/apache/xerces/internal/xni/Augmentations
+instanceKlass com/sun/org/apache/xerces/internal/util/XMLResourceIdentifierImpl
+instanceKlass com/sun/org/apache/xerces/internal/xni/XMLResourceIdentifier
+instanceKlass com/sun/org/apache/xerces/internal/impl/XMLEntityManager
+instanceKlass com/sun/org/apache/xerces/internal/xni/parser/XMLEntityResolver
+instanceKlass com/sun/org/apache/xerces/internal/xni/parser/XMLComponent
+instanceKlass com/sun/org/apache/xerces/internal/util/SymbolTable$Entry
+instanceKlass com/sun/org/apache/xerces/internal/util/SymbolTable
+instanceKlass com/sun/org/apache/xerces/internal/util/ParserConfigurationSettings
+instanceKlass com/sun/org/apache/xerces/internal/parsers/XML11Configurable
+instanceKlass com/sun/org/apache/xerces/internal/xni/parser/XMLPullParserConfiguration
+instanceKlass com/sun/org/apache/xerces/internal/xni/parser/XMLParserConfiguration
+instanceKlass com/sun/org/apache/xerces/internal/xni/parser/XMLComponentManager
+instanceKlass com/sun/org/apache/xerces/internal/parsers/XMLParser
+instanceKlass com/sun/org/apache/xerces/internal/xni/XMLDTDContentModelHandler
+instanceKlass com/sun/org/apache/xerces/internal/xni/XMLDTDHandler
+instanceKlass com/sun/org/apache/xerces/internal/xni/XMLDocumentHandler
+instanceKlass org/xml/sax/XMLReader
+instanceKlass org/xml/sax/Parser
+instanceKlass com/sun/org/apache/xerces/internal/utils/XMLSecurityPropertyManager
+instanceKlass com/sun/org/apache/xerces/internal/utils/SecuritySupport$8
+instanceKlass com/sun/org/apache/xerces/internal/utils/SecuritySupport$4
+instanceKlass com/sun/org/apache/xerces/internal/utils/SecuritySupport
+instanceKlass com/sun/org/apache/xerces/internal/utils/XMLSecurityManager
+instanceKlass javax/xml/parsers/SAXParser
+instanceKlass com/sun/org/apache/xerces/internal/xs/PSVIProvider
+instanceKlass com/sun/org/apache/xerces/internal/jaxp/JAXPConstants
+instanceKlass javax/xml/parsers/SecuritySupport$1
+instanceKlass javax/xml/parsers/FactoryFinder$1
+instanceKlass javax/xml/parsers/SecuritySupport$5
+instanceKlass javax/xml/parsers/SecuritySupport$2
+instanceKlass javax/xml/parsers/SecuritySupport
+instanceKlass javax/xml/parsers/FactoryFinder
+instanceKlass javax/xml/parsers/SAXParserFactory
+instanceKlass org/apache/tomcat/util/digester/RulesBase
+instanceKlass org/apache/tomcat/util/digester/Rules
+instanceKlass org/apache/tomcat/util/digester/Rule
+instanceKlass org/apache/tomcat/util/digester/Digester$SystemPropertySource
+instanceKlass org/apache/tomcat/util/IntrospectionUtils$PropertySource
+instanceKlass org/xml/sax/helpers/DefaultHandler
+instanceKlass org/xml/sax/ErrorHandler
+instanceKlass org/xml/sax/ContentHandler
+instanceKlass org/xml/sax/DTDHandler
+instanceKlass org/xml/sax/ext/EntityResolver2
+instanceKlass org/xml/sax/ext/DeclHandler
+instanceKlass org/xml/sax/ext/LexicalHandler
+instanceKlass org/apache/tomcat/util/modeler/modules/ModelerSource
+instanceKlass org/apache/tomcat/util/compat/JreCompat
+instanceKlass org/apache/tomcat/util/modeler/Registry
+instanceKlass org/apache/tomcat/util/modeler/RegistryMBean
+instanceKlass org/apache/catalina/mbeans/MBeanUtils
+instanceKlass java/util/ResourceBundle$Control$1
+instanceKlass org/apache/tomcat/util/res/StringManager
+instanceKlass org/apache/juli/logging/DirectJDKLog
+instanceKlass org/apache/juli/logging/Log
+instanceKlass org/apache/juli/logging/LogFactory
+instanceKlass org/apache/catalina/mbeans/MBeanFactory
+instanceKlass org/springframework/boot/autoconfigure/BackgroundPreinitializer$MBeanFactoryInitializer
+instanceKlass org/springframework/http/converter/json/Jackson2ObjectMapperBuilder$$Lambda$70
+instanceKlass org/springframework/http/converter/json/Jackson2ObjectMapperBuilder$$Lambda$69
+instanceKlass org/springframework/http/converter/json/Jackson2ObjectMapperBuilder$$Lambda$68
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass com/fasterxml/jackson/databind/deser/ValueInstantiators$Base
+instanceKlass com/fasterxml/jackson/databind/type/TypeModifier
+instanceKlass com/fasterxml/jackson/databind/deser/Deserializers$Base
+instanceKlass com/fasterxml/jackson/databind/util/ArrayBuilders
+instanceKlass com/fasterxml/jackson/databind/ObjectMapper$1
+instanceKlass com/fasterxml/jackson/databind/Module$SetupContext
+instanceKlass com/fasterxml/jackson/datatype/jdk8/PackageVersion
+instanceKlass com/fasterxml/jackson/databind/module/SimpleKeyDeserializers
+instanceKlass com/fasterxml/jackson/databind/KeyDeserializer
+instanceKlass com/fasterxml/jackson/datatype/jsr310/ser/ZonedDateTimeSerializer$$Lambda$67
+instanceKlass com/fasterxml/jackson/datatype/jsr310/ser/ZonedDateTimeSerializer$$Lambda$66
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass com/fasterxml/jackson/datatype/jsr310/ser/ZonedDateTimeSerializer$$Lambda$65
+instanceKlass com/fasterxml/jackson/datatype/jsr310/ser/OffsetDateTimeSerializer$$Lambda$64
+instanceKlass com/fasterxml/jackson/datatype/jsr310/ser/OffsetDateTimeSerializer$$Lambda$63
+instanceKlass com/fasterxml/jackson/datatype/jsr310/ser/OffsetDateTimeSerializer$$Lambda$62
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass com/fasterxml/jackson/datatype/jsr310/ser/InstantSerializer$$Lambda$61
+instanceKlass java/util/function/ToIntFunction
+instanceKlass com/fasterxml/jackson/datatype/jsr310/ser/InstantSerializer$$Lambda$60
+instanceKlass com/fasterxml/jackson/datatype/jsr310/ser/InstantSerializer$$Lambda$59
+instanceKlass java/util/function/ToLongFunction
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass com/fasterxml/jackson/databind/ser/Serializers$Base
+instanceKlass com/fasterxml/jackson/databind/type/ClassKey
+instanceKlass com/fasterxml/jackson/databind/module/SimpleDeserializers
+instanceKlass com/fasterxml/jackson/datatype/jsr310/deser/InstantDeserializer$$Lambda$58
+instanceKlass com/fasterxml/jackson/datatype/jsr310/deser/InstantDeserializer$$Lambda$57
+instanceKlass com/fasterxml/jackson/datatype/jsr310/deser/InstantDeserializer$$Lambda$56
+instanceKlass com/fasterxml/jackson/datatype/jsr310/deser/InstantDeserializer$$Lambda$55
+instanceKlass com/fasterxml/jackson/datatype/jsr310/deser/InstantDeserializer$$Lambda$54
+instanceKlass com/fasterxml/jackson/datatype/jsr310/deser/InstantDeserializer$$Lambda$53
+instanceKlass com/fasterxml/jackson/datatype/jsr310/deser/InstantDeserializer$$Lambda$52
+instanceKlass com/fasterxml/jackson/datatype/jsr310/deser/InstantDeserializer$$Lambda$51
+instanceKlass com/fasterxml/jackson/datatype/jsr310/deser/InstantDeserializer$$Lambda$50
+instanceKlass com/fasterxml/jackson/datatype/jsr310/deser/InstantDeserializer$$Lambda$49
+instanceKlass com/fasterxml/jackson/datatype/jsr310/deser/InstantDeserializer$FromDecimalArguments
+instanceKlass com/fasterxml/jackson/datatype/jsr310/deser/InstantDeserializer$$Lambda$48
+instanceKlass com/fasterxml/jackson/datatype/jsr310/deser/InstantDeserializer$FromIntegerArguments
+instanceKlass com/fasterxml/jackson/datatype/jsr310/deser/InstantDeserializer$$Lambda$47
+instanceKlass com/fasterxml/jackson/databind/JsonDeserializer
+instanceKlass com/fasterxml/jackson/databind/deser/NullValueProvider
+instanceKlass com/fasterxml/jackson/databind/deser/ContextualDeserializer
+instanceKlass com/fasterxml/jackson/core/Version
+instanceKlass com/fasterxml/jackson/core/util/VersionUtil
+instanceKlass com/fasterxml/jackson/datatype/jsr310/PackageVersion
+instanceKlass com/fasterxml/jackson/databind/Module
+instanceKlass com/fasterxml/jackson/databind/ser/BeanSerializerModifier
+instanceKlass com/fasterxml/jackson/databind/ser/Serializers
+instanceKlass com/fasterxml/jackson/databind/cfg/SerializerFactoryConfig
+instanceKlass com/fasterxml/jackson/databind/ser/std/StdJdkSerializers
+instanceKlass com/fasterxml/jackson/databind/ser/ContextualSerializer
+instanceKlass com/fasterxml/jackson/databind/ser/std/NumberSerializers
+instanceKlass com/fasterxml/jackson/databind/ser/SerializerFactory
+instanceKlass com/fasterxml/jackson/databind/deser/DeserializerCache
+instanceKlass com/fasterxml/jackson/databind/deser/std/StdKeyDeserializers
+instanceKlass com/fasterxml/jackson/databind/deser/KeyDeserializers
+instanceKlass com/fasterxml/jackson/databind/deser/ValueInstantiators
+instanceKlass com/fasterxml/jackson/databind/AbstractTypeResolver
+instanceKlass com/fasterxml/jackson/databind/deser/BeanDeserializerModifier
+instanceKlass com/fasterxml/jackson/databind/cfg/DeserializerFactoryConfig
+instanceKlass java/util/concurrent/ConcurrentNavigableMap
+instanceKlass com/fasterxml/jackson/databind/PropertyName
+instanceKlass com/fasterxml/jackson/databind/deser/Deserializers
+instanceKlass com/fasterxml/jackson/databind/deser/DeserializerFactory
+instanceKlass com/fasterxml/jackson/databind/ser/SerializerCache
+instanceKlass com/fasterxml/jackson/databind/JsonSerializer
+instanceKlass com/fasterxml/jackson/databind/jsonschema/SchemaAware
+instanceKlass com/fasterxml/jackson/databind/jsonFormatVisitors/JsonFormatVisitable
+instanceKlass com/fasterxml/jackson/databind/DatabindContext
+instanceKlass com/fasterxml/jackson/databind/node/JsonNodeFactory
+instanceKlass com/fasterxml/jackson/databind/node/JsonNodeCreator
+instanceKlass com/fasterxml/jackson/databind/cfg/ContextAttributes
+instanceKlass com/fasterxml/jackson/core/util/Separators
+instanceKlass com/fasterxml/jackson/core/util/DefaultPrettyPrinter$NopIndenter
+instanceKlass com/fasterxml/jackson/core/util/DefaultPrettyPrinter$Indenter
+instanceKlass com/fasterxml/jackson/databind/cfg/ConfigFeature
+instanceKlass com/fasterxml/jackson/databind/cfg/ConfigOverride
+instanceKlass com/fasterxml/jackson/annotation/JsonFormat$Features
+instanceKlass com/fasterxml/jackson/annotation/JsonFormat$Value
+instanceKlass com/fasterxml/jackson/databind/cfg/MapperConfig
+instanceKlass com/fasterxml/jackson/databind/introspect/VisibilityChecker$Std
+instanceKlass com/fasterxml/jackson/databind/introspect/VisibilityChecker
+instanceKlass liquibase/util/StringUtils
+instanceKlass com/fasterxml/jackson/annotation/JsonSetter$Value
+instanceKlass com/fasterxml/jackson/annotation/JsonInclude$Value
+instanceKlass com/fasterxml/jackson/annotation/JacksonAnnotationValue
+instanceKlass com/fasterxml/jackson/databind/cfg/ConfigOverrides
+instanceKlass com/fasterxml/jackson/databind/BeanDescription
+instanceKlass com/fasterxml/jackson/databind/introspect/AnnotatedClass$Creators
+instanceKlass com/fasterxml/jackson/databind/introspect/Annotated
+instanceKlass com/fasterxml/jackson/databind/introspect/TypeResolutionContext
+instanceKlass com/fasterxml/jackson/databind/introspect/AnnotationCollector$NoAnnotations
+instanceKlass com/fasterxml/jackson/databind/util/Annotations
+instanceKlass com/fasterxml/jackson/databind/introspect/AnnotationCollector
+instanceKlass com/fasterxml/jackson/databind/introspect/AnnotatedClassResolver
+instanceKlass com/fasterxml/jackson/databind/introspect/ClassIntrospector
+instanceKlass com/fasterxml/jackson/databind/introspect/SimpleMixInResolver
+instanceKlass com/fasterxml/jackson/databind/introspect/ClassIntrospector$MixInResolver
+instanceKlass com/fasterxml/jackson/databind/util/RootNameLookup
+instanceKlass com/fasterxml/jackson/databind/jsontype/SubtypeResolver
+instanceKlass com/fasterxml/jackson/core/sym/ByteQuadsCanonicalizer$TableInfo
+instanceKlass com/fasterxml/jackson/core/sym/ByteQuadsCanonicalizer
+instanceKlass com/fasterxml/jackson/core/sym/CharsToNameCanonicalizer$Bucket
+instanceKlass com/fasterxml/jackson/core/sym/CharsToNameCanonicalizer$TableInfo
+instanceKlass com/fasterxml/jackson/core/sym/CharsToNameCanonicalizer
+instanceKlass com/fasterxml/jackson/core/io/SerializedString
+instanceKlass com/fasterxml/jackson/core/SerializableString
+instanceKlass com/fasterxml/jackson/core/util/DefaultPrettyPrinter
+instanceKlass com/fasterxml/jackson/core/util/Instantiatable
+instanceKlass com/fasterxml/jackson/core/PrettyPrinter
+instanceKlass com/fasterxml/jackson/core/JsonFactory
+instanceKlass com/fasterxml/jackson/core/Base64Variant
+instanceKlass com/fasterxml/jackson/core/Base64Variants
+instanceKlass com/fasterxml/jackson/databind/type/TypeParser
+instanceKlass com/fasterxml/jackson/databind/type/TypeFactory
+instanceKlass com/fasterxml/jackson/databind/cfg/BaseSettings
+instanceKlass com/fasterxml/jackson/databind/util/LRUMap
+instanceKlass java/beans/ConstructorProperties
+instanceKlass java/beans/Transient
+instanceKlass com/fasterxml/jackson/databind/util/ClassUtil$Ctor
+instanceKlass com/fasterxml/jackson/databind/util/ClassUtil
+instanceKlass com/fasterxml/jackson/databind/ext/Java7Support
+instanceKlass com/fasterxml/jackson/annotation/JsonMerge
+instanceKlass com/fasterxml/jackson/databind/annotation/JsonDeserialize
+instanceKlass com/fasterxml/jackson/annotation/JsonManagedReference
+instanceKlass com/fasterxml/jackson/annotation/JsonBackReference
+instanceKlass com/fasterxml/jackson/annotation/JsonUnwrapped
+instanceKlass com/fasterxml/jackson/annotation/JsonRawValue
+instanceKlass com/fasterxml/jackson/annotation/JsonTypeInfo
+instanceKlass com/fasterxml/jackson/annotation/JsonFormat
+instanceKlass com/fasterxml/jackson/annotation/JsonView
+instanceKlass com/fasterxml/jackson/databind/annotation/JsonSerialize
+instanceKlass com/fasterxml/jackson/databind/AnnotationIntrospector
+instanceKlass com/fasterxml/jackson/databind/type/TypeBindings
+instanceKlass com/fasterxml/jackson/core/type/ResolvedType
+instanceKlass com/fasterxml/jackson/databind/JsonSerializable$Base
+instanceKlass com/fasterxml/jackson/databind/JsonSerializable
+instanceKlass com/fasterxml/jackson/core/TreeNode
+instanceKlass org/springframework/http/converter/json/Jackson2ObjectMapperBuilder
+instanceKlass org/springframework/http/converter/GenericHttpMessageConverter
+instanceKlass org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter$$Lambda$46
+instanceKlass com/sun/org/apache/xalan/internal/utils/XMLSecurityManager
+instanceKlass com/sun/org/apache/xalan/internal/utils/SecuritySupport$9
+instanceKlass com/sun/org/apache/xalan/internal/utils/SecuritySupport$4
+instanceKlass com/sun/org/apache/xalan/internal/utils/SecuritySupport
+instanceKlass com/sun/org/apache/xalan/internal/utils/FeaturePropertyBase
+instanceKlass javax/xml/transform/ErrorListener
+instanceKlass com/sun/org/apache/xalan/internal/xsltc/compiler/SourceLoader
+instanceKlass javax/xml/transform/SecuritySupport$1
+instanceKlass javax/xml/transform/FactoryFinder$1
+instanceKlass javax/xml/transform/SecuritySupport$5
+instanceKlass javax/xml/transform/SecuritySupport$2
+instanceKlass javax/xml/transform/SecuritySupport
+instanceKlass javax/xml/transform/FactoryFinder
+instanceKlass javax/xml/transform/TransformerFactory
+instanceKlass javax/xml/transform/stream/StreamSource
+instanceKlass javax/xml/transform/stax/StAXSource
+instanceKlass javax/xml/transform/sax/SAXSource
+instanceKlass javax/xml/transform/dom/DOMSource
+instanceKlass javax/xml/transform/Source
+instanceKlass org/springframework/http/converter/xml/SourceHttpMessageConverter$$Lambda$45
+instanceKlass javax/xml/stream/XMLResolver
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/http/converter/xml/SourceHttpMessageConverter$$Lambda$44
+instanceKlass org/xml/sax/EntityResolver
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass sun/invoke/util/VerifyAccess$1
+instanceKlass org/xml/sax/InputSource
+instanceKlass org/springframework/core/log/CompositeLog$$Lambda$43
+instanceKlass org/springframework/core/log/CompositeLog$$Lambda$42
+instanceKlass org/springframework/core/log/CompositeLog$$Lambda$41
+instanceKlass org/springframework/core/log/CompositeLog$$Lambda$40
+instanceKlass org/springframework/core/log/CompositeLog$$Lambda$39
+instanceKlass org/springframework/core/log/CompositeLog$$Lambda$38
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/apache/commons/logging/impl/NoOpLog
+instanceKlass org/springframework/core/log/CompositeLog
+instanceKlass org/springframework/core/log/LogDelegateFactory
+instanceKlass org/springframework/http/HttpLogging
+instanceKlass org/springframework/http/converter/AbstractHttpMessageConverter
+instanceKlass com/google/gson/Gson
+instanceKlass com/fasterxml/jackson/core/JsonGenerator
+instanceKlass com/fasterxml/jackson/core/TreeCodec
+instanceKlass com/fasterxml/jackson/core/Versioned
+instanceKlass javax/xml/bind/Binder
+instanceKlass org/springframework/http/MediaType$$Lambda$37
+instanceKlass org/springframework/util/MimeType$$Lambda$36
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/util/LinkedCaseInsensitiveMap
+instanceKlass org/springframework/util/MimeType$SpecificityComparator
+instanceKlass org/springframework/util/MimeTypeUtils
+instanceKlass org/springframework/util/MimeType
+instanceKlass org/springframework/http/converter/FormHttpMessageConverter
+instanceKlass org/springframework/http/converter/HttpMessageConverter
+instanceKlass org/springframework/boot/autoconfigure/BackgroundPreinitializer$MessageConverterInitializer
+instanceKlass org/hibernate/validator/internal/engine/ValidationContext$ValidatorScopedContext
+instanceKlass javax/validation/groups/Default
+instanceKlass org/hibernate/validator/internal/engine/ValidatorImpl
+instanceKlass javax/validation/executable/ExecutableValidator
+instanceKlass javax/validation/Validator
+instanceKlass org/hibernate/validator/group/GroupSequenceProvider
+instanceKlass javax/validation/GroupSequence
+instanceKlass org/hibernate/validator/internal/metadata/raw/BeanConfiguration
+instanceKlass org/hibernate/validator/internal/metadata/location/BeanConstraintLocation
+instanceKlass org/hibernate/validator/internal/util/privilegedactions/GetDeclaredConstructors
+instanceKlass org/hibernate/validator/internal/metadata/provider/AnnotationMetaDataProvider$$Lambda$35
+instanceKlass org/hibernate/validator/internal/metadata/core/MetaConstraint
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass org/hibernate/validator/internal/metadata/provider/AnnotationMetaDataProvider$$Lambda$34
+instanceKlass org/hibernate/validator/internal/metadata/provider/AnnotationMetaDataProvider$TypeArgumentExecutableParameterLocation
+instanceKlass org/hibernate/validator/internal/metadata/location/ParameterConstraintLocation
+instanceKlass org/hibernate/validator/internal/metadata/location/ConstraintLocation
+instanceKlass org/hibernate/validator/internal/metadata/core/AnnotationProcessingOptionsImpl$ExecutableParameterKey
+instanceKlass org/hibernate/validator/internal/metadata/raw/AbstractConstrainedElement
+instanceKlass org/hibernate/validator/internal/metadata/raw/ConstrainedElement
+instanceKlass org/hibernate/validator/internal/util/TypeVariables
+instanceKlass org/hibernate/validator/internal/metadata/aggregated/CascadingMetaDataBuilder
+instanceKlass javax/validation/groups/ConvertGroup$List
+instanceKlass javax/validation/groups/ConvertGroup
+instanceKlass javax/validation/Valid
+instanceKlass org/hibernate/validator/internal/metadata/provider/AnnotationMetaDataProvider$TypeArgumentReturnValueLocation
+instanceKlass org/hibernate/validator/internal/metadata/provider/AnnotationMetaDataProvider$TypeArgumentLocation
+instanceKlass java/util/stream/Collectors$$Lambda$33
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/util/stream/Collectors$$Lambda$32
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/util/stream/Collectors$$Lambda$31
+instanceKlass org/hibernate/validator/internal/metadata/provider/AnnotationMetaDataProvider$$Lambda$30
+instanceKlass org/hibernate/validator/internal/metadata/descriptor/ConstraintDescriptorImpl
+instanceKlass javax/validation/metadata/ConstraintDescriptor
+instanceKlass org/hibernate/validator/internal/util/privilegedactions/GetDeclaredMethods
+instanceKlass org/hibernate/validator/internal/util/privilegedactions/GetDeclaredFields
+instanceKlass org/hibernate/validator/internal/metadata/provider/AnnotationMetaDataProvider
+instanceKlass org/hibernate/validator/internal/util/logging/Messages_$bundle
+instanceKlass org/jboss/logging/Messages
+instanceKlass org/hibernate/validator/internal/util/logging/Messages
+instanceKlass org/hibernate/validator/internal/metadata/provider/ProgrammaticMetaDataProvider
+instanceKlass org/hibernate/validator/internal/metadata/provider/MetaDataProvider
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass org/hibernate/validator/internal/engine/ValidatorFactoryImpl$$Lambda$29
+instanceKlass org/hibernate/validator/internal/metadata/BeanMetaDataManager
+instanceKlass org/hibernate/validator/internal/engine/ValidatorFactoryImpl$BeanMetaDataManagerKey
+instanceKlass org/hibernate/validator/internal/engine/groups/ValidationOrderGenerator
+instanceKlass org/hibernate/validator/internal/engine/constraintvalidation/ConstraintValidatorManager$1
+instanceKlass org/hibernate/validator/internal/engine/constraintvalidation/ConstraintValidatorManager
+instanceKlass org/hibernate/validator/internal/engine/constraintvalidation/HibernateConstraintValidatorInitializationContextImpl
+instanceKlass org/hibernate/validator/constraintvalidation/HibernateConstraintValidatorInitializationContext
+instanceKlass org/hibernate/validator/spi/scripting/AbstractCachingScriptEvaluatorFactory
+instanceKlass org/hibernate/validator/spi/scripting/ScriptEvaluatorFactory
+instanceKlass org/hibernate/validator/internal/util/ExecutableParameterNameProvider
+instanceKlass javax/el/Util$CacheKey
+instanceKlass javax/el/ELManager
+instanceKlass javax/el/ExpressionFactory$CacheKey
+instanceKlass javax/el/Util$CacheValue
+instanceKlass javax/el/Util
+instanceKlass javax/el/ExpressionFactory$CacheValue
+instanceKlass javax/el/ExpressionFactory
+instanceKlass org/hibernate/validator/internal/util/ConcurrentReferenceHashMap$HashEntry
+instanceKlass org/hibernate/validator/messageinterpolation/AbstractMessageInterpolator
+instanceKlass javax/validation/MessageInterpolator
+instanceKlass org/hibernate/validator/internal/engine/ValidatorFactoryImpl$ValidatorFactoryScopedContext
+instanceKlass org/hibernate/validator/internal/metadata/aggregated/rule/MethodConfigurationRule
+instanceKlass org/hibernate/validator/internal/engine/MethodValidationConfiguration
+instanceKlass org/hibernate/validator/internal/util/StringHelper
+instanceKlass org/hibernate/validator/internal/metadata/core/AnnotationProcessingOptionsImpl
+instanceKlass org/hibernate/validator/internal/metadata/core/AnnotationProcessingOptions
+instanceKlass org/hibernate/validator/internal/cfg/context/DefaultConstraintMapping
+instanceKlass org/hibernate/validator/cfg/ConstraintMapping
+instanceKlass org/hibernate/validator/internal/engine/ValidatorFactoryImpl$DefaultConstraintMappingBuilder
+instanceKlass org/hibernate/validator/spi/cfg/ConstraintMappingContributor$ConstraintMappingBuilder
+instanceKlass org/hibernate/validator/internal/engine/ServiceLoaderBasedConstraintMappingContributor
+instanceKlass org/hibernate/validator/spi/cfg/ConstraintMappingContributor
+instanceKlass org/hibernate/validator/internal/util/ExecutableHelper
+instanceKlass com/fasterxml/classmate/util/ResolvedTypeCache
+instanceKlass com/fasterxml/classmate/util/ClassKey
+instanceKlass com/fasterxml/classmate/TypeBindings
+instanceKlass com/fasterxml/classmate/members/RawMember
+instanceKlass com/fasterxml/classmate/ResolvedType
+instanceKlass com/fasterxml/classmate/TypeResolver
+instanceKlass org/hibernate/validator/internal/util/TypeResolutionHelper
+instanceKlass org/hibernate/validator/internal/constraintvalidators/hv/URLValidator
+instanceKlass org/hibernate/validator/constraints/URL
+instanceKlass org/hibernate/validator/internal/constraintvalidators/hv/UniqueElementsValidator
+instanceKlass org/hibernate/validator/constraints/UniqueElements
+instanceKlass org/hibernate/validator/constraints/ScriptAssert
+instanceKlass org/hibernate/validator/internal/constraintvalidators/hv/SafeHtmlValidator
+instanceKlass org/hibernate/validator/constraints/SafeHtml
+instanceKlass org/hibernate/validator/internal/constraintvalidators/hv/AbstractScriptAssertValidator
+instanceKlass org/hibernate/validator/constraints/ParameterScriptAssert
+instanceKlass org/hibernate/validator/internal/constraintvalidators/hv/NotBlankValidator
+instanceKlass org/hibernate/validator/constraints/NotBlank
+instanceKlass org/hibernate/validator/constraints/pl/PESEL
+instanceKlass org/hibernate/validator/constraints/pl/NIP
+instanceKlass org/hibernate/validator/constraints/pl/REGON
+instanceKlass org/hibernate/validator/constraints/Mod11Check
+instanceKlass org/hibernate/validator/constraints/Mod10Check
+instanceKlass org/hibernate/validator/constraints/LuhnCheck
+instanceKlass java/lang/Deprecated
+instanceKlass org/hibernate/validator/internal/constraintvalidators/hv/ModCheckBase
+instanceKlass org/hibernate/validator/constraints/ModCheck
+instanceKlass org/hibernate/validator/internal/constraintvalidators/hv/CodePointLengthValidator
+instanceKlass org/hibernate/validator/constraints/CodePointLength
+instanceKlass org/hibernate/validator/internal/constraintvalidators/hv/LengthValidator
+instanceKlass org/hibernate/validator/constraints/Length
+instanceKlass org/hibernate/validator/constraints/Email
+instanceKlass org/hibernate/validator/internal/constraintvalidators/hv/EANValidator
+instanceKlass org/hibernate/validator/constraints/EAN
+instanceKlass org/hibernate/validator/internal/constraintvalidators/hv/time/DurationMinValidator
+instanceKlass org/hibernate/validator/constraints/time/DurationMin
+instanceKlass org/hibernate/validator/internal/constraintvalidators/hv/time/DurationMaxValidator
+instanceKlass org/hibernate/validator/constraints/time/DurationMax
+instanceKlass org/hibernate/validator/internal/constraintvalidators/hv/br/CPFValidator
+instanceKlass org/hibernate/validator/constraints/br/CPF
+instanceKlass org/hibernate/validator/internal/constraintvalidators/hv/br/CNPJValidator
+instanceKlass org/hibernate/validator/constraints/br/CNPJ
+instanceKlass javax/validation/constraints/Size
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/size/SizeValidatorForArraysOfPrimitives
+instanceKlass sun/security/pkcs/ESSCertId
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/size/SizeValidatorForMap
+instanceKlass sun/security/pkcs/SigningCertificateInfo
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/size/SizeValidatorForArray
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/size/SizeValidatorForCollection
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/size/SizeValidatorForCharSequence
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/PositiveOrZeroValidatorForNumber
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/PositiveOrZeroValidatorForByte
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/PositiveOrZeroValidatorForShort
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/PositiveOrZeroValidatorForInteger
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/PositiveOrZeroValidatorForLong
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/PositiveOrZeroValidatorForFloat
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/PositiveOrZeroValidatorForDouble
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/PositiveOrZeroValidatorForBigInteger
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/PositiveOrZeroValidatorForBigDecimal
+instanceKlass javax/validation/constraints/PositiveOrZero
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/PositiveValidatorForNumber
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/PositiveValidatorForByte
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/PositiveValidatorForShort
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/PositiveValidatorForInteger
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/PositiveValidatorForLong
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/PositiveValidatorForFloat
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/PositiveValidatorForDouble
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/PositiveValidatorForBigInteger
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/PositiveValidatorForBigDecimal
+instanceKlass javax/validation/constraints/Positive
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/PatternValidator
+instanceKlass javax/validation/constraints/Pattern
+instanceKlass javax/validation/constraints/PastOrPresent
+instanceKlass java/security/spec/DSAParameterSpec
+instanceKlass java/security/spec/AlgorithmParameterSpec
+instanceKlass java/security/interfaces/DSAParams
+instanceKlass java/security/interfaces/DSAPrivateKey
+instanceKlass javax/validation/constraints/Past
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/NullValidator
+instanceKlass javax/validation/constraints/Null
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/NotNullValidator
+instanceKlass javax/validation/constraints/NotNull
+instanceKlass javax/validation/constraints/NotEmpty
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/notempty/NotEmptyValidatorForArraysOfShort
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/notempty/NotEmptyValidatorForArraysOfLong
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/notempty/NotEmptyValidatorForArraysOfInt
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/notempty/NotEmptyValidatorForArraysOfFloat
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/notempty/NotEmptyValidatorForArraysOfDouble
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/notempty/NotEmptyValidatorForArraysOfChar
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/notempty/NotEmptyValidatorForArraysOfByte
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/notempty/NotEmptyValidatorForArraysOfBoolean
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/notempty/NotEmptyValidatorForMap
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/notempty/NotEmptyValidatorForArray
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/notempty/NotEmptyValidatorForCollection
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/notempty/NotEmptyValidatorForCharSequence
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/NotBlankValidator
+instanceKlass javax/validation/constraints/NotBlank
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/NegativeOrZeroValidatorForNumber
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/NegativeOrZeroValidatorForByte
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/NegativeOrZeroValidatorForShort
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/NegativeOrZeroValidatorForInteger
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/NegativeOrZeroValidatorForLong
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/NegativeOrZeroValidatorForFloat
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/NegativeOrZeroValidatorForDouble
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/NegativeOrZeroValidatorForBigInteger
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/NegativeOrZeroValidatorForBigDecimal
+instanceKlass javax/validation/constraints/NegativeOrZero
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/NegativeValidatorForNumber
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/NegativeValidatorForByte
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/NegativeValidatorForShort
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/NegativeValidatorForInteger
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/NegativeValidatorForLong
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/NegativeValidatorForFloat
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/NegativeValidatorForDouble
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/NegativeValidatorForBigInteger
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/sign/NegativeValidatorForBigDecimal
+instanceKlass javax/validation/constraints/Negative
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/MinValidatorForCharSequence
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/bound/AbstractMinValidator
+instanceKlass javax/validation/constraints/Min
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/MaxValidatorForCharSequence
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/bound/AbstractMaxValidator
+instanceKlass javax/validation/constraints/Max
+instanceKlass org/hibernate/validator/internal/constraintvalidators/hv/ISBNValidator
+instanceKlass org/hibernate/validator/constraints/ISBN
+instanceKlass javax/validation/constraints/FutureOrPresent
+instanceKlass java/security/Timestamp
+instanceKlass sun/security/timestamp/TimestampToken
+instanceKlass java/time/chrono/ChronoLocalDateImpl
+instanceKlass java/util/ArrayList$ArrayListSpliterator
+instanceKlass javax/validation/constraints/Future
+instanceKlass sun/security/pkcs/PKCS9Attributes
+instanceKlass sun/security/x509/AccessDescription
+instanceKlass java/security/cert/PolicyQualifierInfo
+instanceKlass sun/security/x509/CertificatePolicyId
+instanceKlass sun/security/x509/PolicyInformation
+instanceKlass sun/security/x509/DNSName
+instanceKlass sun/security/x509/URIName
+instanceKlass sun/security/x509/DistributionPoint
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/time/AbstractJavaTimeValidator
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/time/AbstractInstantBasedTimeValidator
+instanceKlass org/hibernate/validator/constraintvalidation/HibernateConstraintValidator
+instanceKlass org/hibernate/validator/internal/constraintvalidators/AbstractEmailValidator
+instanceKlass javax/validation/constraints/Email
+instanceKlass org/hibernate/validator/internal/metadata/core/ConstraintHelper$$Lambda$28
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/DigitsValidatorForNumber
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/DigitsValidatorForCharSequence
+instanceKlass javax/validation/constraints/Digits
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/DecimalMinValidatorForCharSequence
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/bound/decimal/AbstractDecimalMinValidator
+instanceKlass javax/validation/constraints/DecimalMin
+instanceKlass java/util/stream/Collectors$$Lambda$27
+instanceKlass java/util/stream/Collectors$$Lambda$26
+instanceKlass java/util/stream/Collectors$$Lambda$25
+instanceKlass org/hibernate/validator/internal/metadata/core/ConstraintHelper$$Lambda$24
+instanceKlass java/util/Spliterators$ArraySpliterator
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/DecimalMaxValidatorForCharSequence
+instanceKlass java/util/Base64$Encoder
+instanceKlass java/util/Base64$Decoder
+instanceKlass java/util/Base64
+instanceKlass java/security/cert/CertPath
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/number/bound/decimal/AbstractDecimalMaxValidator
+instanceKlass javax/validation/constraints/DecimalMax
+instanceKlass java/math/MutableBigInteger
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/AssertTrueValidator
+instanceKlass javax/validation/constraints/AssertTrue
+instanceKlass javax/validation/constraintvalidation/SupportedValidationTarget
+instanceKlass sun/security/rsa/RSAPadding
+instanceKlass org/hibernate/validator/internal/engine/constraintvalidation/ClassBasedValidatorDescriptor
+instanceKlass sun/security/rsa/RSACore
+instanceKlass org/hibernate/validator/internal/engine/constraintvalidation/ConstraintValidatorDescriptor
+instanceKlass org/hibernate/validator/internal/constraintvalidators/bv/AssertFalseValidator
+instanceKlass javax/validation/ConstraintValidator
+instanceKlass javax/validation/constraints/AssertFalse
+instanceKlass org/hibernate/validator/internal/metadata/core/ConstraintHelper$ValidatorDescriptorMap
+instanceKlass sun/text/normalizer/NormalizerBase$1
+instanceKlass sun/text/normalizer/NormalizerBase$QuickCheckResult
+instanceKlass sun/text/normalizer/NormalizerBase$Mode
+instanceKlass sun/text/normalizer/NormalizerBase
+instanceKlass org/hibernate/validator/internal/metadata/core/ConstraintHelper
+instanceKlass java/text/Normalizer
+instanceKlass sun/security/pkcs/PKCS9Attribute
+instanceKlass sun/security/x509/AVAKeyword
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/ValueExtractorResolver
+instanceKlass sun/security/jca/ServiceId
+instanceKlass java/security/SignatureSpi
+instanceKlass java/util/stream/ReduceOps$Box
+instanceKlass java/util/stream/ReduceOps$AccumulatingSink
+instanceKlass java/util/stream/ReduceOps$ReduceOp
+instanceKlass java/util/stream/ReduceOps
+instanceKlass java/util/stream/Collectors$$Lambda$23
+instanceKlass java/util/stream/Collectors$$Lambda$22
+instanceKlass sun/security/pkcs/SignerInfo
+instanceKlass java/util/function/BinaryOperator
+instanceKlass java/util/stream/Collectors$$Lambda$21
+instanceKlass java/util/function/BiConsumer
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/util/stream/Collectors$$Lambda$20
+instanceKlass java/security/interfaces/DSAPublicKey
+instanceKlass java/security/interfaces/DSAKey
+instanceKlass java/util/stream/Collectors$CollectorImpl
+instanceKlass java/util/stream/Collector
+instanceKlass java/security/spec/DSAPublicKeySpec
+instanceKlass java/util/stream/Collectors
+instanceKlass java/security/AlgorithmParametersSpi
+instanceKlass java/security/AlgorithmParameters
+instanceKlass org/hibernate/validator/internal/engine/ConfigurationImpl$$Lambda$19
+instanceKlass java/util/HashMap$HashMapSpliterator
+instanceKlass sun/security/util/MemoryCache$CacheEntry
+instanceKlass sun/security/x509/X509AttributeName
+instanceKlass java/util/OptionalLong
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/OptionalLongValueExtractor
+instanceKlass sun/security/x509/RFC822Name
+instanceKlass sun/security/x509/GeneralName
+instanceKlass java/util/OptionalDouble
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/OptionalDoubleValueExtractor
+instanceKlass sun/security/x509/GeneralNames
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/AnnotatedObject
+instanceKlass sun/security/x509/KeyIdentifier
+instanceKlass java/util/OptionalInt
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/OptionalIntValueExtractor
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/OptionalValueExtractor
+instanceKlass sun/security/x509/NetscapeCertTypeExtension$MapEntry
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/IterableValueExtractor
+instanceKlass sun/security/x509/OIDMap$OIDInfo
+instanceKlass sun/security/x509/PKIXExtensions
+instanceKlass sun/security/x509/OIDMap
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/MapKeyExtractor
+instanceKlass sun/security/x509/Extension
+instanceKlass java/security/cert/Extension
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/MapValueExtractor
+instanceKlass sun/security/x509/CertificateExtensions
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/ListValueExtractor
+instanceKlass sun/security/pkcs/PKCS8Key
+instanceKlass java/security/interfaces/RSAPrivateCrtKey
+instanceKlass java/security/interfaces/RSAPrivateKey
+instanceKlass java/security/PrivateKey
+instanceKlass javax/security/auth/Destroyable
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/ObjectArrayValueExtractor
+instanceKlass java/security/interfaces/RSAPublicKey
+instanceKlass java/security/interfaces/RSAKey
+instanceKlass sun/reflect/generics/tree/BooleanSignature
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/BooleanArrayValueExtractor
+instanceKlass java/security/spec/RSAPrivateKeySpec
+instanceKlass java/security/spec/RSAPublicKeySpec
+instanceKlass java/security/KeyFactorySpi
+instanceKlass sun/reflect/generics/tree/CharSignature
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/CharArrayValueExtractor
+instanceKlass sun/security/rsa/SunRsaSignEntries
+instanceKlass sun/reflect/generics/tree/DoubleSignature
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/DoubleArrayValueExtractor
+instanceKlass sun/security/jca/ProviderList$ServiceList$1
+instanceKlass sun/reflect/generics/tree/FloatSignature
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/FloatArrayValueExtractor
+instanceKlass java/security/KeyFactory
+instanceKlass sun/reflect/generics/tree/LongSignature
+instanceKlass java/security/spec/EncodedKeySpec
+instanceKlass java/security/spec/KeySpec
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/LongArrayValueExtractor
+instanceKlass sun/reflect/generics/tree/IntSignature
+instanceKlass sun/security/util/BitArray
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/IntArrayValueExtractor
+instanceKlass sun/security/x509/X509Key
+instanceKlass java/security/PublicKey
+instanceKlass java/security/Key
+instanceKlass sun/security/x509/CertificateX509Key
+instanceKlass sun/reflect/generics/tree/ShortSignature
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/ShortArrayValueExtractor
+instanceKlass sun/security/x509/CertificateValidity
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/ArrayElement
+instanceKlass sun/security/x509/AVA
+instanceKlass java/lang/reflect/AnnotatedArrayType
+instanceKlass sun/security/x509/RDN
+instanceKlass sun/reflect/generics/tree/ArrayTypeSignature
+instanceKlass javax/security/auth/x500/X500Principal
+instanceKlass sun/reflect/generics/tree/ByteSignature
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/ByteArrayValueExtractor
+instanceKlass sun/security/x509/X500Name$1
+instanceKlass sun/security/x509/X500Name
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/ReadOnlySetPropertyValueExtractor
+instanceKlass sun/security/x509/GeneralNameInterface
+instanceKlass sun/security/x509/CertificateAlgorithmId
+instanceKlass javafx/beans/binding/SetExpression
+instanceKlass javafx/beans/value/ObservableSetValue
+instanceKlass sun/security/x509/SerialNumber
+instanceKlass javafx/beans/value/WritableSetValue
+instanceKlass javafx/collections/ObservableSet
+instanceKlass sun/security/x509/CertificateSerialNumber
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/SetPropertyValueExtractor
+instanceKlass sun/security/x509/CertificateVersion
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/ReadOnlyMapPropertyKeyExtractor
+instanceKlass sun/security/x509/X509CertInfo
+instanceKlass sun/security/x509/CertAttrSet
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/MapPropertyKeyExtractor
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/ReadOnlyMapPropertyValueExtractor
+instanceKlass sun/security/util/Cache$EqualByteArray
+instanceKlass javafx/beans/binding/MapExpression
+instanceKlass javafx/beans/value/ObservableMapValue
+instanceKlass java/security/cert/X509Extension
+instanceKlass javafx/beans/value/WritableMapValue
+instanceKlass javafx/collections/ObservableMap
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/MapPropertyValueExtractor
+instanceKlass sun/security/util/Cache
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/ReadOnlyListPropertyValueExtractor
+instanceKlass java/security/cert/CertificateFactorySpi
+instanceKlass javafx/beans/binding/ListExpression
+instanceKlass java/security/cert/CertificateFactory
+instanceKlass javafx/beans/value/ObservableListValue
+instanceKlass javafx/beans/value/ObservableObjectValue
+instanceKlass javafx/beans/value/WritableListValue
+instanceKlass javafx/collections/ObservableList
+instanceKlass javafx/beans/value/WritableObjectValue
+instanceKlass javafx/beans/property/Property
+instanceKlass javafx/beans/value/WritableValue
+instanceKlass javafx/beans/property/ReadOnlyProperty
+instanceKlass sun/security/x509/AlgorithmId
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/ListPropertyValueExtractor
+instanceKlass sun/security/util/ByteArrayTagOrder
+instanceKlass sun/security/util/ByteArrayLexOrder
+instanceKlass sun/security/util/DerEncoder
+instanceKlass javax/validation/valueextraction/UnwrapByDefault
+instanceKlass sun/security/util/DerValue
+instanceKlass java/lang/reflect/AnnotatedWildcardType
+instanceKlass sun/security/util/ObjectIdentifier
+instanceKlass sun/security/pkcs/ContentInfo
+instanceKlass sun/security/util/DerIndefLenConverter
+instanceKlass sun/security/util/DerInputStream
+instanceKlass org/hibernate/validator/internal/util/TypeHelper
+instanceKlass sun/security/pkcs/PKCS7
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/ValueExtractorDescriptor$Key
+instanceKlass sun/security/util/ManifestDigester$Entry
+instanceKlass sun/security/util/ManifestDigester$Position
+instanceKlass sun/security/util/ManifestDigester
+instanceKlass org/hibernate/validator/internal/util/ReflectionHelper
+instanceKlass java/lang/reflect/AnnotatedParameterizedType
+instanceKlass javax/validation/valueextraction/ExtractedValue
+instanceKlass org/slf4j/helpers/BasicMarker
+instanceKlass org/slf4j/Marker
+instanceKlass sun/reflect/annotation/TypeAnnotation$TypeAnnotationTargetInfo
+instanceKlass sun/reflect/annotation/TypeAnnotation$LocationInfo$Location
+instanceKlass sun/reflect/annotation/TypeAnnotation$LocationInfo
+instanceKlass sun/reflect/annotation/AnnotatedTypeFactory$AnnotatedTypeBaseImpl
+instanceKlass sun/reflect/annotation/AnnotatedTypeFactory
+instanceKlass sun/reflect/annotation/TypeAnnotation
+instanceKlass sun/reflect/annotation/TypeAnnotationParser
+instanceKlass org/slf4j/helpers/BasicMarkerFactory
+instanceKlass org/slf4j/IMarkerFactory
+instanceKlass org/slf4j/impl/StaticMarkerBinder
+instanceKlass org/slf4j/spi/MarkerFactoryBinder
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/ValueExtractorDescriptor
+instanceKlass org/slf4j/MarkerFactory
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/ObservableValueValueExtractor
+instanceKlass javafx/beans/value/ObservableValue
+instanceKlass javafx/beans/Observable
+instanceKlass org/hibernate/validator/internal/engine/valueextraction/ValueExtractorManager
+instanceKlass org/hibernate/validator/internal/engine/ValidatorFactoryImpl
+instanceKlass org/hibernate/validator/HibernateValidatorFactory
+instanceKlass javax/validation/ValidatorFactory
+instanceKlass org/hibernate/validator/internal/xml/config/BootstrapConfigurationImpl
+instanceKlass javax/validation/BootstrapConfiguration
+instanceKlass org/hibernate/validator/internal/xml/config/ResourceLoaderHelper
+instanceKlass org/hibernate/validator/internal/xml/config/ValidationXmlParser
+instanceKlass org/hibernate/validator/internal/util/privilegedactions/GetInstancesFromServiceLoader
+instanceKlass javax/validation/valueextraction/ValueExtractor
+instanceKlass org/hibernate/validator/internal/util/privilegedactions/GetClassLoader
+instanceKlass org/hibernate/validator/internal/engine/DefaultClockProvider
+instanceKlass javax/validation/ClockProvider
+instanceKlass org/hibernate/validator/internal/engine/DefaultParameterNameProvider
+instanceKlass javax/validation/ParameterNameProvider
+instanceKlass org/hibernate/validator/internal/engine/constraintvalidation/ConstraintValidatorFactoryImpl
+instanceKlass javax/validation/ConstraintValidatorFactory
+instanceKlass sun/util/locale/provider/TimeZoneNameUtility$TimeZoneNameGetter
+instanceKlass org/hibernate/validator/internal/engine/resolver/TraverseAllTraversableResolver
+instanceKlass javax/validation/TraversableResolver
+instanceKlass sun/util/locale/provider/TimeZoneNameUtility
+instanceKlass sun/nio/cs/Surrogate
+instanceKlass sun/nio/cs/Surrogate$Parser
+instanceKlass org/hibernate/validator/internal/util/privilegedactions/LoadClass
+instanceKlass org/hibernate/validator/internal/engine/resolver/TraversableResolvers
+instanceKlass org/hibernate/validator/internal/util/Contracts
+instanceKlass java/lang/reflect/AnnotatedType
+instanceKlass org/hibernate/validator/internal/util/privilegedactions/GetMethod
+instanceKlass org/hibernate/validator/resourceloading/PlatformResourceBundleLocator
+instanceKlass org/hibernate/validator/spi/resourceloading/ResourceBundleLocator
+instanceKlass org/hibernate/validator/internal/xml/config/ValidationBootstrapParameters
+instanceKlass org/hibernate/validator/internal/engine/MethodValidationConfiguration$Builder
+instanceKlass org/hibernate/validator/internal/util/CollectionHelper
+instanceKlass org/apache/logging/slf4j/SLF4JLogger$1
+instanceKlass org/jboss/logging/Log4j2LoggerProvider
+instanceKlass org/apache/logging/log4j/spi/LoggerRegistry$ConcurrentMapFactory
+instanceKlass org/apache/logging/log4j/spi/LoggerRegistry$MapFactory
+instanceKlass org/apache/logging/log4j/spi/LoggerRegistry
+instanceKlass org/apache/logging/slf4j/SLF4JLoggerContext
+instanceKlass org/apache/logging/log4j/spi/LoggerContext
+instanceKlass org/apache/logging/slf4j/MDCContextMap
+instanceKlass org/apache/logging/log4j/spi/CleanableThreadContextMap
+instanceKlass org/apache/logging/log4j/spi/ThreadContextMap2
+instanceKlass org/apache/logging/log4j/spi/ThreadContextMap
+instanceKlass org/apache/logging/slf4j/SLF4JLoggerContextFactory
+instanceKlass org/apache/logging/log4j/spi/LoggerContextFactory
+instanceKlass org/apache/logging/log4j/util/ProviderUtil
+instanceKlass java/util/RegularEnumSet$EnumSetIterator
+instanceKlass org/apache/logging/log4j/Level
+instanceKlass org/apache/logging/log4j/util/Strings
+instanceKlass java/util/concurrent/ConcurrentLinkedQueue$Node
+instanceKlass org/apache/logging/log4j/message/DefaultFlowMessageFactory
+instanceKlass org/apache/logging/log4j/message/FlowMessageFactory
+instanceKlass java/util/ArrayList$SubList$1
+instanceKlass org/apache/logging/log4j/util/PropertySource$Util
+instanceKlass java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1
+instanceKlass org/apache/logging/log4j/util/PropertiesUtil$Environment$1
+instanceKlass org/apache/logging/log4j/util/BiConsumer
+instanceKlass org/apache/logging/log4j/util/SystemPropertiesPropertySource
+instanceKlass org/apache/logging/log4j/util/EnvironmentPropertySource
+instanceKlass org/apache/logging/log4j/util/PropertySource$Comparator
+instanceKlass org/apache/logging/log4j/util/LoaderUtil$ThreadContextClassLoaderGetter
+instanceKlass org/apache/logging/log4j/util/LoaderUtil
+instanceKlass org/apache/logging/log4j/util/PropertiesPropertySource
+instanceKlass org/apache/logging/log4j/util/PropertySource
+instanceKlass org/apache/logging/log4j/util/PropertiesUtil$Environment
+instanceKlass org/apache/logging/log4j/util/PropertiesUtil
+instanceKlass org/apache/logging/log4j/util/Constants
+instanceKlass org/apache/logging/log4j/message/AbstractMessageFactory
+instanceKlass org/apache/logging/log4j/message/ReusableMessageFactory
+instanceKlass org/apache/logging/log4j/message/MessageFactory2
+instanceKlass org/apache/logging/log4j/message/MessageFactory
+instanceKlass org/apache/logging/log4j/MarkerManager$Log4jMarker
+instanceKlass org/apache/logging/log4j/util/StringBuilderFormattable
+instanceKlass org/apache/logging/log4j/Marker
+instanceKlass org/apache/logging/log4j/MarkerManager
+instanceKlass org/apache/logging/log4j/spi/AbstractLogger
+instanceKlass org/apache/logging/log4j/LogManager
+instanceKlass org/jboss/logging/LoggerProvider
+instanceKlass org/jboss/logging/LoggerProviders
+instanceKlass org/jboss/logging/DelegatingBasicLogger
+instanceKlass org/jboss/logging/SecurityActions
+instanceKlass org/jboss/logging/LoggingLocale
+instanceKlass org/jboss/logging/Logger
+instanceKlass org/hibernate/validator/internal/util/logging/Log
+instanceKlass org/jboss/logging/BasicLogger
+instanceKlass org/hibernate/validator/internal/util/logging/LoggerFactory
+instanceKlass org/hibernate/validator/internal/util/Version
+instanceKlass org/hibernate/validator/internal/engine/ConfigurationImpl
+instanceKlass javax/validation/spi/ConfigurationState
+instanceKlass org/hibernate/validator/HibernateValidatorConfiguration
+instanceKlass javax/validation/Configuration
+instanceKlass org/hibernate/validator/HibernateValidator
+instanceKlass javax/validation/spi/ValidationProvider
+instanceKlass javax/validation/Validation$GetValidationProviderListAction
+instanceKlass javax/validation/Validation$DefaultValidationProviderResolver
+instanceKlass javax/validation/ValidationProviderResolver
+instanceKlass javax/validation/Validation$GenericBootstrapImpl
+instanceKlass javax/validation/spi/BootstrapState
+instanceKlass javax/validation/bootstrap/GenericBootstrap
+instanceKlass javax/validation/Validation
+instanceKlass org/springframework/boot/autoconfigure/BackgroundPreinitializer$ValidationInitializer
+instanceKlass org/springframework/format/annotation/DateTimeFormat
+instanceKlass org/springframework/format/datetime/standard/MonthDayFormatter
+instanceKlass java/time/MonthDay
+instanceKlass org/springframework/format/datetime/standard/YearMonthFormatter
+instanceKlass java/time/YearMonth
+instanceKlass org/springframework/format/datetime/standard/MonthFormatter
+instanceKlass org/springframework/format/datetime/standard/YearFormatter
+instanceKlass java/time/Year
+instanceKlass org/springframework/format/datetime/standard/DurationFormatter
+instanceKlass org/springframework/format/datetime/standard/PeriodFormatter
+instanceKlass org/springframework/format/datetime/standard/InstantFormatter
+instanceKlass org/springframework/format/Formatter
+instanceKlass java/time/OffsetTime
+instanceKlass org/springframework/format/support/FormattingConversionService$ParserConverter
+instanceKlass org/springframework/format/support/FormattingConversionService$PrinterConverter
+instanceKlass org/springframework/format/datetime/standard/TemporalAccessorParser
+instanceKlass org/springframework/format/Parser
+instanceKlass org/springframework/format/datetime/standard/TemporalAccessorPrinter
+instanceKlass org/springframework/format/Printer
+instanceKlass java/time/format/DateTimeFormatterBuilder$LocalizedPrinterParser
+instanceKlass java/time/format/DateTimeFormatter$$Lambda$18
+instanceKlass java/time/format/DateTimeFormatter$$Lambda$17
+instanceKlass java/time/Period
+instanceKlass java/time/chrono/ChronoPeriod
+instanceKlass java/time/format/DateTimeFormatterBuilder$TextPrinterParser
+instanceKlass java/time/format/DateTimeTextProvider$1
+instanceKlass java/time/format/DateTimeTextProvider
+instanceKlass java/util/AbstractMap$SimpleImmutableEntry
+instanceKlass java/time/format/DateTimeTextProvider$LocaleStore
+instanceKlass java/time/format/DateTimeFormatterBuilder$InstantPrinterParser
+instanceKlass java/time/format/DateTimeFormatterBuilder$StringLiteralPrinterParser
+instanceKlass java/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser
+instanceKlass java/time/format/DateTimeFormatterBuilder$FractionPrinterParser
+instanceKlass java/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser
+instanceKlass java/time/format/DecimalStyle
+instanceKlass java/time/format/DateTimeFormatterBuilder$CompositePrinterParser
+instanceKlass java/time/chrono/AbstractChronology$$Lambda$16
+instanceKlass java/time/chrono/AbstractChronology$$Lambda$15
+instanceKlass java/time/chrono/AbstractChronology$$Lambda$14
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/time/chrono/AbstractChronology
+instanceKlass java/time/chrono/Chronology
+instanceKlass java/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser
+instanceKlass java/time/format/DateTimeFormatterBuilder$NumberPrinterParser
+instanceKlass java/time/format/DateTimeFormatterBuilder$DateTimePrinterParser
+instanceKlass java/time/format/DateTimeFormatterBuilder$2
+instanceKlass java/time/temporal/IsoFields
+instanceKlass java/time/temporal/ValueRange
+instanceKlass java/time/Duration
+instanceKlass java/time/temporal/TemporalAmount
+instanceKlass java/time/temporal/TemporalUnit
+instanceKlass java/time/temporal/TemporalField
+instanceKlass java/time/format/DateTimeFormatterBuilder$$Lambda$13
+instanceKlass java/time/temporal/TemporalQuery
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/time/format/DateTimeFormatterBuilder
+instanceKlass java/time/format/DateTimeFormatter
+instanceKlass org/springframework/format/datetime/standard/DateTimeFormatterRegistrar$1
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters$InstantToLongConverter
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters$LongToInstantConverter
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters$CalendarToInstantConverter
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters$CalendarToLocalDateTimeConverter
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters$CalendarToLocalTimeConverter
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters$CalendarToLocalDateConverter
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters$CalendarToOffsetDateTimeConverter
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters$CalendarToZonedDateTimeConverter
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters$OffsetDateTimeToInstantConverter
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters$OffsetDateTimeToZonedDateTimeConverter
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters$OffsetDateTimeToLocalDateTimeConverter
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters$OffsetDateTimeToLocalTimeConverter
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters$OffsetDateTimeToLocalDateConverter
+instanceKlass java/time/Instant
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters$ZonedDateTimeToInstantConverter
+instanceKlass java/time/OffsetDateTime
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters$ZonedDateTimeToOffsetDateTimeConverter
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters$ZonedDateTimeToLocalDateTimeConverter
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters$ZonedDateTimeToLocalTimeConverter
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters$ZonedDateTimeToLocalDateConverter
+instanceKlass java/time/LocalTime
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters$LocalDateTimeToLocalTimeConverter
+instanceKlass java/time/LocalDate
+instanceKlass java/time/chrono/ChronoLocalDate
+instanceKlass java/time/LocalDateTime
+instanceKlass java/time/chrono/ChronoLocalDateTime
+instanceKlass java/time/temporal/TemporalAdjuster
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters$LocalDateTimeToLocalDateConverter
+instanceKlass org/springframework/format/datetime/DateFormatterRegistrar$LongToCalendarConverter
+instanceKlass org/springframework/format/datetime/DateFormatterRegistrar$LongToDateConverter
+instanceKlass org/springframework/format/datetime/DateFormatterRegistrar$CalendarToLongConverter
+instanceKlass org/springframework/format/datetime/DateFormatterRegistrar$CalendarToDateConverter
+instanceKlass org/springframework/format/datetime/DateFormatterRegistrar$DateToCalendarConverter
+instanceKlass org/springframework/format/datetime/DateFormatterRegistrar$DateToLongConverter
+instanceKlass org/springframework/format/datetime/DateFormatterRegistrar
+instanceKlass org/springframework/format/datetime/standard/DateTimeConverters
+instanceKlass org/springframework/format/datetime/standard/DateTimeFormatterFactory
+instanceKlass org/springframework/format/datetime/standard/DateTimeFormatterRegistrar
+instanceKlass org/springframework/format/FormatterRegistrar
+instanceKlass org/springframework/format/support/FormattingConversionService$AnnotationParserConverter
+instanceKlass org/springframework/format/support/FormattingConversionService$AnnotationPrinterConverter
+instanceKlass org/springframework/util/NumberUtils
+instanceKlass org/springframework/core/GenericTypeResolver$$Lambda$12
+instanceKlass org/springframework/format/annotation/NumberFormat
+instanceKlass org/springframework/core/GenericTypeResolver
+instanceKlass org/springframework/context/support/EmbeddedValueResolutionSupport
+instanceKlass org/springframework/format/AnnotationFormatterFactory
+instanceKlass org/springframework/core/convert/support/ObjectToOptionalConverter
+instanceKlass org/springframework/core/convert/support/FallbackObjectToStringConverter
+instanceKlass org/springframework/core/convert/support/IdToEntityConverter
+instanceKlass org/springframework/core/convert/support/ObjectToObjectConverter
+instanceKlass java/time/ZonedDateTime
+instanceKlass java/time/chrono/ChronoZonedDateTime
+instanceKlass java/time/temporal/Temporal
+instanceKlass java/time/temporal/TemporalAccessor
+instanceKlass org/springframework/core/convert/support/ZonedDateTimeToCalendarConverter
+instanceKlass java/time/ZoneId
+instanceKlass org/springframework/core/convert/support/ZoneIdToTimeZoneConverter
+instanceKlass org/springframework/core/convert/support/StringToTimeZoneConverter
+instanceKlass org/springframework/core/convert/support/ByteBufferConverter
+instanceKlass org/springframework/core/convert/TypeDescriptor$AnnotatedElementAdapter
+instanceKlass org/springframework/core/convert/TypeDescriptor
+instanceKlass org/springframework/core/convert/support/StreamConverter
+instanceKlass org/springframework/core/convert/support/ObjectToCollectionConverter
+instanceKlass org/springframework/core/convert/support/CollectionToObjectConverter
+instanceKlass org/springframework/core/convert/support/StringToCollectionConverter
+instanceKlass org/springframework/core/convert/support/ObjectToArrayConverter
+instanceKlass org/springframework/core/convert/support/ArrayToObjectConverter
+instanceKlass org/springframework/core/convert/support/StringToArrayConverter
+instanceKlass org/springframework/core/convert/support/CollectionToStringConverter
+instanceKlass org/springframework/core/convert/support/ArrayToStringConverter
+instanceKlass org/springframework/core/convert/support/MapToMapConverter
+instanceKlass org/springframework/core/convert/support/CollectionToCollectionConverter
+instanceKlass org/springframework/core/convert/support/ArrayToArrayConverter
+instanceKlass org/springframework/core/convert/support/CollectionToArrayConverter
+instanceKlass org/springframework/core/convert/support/ArrayToCollectionConverter
+instanceKlass java/util/UUID
+instanceKlass org/springframework/core/convert/support/StringToUUIDConverter
+instanceKlass org/springframework/core/convert/support/PropertiesToStringConverter
+instanceKlass org/springframework/core/convert/support/StringToPropertiesConverter
+instanceKlass org/springframework/core/convert/support/StringToCurrencyConverter
+instanceKlass org/springframework/core/convert/support/StringToCharsetConverter
+instanceKlass org/springframework/core/convert/support/StringToLocaleConverter
+instanceKlass org/springframework/core/convert/support/IntegerToEnumConverterFactory
+instanceKlass sun/reflect/generics/tree/Wildcard
+instanceKlass sun/reflect/generics/tree/BottomSignature
+instanceKlass org/springframework/core/convert/support/AbstractConditionalEnumConverter
+instanceKlass org/springframework/core/convert/support/StringToEnumConverterFactory
+instanceKlass org/springframework/core/convert/support/StringToBooleanConverter
+instanceKlass org/springframework/core/convert/support/CharacterToNumberFactory
+instanceKlass org/springframework/core/convert/support/NumberToCharacterConverter
+instanceKlass org/springframework/core/convert/support/StringToCharacterConverter
+instanceKlass org/springframework/core/convert/support/GenericConversionService$ConverterAdapter
+instanceKlass org/springframework/core/convert/support/ObjectToStringConverter
+instanceKlass org/springframework/core/convert/converter/Converter
+instanceKlass org/springframework/core/convert/support/StringToNumberConverterFactory
+instanceKlass org/springframework/core/convert/support/GenericConversionService$ConvertersForPair
+instanceKlass org/springframework/core/convert/converter/GenericConverter$ConvertiblePair
+instanceKlass org/springframework/core/convert/support/GenericConversionService$ConverterFactoryAdapter
+instanceKlass org/springframework/core/convert/converter/ConditionalGenericConverter
+instanceKlass liquibase/resource/AbstractResourceAccessor
+instanceKlass liquibase/resource/ResourceAccessor
+instanceKlass org/springframework/core/convert/support/NumberToNumberConverterFactory
+instanceKlass org/springframework/core/convert/converter/ConditionalConverter
+instanceKlass org/springframework/core/convert/converter/ConverterFactory
+instanceKlass liquibase/logging/core/AbstractLogger
+instanceKlass liquibase/logging/Logger
+instanceKlass liquibase/logging/core/AbstractLoggerFactory
+instanceKlass liquibase/logging/LoggerFactory
+instanceKlass org/springframework/core/convert/support/GenericConversionService$Converters
+instanceKlass liquibase/logging/LogService
+instanceKlass liquibase/servicelocator/DefaultPackageScanClassResolver
+instanceKlass liquibase/servicelocator/PackageScanClassResolver
+instanceKlass org/springframework/core/convert/support/GenericConversionService$NoOpConverter
+instanceKlass org/springframework/core/convert/converter/GenericConverter
+instanceKlass liquibase/osgi/OSGiUtil
+instanceKlass org/springframework/core/convert/support/GenericConversionService
+instanceKlass org/springframework/core/convert/support/ConfigurableConversionService
+instanceKlass org/springframework/core/convert/ConversionService
+instanceKlass org/springframework/boot/liquibase/LiquibaseServiceLocatorApplicationListener$LiquibasePresent
+instanceKlass liquibase/servicelocator/ServiceLocator
+instanceKlass org/springframework/context/EmbeddedValueResolverAware
+instanceKlass org/springframework/format/FormatterRegistry
+instanceKlass org/springframework/core/convert/converter/ConverterRegistry
+instanceKlass org/springframework/boot/autoconfigure/BackgroundPreinitializer$ConversionServiceInitializer
+instanceKlass org/springframework/boot/autoconfigure/BackgroundPreinitializer$1
+instanceKlass java/util/Formattable
+instanceKlass java/util/Formatter$Conversion
+instanceKlass java/util/Formatter$Flags
+instanceKlass java/util/Formatter$FormatSpecifier
+instanceKlass java/util/Formatter$FixedString
+instanceKlass java/util/Formatter$FormatString
+instanceKlass java/util/regex/ASCII
+instanceKlass java/util/regex/Matcher
+instanceKlass java/util/regex/MatchResult
+instanceKlass java/util/regex/Pattern$TreeInfo
+instanceKlass java/util/regex/Pattern$Node
+instanceKlass java/util/regex/Pattern
+instanceKlass java/util/Formatter
+instanceKlass org/springframework/boot/logging/LoggingSystem$$Lambda$11
+instanceKlass org/springframework/boot/logging/AbstractLoggingSystem$LogLevels
+instanceKlass org/springframework/boot/logging/LoggerConfigurationComparator
+instanceKlass java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry
+instanceKlass java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$$Lambda$10
+instanceKlass java/util/stream/Sink$ChainedReference
+instanceKlass java/util/stream/FindOps$$Lambda$9
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/util/stream/FindOps$FindSink
+instanceKlass java/util/stream/TerminalSink
+instanceKlass java/util/stream/Sink
+instanceKlass java/util/function/Consumer
+instanceKlass java/util/stream/FindOps$$Lambda$8
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/util/stream/FindOps$FindOp
+instanceKlass java/util/stream/TerminalOp
+instanceKlass java/util/stream/FindOps
+instanceKlass org/springframework/boot/logging/LoggingSystem$$Lambda$7
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass org/springframework/boot/logging/LoggingSystem$$Lambda$6
+instanceKlass java/util/function/Predicate
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/util/EnumMap$1
+instanceKlass java/util/stream/StreamOpFlag$MaskBuilder
+instanceKlass java/util/stream/PipelineHelper
+instanceKlass java/util/stream/Stream
+instanceKlass java/util/stream/BaseStream
+instanceKlass java/util/stream/StreamSupport
+instanceKlass java/util/Spliterators$IteratorSpliterator
+instanceKlass java/util/Spliterator$OfDouble
+instanceKlass java/util/Spliterator$OfLong
+instanceKlass java/util/Spliterator$OfInt
+instanceKlass java/util/Spliterator$OfPrimitive
+instanceKlass java/util/Spliterators$EmptySpliterator
+instanceKlass java/util/Spliterators
+instanceKlass java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntrySetSpliterator
+instanceKlass java/util/Spliterator
+instanceKlass org/springframework/boot/logging/LoggingSystem
+instanceKlass org/springframework/aop/SpringProxy
+instanceKlass org/springframework/aop/support/AopUtils
+instanceKlass org/springframework/core/ResolvableType$WildcardBounds
+instanceKlass org/springframework/core/ResolvableType$DefaultVariableResolver
+instanceKlass org/springframework/context/event/GenericApplicationListenerAdapter
+instanceKlass org/springframework/context/event/AbstractApplicationEventMulticaster$ListenerCacheKey
+instanceKlass org/springframework/core/ResolvableTypeProvider
+instanceKlass org/springframework/aop/framework/Advised
+instanceKlass org/springframework/aop/TargetClassAware
+instanceKlass org/springframework/aop/framework/AopProxyUtils
+instanceKlass org/springframework/context/event/AbstractApplicationEventMulticaster$ListenerRetriever
+instanceKlass org/springframework/context/event/AbstractApplicationEventMulticaster
+instanceKlass org/springframework/beans/factory/BeanFactoryAware
+instanceKlass org/springframework/beans/factory/BeanClassLoaderAware
+instanceKlass org/springframework/context/event/ApplicationEventMulticaster
+instanceKlass org/springframework/boot/context/event/EventPublishingRunListener
+instanceKlass org/springframework/boot/SpringApplicationRunListener
+instanceKlass org/springframework/boot/SpringApplicationRunListeners
+instanceKlass org/springframework/util/StopWatch
+instanceKlass org/springframework/core/annotation/AliasFor
+instanceKlass org/springframework/core/annotation/AnnotationUtils$AliasDescriptor
+instanceKlass org/springframework/core/annotation/SynthesizedAnnotation
+instanceKlass org/springframework/boot/liquibase/LiquibaseServiceLocatorApplicationListener
+instanceKlass org/springframework/core/ResolvableType$TypeVariablesVariableResolver
+instanceKlass org/springframework/core/ResolvableType$VariableResolver
+instanceKlass org/springframework/core/ResolvableType$SyntheticParameterizedType
+instanceKlass org/springframework/core/SerializableTypeWrapper$SerializableTypeProxy
+instanceKlass java/lang/reflect/WildcardType
+instanceKlass org/springframework/core/SerializableTypeWrapper
+instanceKlass org/springframework/boot/context/properties/source/ConfigurationPropertyName$ElementsParser
+instanceKlass org/springframework/boot/context/properties/source/ConfigurationPropertyName$Elements
+instanceKlass org/springframework/boot/context/properties/source/ConfigurationPropertyName
+instanceKlass org/springframework/boot/context/logging/LoggingApplicationListener
+instanceKlass org/springframework/boot/context/logging/ClasspathLoggingApplicationListener
+instanceKlass org/springframework/context/event/GenericApplicationListener
+instanceKlass org/springframework/boot/context/config/DelegatingApplicationListener
+instanceKlass org/springframework/boot/logging/DeferredLog
+instanceKlass org/springframework/core/ResolvableType$EmptyType
+instanceKlass org/springframework/core/ResolvableType
+instanceKlass org/springframework/boot/context/properties/bind/Bindable
+instanceKlass org/springframework/boot/context/config/ConfigFileApplicationListener
+instanceKlass org/springframework/boot/env/EnvironmentPostProcessor
+instanceKlass org/springframework/boot/context/config/AnsiOutputApplicationListener
+instanceKlass org/springframework/boot/context/FileEncodingApplicationListener
+instanceKlass org/springframework/boot/builder/ParentContextCloserApplicationListener
+instanceKlass org/springframework/context/ApplicationContextAware
+instanceKlass org/springframework/beans/factory/Aware
+instanceKlass org/springframework/boot/ClearCachesApplicationListener
+instanceKlass java/util/concurrent/CountDownLatch
+instanceKlass org/springframework/boot/autoconfigure/BackgroundPreinitializer
+instanceKlass org/springframework/cloud/context/restart/RestartListener
+instanceKlass org/springframework/context/event/SmartApplicationListener
+instanceKlass org/springframework/cloud/bootstrap/LoggingSystemShutdownListener
+instanceKlass org/springframework/cloud/bootstrap/BootstrapApplicationListener
+instanceKlass java/lang/FunctionalInterface
+instanceKlass org/springframework/core/DecoratingProxy
+instanceKlass org/springframework/util/ObjectUtils
+instanceKlass org/springframework/core/annotation/AnnotationUtils$$Lambda$5
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/core/annotation/AnnotationUtils$AnnotationCacheKey
+instanceKlass org/springframework/core/annotation/AnnotationUtils
+instanceKlass org/springframework/core/annotation/Order
+instanceKlass javax/annotation/Priority
+instanceKlass org/springframework/core/annotation/OrderUtils
+instanceKlass org/springframework/core/PriorityOrdered
+instanceKlass org/springframework/core/OrderComparator
+instanceKlass org/springframework/boot/web/context/ServerPortInfoApplicationContextInitializer
+instanceKlass org/springframework/context/ApplicationListener
+instanceKlass java/util/EventListener
+instanceKlass org/springframework/boot/context/config/DelegatingApplicationContextInitializer
+instanceKlass org/springframework/boot/context/ContextIdApplicationContextInitializer
+instanceKlass org/springframework/boot/context/ConfigurationWarningsApplicationContextInitializer
+instanceKlass org/springframework/boot/autoconfigure/logging/ConditionEvaluationReportLoggingListener
+instanceKlass org/springframework/core/KotlinDetector
+instanceKlass org/springframework/util/ReflectionUtils$$Lambda$4
+instanceKlass org/springframework/util/ReflectionUtils$FieldFilter
+instanceKlass org/springframework/util/ReflectionUtils$$Lambda$3
+instanceKlass org/springframework/util/ReflectionUtils$$Lambda$2
+instanceKlass org/springframework/util/ReflectionUtils$MethodFilter
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/springframework/util/ReflectionUtils
+instanceKlass org/springframework/beans/BeanUtils
+instanceKlass org/springframework/boot/autoconfigure/SharedMetadataReaderFactoryContextInitializer
+instanceKlass org/springframework/core/Ordered
+instanceKlass org/springframework/util/ConcurrentReferenceHashMap$Entry
+instanceKlass org/springframework/util/ConcurrentReferenceHashMap$Entries
+instanceKlass org/springframework/util/ConcurrentReferenceHashMap$Task
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/InnerClassLambdaMetafactory$1
+instanceKlass org/springframework/util/LinkedMultiValueMap$$Lambda$1
+instanceKlass java/lang/invoke/InfoFromMemberName
+instanceKlass java/lang/invoke/MethodHandleInfo
+instanceKlass java/security/AccessController$1
+instanceKlass java/lang/invoke/AbstractValidatingLambdaMetafactory
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass jdk/internal/org/objectweb/asm/FieldVisitor
+instanceKlass java/lang/invoke/BoundMethodHandle$Factory$1
+instanceKlass java/lang/invoke/BoundMethodHandle$SpeciesData$1
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaFormBuffer
+instanceKlass java/lang/invoke/LambdaFormEditor
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/MethodHandleImpl$Lazy
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/util/SubList$1
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/InvokerBytecodeGenerator$CpPatch
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass sun/invoke/empty/Empty
+instanceKlass sun/invoke/util/VerifyType
+instanceKlass java/lang/invoke/InvokerBytecodeGenerator$2
+instanceKlass jdk/internal/org/objectweb/asm/AnnotationVisitor
+instanceKlass jdk/internal/org/objectweb/asm/Frame
+instanceKlass jdk/internal/org/objectweb/asm/Label
+instanceKlass jdk/internal/org/objectweb/asm/Type
+instanceKlass jdk/internal/org/objectweb/asm/MethodVisitor
+instanceKlass jdk/internal/org/objectweb/asm/Item
+instanceKlass jdk/internal/org/objectweb/asm/ByteVector
+instanceKlass jdk/internal/org/objectweb/asm/ClassVisitor
+instanceKlass java/lang/invoke/InvokerBytecodeGenerator
+instanceKlass java/lang/invoke/DirectMethodHandle$Lazy
+instanceKlass sun/invoke/util/BytecodeDescriptor
+instanceKlass java/lang/invoke/BoundMethodHandle$Factory
+instanceKlass java/lang/invoke/BoundMethodHandle$SpeciesData
+instanceKlass java/lang/invoke/LambdaForm$NamedFunction
+instanceKlass java/lang/invoke/LambdaForm$Name
+instanceKlass sun/invoke/util/ValueConversions
+instanceKlass sun/invoke/util/VerifyAccess
+instanceKlass java/lang/Character$CharacterCache
+instanceKlass java/lang/Short$ShortCache
+instanceKlass java/lang/Byte$ByteCache
+instanceKlass sun/invoke/util/Wrapper$Format
+instanceKlass java/lang/invoke/MethodHandles
+instanceKlass java/lang/invoke/Invokers
+instanceKlass java/lang/invoke/MethodTypeForm
+instanceKlass java/lang/invoke/MethodType$ConcurrentWeakInternSet
+instanceKlass java/lang/invoke/MethodHandles$Lookup
+instanceKlass java/lang/invoke/LambdaMetafactory
+instanceKlass org/springframework/util/ResourceUtils
+instanceKlass org/springframework/core/io/support/PropertiesLoaderUtils
+instanceKlass org/springframework/util/CollectionUtils
+instanceKlass org/springframework/util/StringUtils
+instanceKlass org/springframework/core/io/AbstractResource
+instanceKlass org/springframework/core/io/Resource
+instanceKlass org/springframework/core/io/InputStreamSource
+instanceKlass java/util/zip/ZipFile$ZipEntryIterator
+instanceKlass java/util/jar/JarFile$JarEntryIterator
+instanceKlass org/springframework/util/LinkedMultiValueMap
+instanceKlass org/springframework/util/MultiValueMap
+instanceKlass org/springframework/util/ConcurrentReferenceHashMap$Reference
+instanceKlass org/springframework/util/ConcurrentReferenceHashMap$ReferenceManager
+instanceKlass org/springframework/core/io/support/SpringFactoriesLoader
+instanceKlass org/springframework/context/ApplicationContextInitializer
+instanceKlass org/springframework/web/context/ConfigurableWebApplicationContext
+instanceKlass org/springframework/context/ConfigurableApplicationContext
+instanceKlass org/springframework/context/Lifecycle
+instanceKlass org/springframework/web/context/WebApplicationContext
+instanceKlass org/springframework/context/ApplicationContext
+instanceKlass org/springframework/core/io/support/ResourcePatternResolver
+instanceKlass org/springframework/core/io/ResourceLoader
+instanceKlass org/springframework/context/ApplicationEventPublisher
+instanceKlass org/springframework/context/MessageSource
+instanceKlass org/springframework/beans/factory/HierarchicalBeanFactory
+instanceKlass org/springframework/beans/factory/ListableBeanFactory
+instanceKlass org/springframework/beans/factory/BeanFactory
+instanceKlass org/springframework/core/env/EnvironmentCapable
+instanceKlass javax/servlet/Servlet
+instanceKlass java/util/Optional
+instanceKlass java/util/IdentityHashMap$EntryIterator$Entry
+instanceKlass java/util/IdentityHashMap$IdentityHashMapIterator
+instanceKlass org/springframework/util/ClassUtils
+instanceKlass org/springframework/util/Assert
+instanceKlass org/apache/commons/logging/LogAdapter$Slf4jLog
+instanceKlass org/apache/commons/logging/Log
+instanceKlass org/apache/commons/logging/LogAdapter$Slf4jAdapter
+instanceKlass org/apache/commons/logging/LogAdapter$1
+instanceKlass org/apache/logging/log4j/spi/Provider
+instanceKlass org/apache/logging/log4j/spi/ExtendedLogger
+instanceKlass org/apache/logging/log4j/Logger
+instanceKlass org/apache/commons/logging/LogAdapter
+instanceKlass org/apache/commons/logging/LogFactory$2
+instanceKlass sun/net/www/protocol/jar/JarFileFactory
+instanceKlass sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController
+instanceKlass org/apache/commons/logging/LogFactory$3
+instanceKlass org/apache/commons/logging/LogFactory$4
+instanceKlass org/apache/commons/logging/impl/WeakHashtable$Referenced
+instanceKlass org/apache/commons/logging/LogFactory$1
+instanceKlass org/apache/commons/logging/LogFactory$6
+instanceKlass org/apache/commons/logging/LogFactory
+instanceKlass org/springframework/boot/SpringApplication
+instanceKlass ch/qos/logback/classic/util/LoggerNameUtil
+instanceKlass ch/qos/logback/classic/selector/DefaultContextSelector
+instanceKlass ch/qos/logback/classic/selector/ContextSelector
+instanceKlass ch/qos/logback/core/util/StatusPrinter
+instanceKlass ch/qos/logback/core/status/StatusUtil
+instanceKlass ch/qos/logback/core/spi/AppenderAttachableImpl
+instanceKlass ch/qos/logback/core/util/EnvUtil
+instanceKlass ch/qos/logback/core/pattern/Converter
+instanceKlass java/text/DigitList
+instanceKlass java/text/FieldPosition
+instanceKlass java/util/Currency$CurrencyNameGetter
+instanceKlass java/util/Currency$1
+instanceKlass java/util/Currency
+instanceKlass java/text/DecimalFormatSymbols
+instanceKlass java/util/concurrent/atomic/AtomicMarkableReference$Pair
+instanceKlass java/util/concurrent/atomic/AtomicMarkableReference
+instanceKlass java/text/DateFormatSymbols
+instanceKlass sun/util/calendar/CalendarUtils
+instanceKlass sun/util/calendar/CalendarDate
+instanceKlass sun/util/locale/LanguageTag
+instanceKlass java/util/ResourceBundle$CacheKeyReference
+instanceKlass java/util/ResourceBundle$CacheKey
+instanceKlass java/util/ResourceBundle$RBClassLoader$1
+instanceKlass java/util/spi/ResourceBundleControlProvider
+instanceKlass java/util/ResourceBundle
+instanceKlass java/util/ResourceBundle$Control
+instanceKlass sun/util/resources/LocaleData$1
+instanceKlass sun/util/resources/LocaleData
+instanceKlass sun/util/locale/provider/LocaleResources
+instanceKlass sun/util/locale/provider/CalendarDataUtility$CalendarWeekParameterGetter
+instanceKlass sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter
+instanceKlass sun/util/locale/provider/SPILocaleProviderAdapter$1
+instanceKlass sun/util/locale/provider/LocaleServiceProviderPool
+instanceKlass sun/util/locale/provider/CalendarDataUtility
+instanceKlass java/util/Calendar$Builder
+instanceKlass sun/util/locale/provider/JRELocaleProviderAdapter$1
+instanceKlass sun/util/locale/provider/LocaleDataMetaInfo
+instanceKlass sun/util/locale/provider/AvailableLanguageTags
+instanceKlass sun/util/locale/provider/LocaleProviderAdapter$1
+instanceKlass sun/util/locale/provider/ResourceBundleBasedAdapter
+instanceKlass sun/util/locale/provider/LocaleProviderAdapter
+instanceKlass java/util/spi/LocaleServiceProvider
+instanceKlass java/util/Calendar
+instanceKlass java/util/TimeZone$1
+instanceKlass sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule
+instanceKlass sun/util/calendar/ZoneInfoFile$1
+instanceKlass sun/util/calendar/ZoneInfoFile
+instanceKlass java/util/TimeZone
+instanceKlass java/util/Locale$1
+instanceKlass java/text/AttributedCharacterIterator$Attribute
+instanceKlass java/text/Format
+instanceKlass ch/qos/logback/core/util/CachingDateFormatter
+instanceKlass ch/qos/logback/core/Layout
+instanceKlass ch/qos/logback/core/encoder/Encoder
+instanceKlass ch/qos/logback/core/util/COWArrayList
+instanceKlass ch/qos/logback/core/spi/FilterAttachableImpl
+instanceKlass ch/qos/logback/core/Appender
+instanceKlass ch/qos/logback/core/spi/FilterAttachable
+instanceKlass ch/qos/logback/core/spi/ContextAwareBase
+instanceKlass ch/qos/logback/classic/util/EnvUtil
+instanceKlass ch/qos/logback/classic/spi/Configurator
+instanceKlass ch/qos/logback/core/spi/ContextAware
+instanceKlass ch/qos/logback/core/status/StatusBase
+instanceKlass ch/qos/logback/core/status/Status
+instanceKlass java/net/URLClassLoader$2
+instanceKlass java/util/Collections$3
+instanceKlass java/security/PermissionsEnumerator
+instanceKlass sun/security/provider/PolicyFile$7
+instanceKlass sun/security/provider/PolicyFile$5
+instanceKlass sun/security/provider/PolicyFile$PolicyEntry
+instanceKlass java/util/Vector$1
+instanceKlass sun/security/provider/PolicyParser$PermissionEntry
+instanceKlass sun/security/provider/PolicyParser$GrantEntry
+instanceKlass java/io/StreamTokenizer
+instanceKlass sun/security/util/PolicyUtil
+instanceKlass sun/security/provider/PolicyParser
+instanceKlass sun/security/util/PropertyExpander
+instanceKlass sun/security/provider/PolicyFile$3
+instanceKlass java/security/ProtectionDomain$2$1
+instanceKlass sun/misc/JavaSecurityProtectionDomainAccess$ProtectionDomainCache
+instanceKlass sun/security/provider/PolicyFile$PolicyInfo
+instanceKlass sun/security/provider/PolicyFile$1
+instanceKlass java/security/Policy$1
+instanceKlass java/security/Policy$PolicyInfo
+instanceKlass java/util/concurrent/atomic/AtomicReference
+instanceKlass java/security/Policy
+instanceKlass ch/qos/logback/core/util/Loader$1
+instanceKlass ch/qos/logback/core/util/Loader
+instanceKlass ch/qos/logback/core/util/OptionHelper
+instanceKlass ch/qos/logback/core/util/StatusListenerConfigHelper
+instanceKlass ch/qos/logback/classic/util/ContextInitializer
+instanceKlass ch/qos/logback/classic/util/ContextSelectorStaticBinder
+instanceKlass ch/qos/logback/classic/Level
+instanceKlass ch/qos/logback/classic/Logger
+instanceKlass ch/qos/logback/core/spi/AppenderAttachable
+instanceKlass org/slf4j/spi/LocationAwareLogger
+instanceKlass org/slf4j/Logger
+instanceKlass ch/qos/logback/classic/spi/LoggerContextVO
+instanceKlass ch/qos/logback/core/spi/LogbackLock
+instanceKlass ch/qos/logback/core/helpers/CyclicBuffer
+instanceKlass ch/qos/logback/core/BasicStatusManager
+instanceKlass ch/qos/logback/core/status/StatusManager
+instanceKlass ch/qos/logback/core/ContextBase
+instanceKlass ch/qos/logback/core/Context
+instanceKlass ch/qos/logback/core/spi/PropertyContainer
+instanceKlass ch/qos/logback/core/spi/LifeCycle
+instanceKlass org/slf4j/impl/StaticLoggerBinder
+instanceKlass org/slf4j/spi/LoggerFactoryBinder
+instanceKlass org/slf4j/helpers/Util
+instanceKlass org/slf4j/helpers/NOPLoggerFactory
+instanceKlass java/util/concurrent/LinkedBlockingQueue$Node
+instanceKlass org/slf4j/helpers/SubstituteLoggerFactory
+instanceKlass org/slf4j/ILoggerFactory
+instanceKlass org/slf4j/LoggerFactory
+instanceKlass sun/security/util/SignatureFileVerifier
+instanceKlass sun/launcher/LauncherHelper$FXHelper
+instanceKlass com/mes/GlassStorageApplication
+instanceKlass java/io/FileOutputStream$1
+instanceKlass sun/usagetracker/UsageTrackerClient$3
+instanceKlass java/lang/ProcessEnvironment$CheckedEntry
+instanceKlass java/lang/ProcessEnvironment$CheckedEntrySet$1
+instanceKlass java/lang/ProcessEnvironment$EntryComparator
+instanceKlass java/lang/ProcessEnvironment$NameComparator
+instanceKlass sun/usagetracker/UsageTrackerClient$2
+instanceKlass sun/usagetracker/UsageTrackerClient$4
+instanceKlass sun/usagetracker/UsageTrackerClient$1
+instanceKlass java/util/concurrent/atomic/AtomicBoolean
+instanceKlass sun/usagetracker/UsageTrackerClient
+instanceKlass sun/misc/PostVMInitHook
+instanceKlass sun/management/counter/Units
+instanceKlass sun/management/ConnectorAddressLink
+instanceKlass java/io/SerialCallbackContext
+instanceKlass java/io/ObjectStreamClass$ClassDataSlot
+instanceKlass java/lang/Long$LongCache
+instanceKlass java/io/ObjectStreamClass$FieldReflector
+instanceKlass java/io/ObjectInput
+instanceKlass java/io/DataInput
+instanceKlass sun/reflect/ClassDefiner$1
+instanceKlass sun/reflect/ClassDefiner
+instanceKlass sun/reflect/MethodAccessorGenerator$1
+instanceKlass sun/reflect/Label$PatchInfo
+instanceKlass sun/reflect/Label
+instanceKlass sun/reflect/UTF8
+instanceKlass sun/reflect/ClassFileAssembler
+instanceKlass sun/reflect/ByteVectorImpl
+instanceKlass sun/reflect/ByteVector
+instanceKlass sun/reflect/ByteVectorFactory
+instanceKlass sun/reflect/AccessorGenerator
+instanceKlass sun/reflect/ClassFileConstants
+instanceKlass java/io/ObjectStreamClass$2
+instanceKlass java/lang/reflect/WeakCache$LookupValue
+instanceKlass java/io/ObjectStreamClass$EntryFuture
+instanceKlass java/io/ObjectStreamClass$Caches
+instanceKlass java/io/ObjectStreamClass
+instanceKlass java/io/Bits
+instanceKlass java/io/ObjectOutputStream$ReplaceTable
+instanceKlass java/io/ObjectOutputStream$HandleTable
+instanceKlass java/io/ObjectStreamConstants
+instanceKlass java/io/ObjectOutput
+instanceKlass org/omg/CORBA/portable/ObjectImpl
+instanceKlass org/omg/CORBA/Object
+instanceKlass javax/management/remote/rmi/RMIConnector$2
+instanceKlass com/sun/jmx/remote/protocol/iiop/IIOPProxyImpl
+instanceKlass com/sun/jmx/remote/internal/IIOPProxy
+instanceKlass com/sun/jmx/remote/internal/IIOPHelper$1
+instanceKlass com/sun/jmx/remote/internal/IIOPHelper
+instanceKlass com/sun/jmx/remote/internal/ProxyRef
+instanceKlass sun/security/util/SecurityConstants
+instanceKlass javax/management/remote/NotificationResult
+instanceKlass javax/security/auth/Subject
+instanceKlass java/rmi/MarshalledObject
+instanceKlass javax/management/remote/rmi/RMIConnector$1
+instanceKlass javax/management/remote/rmi/RMIConnector
+instanceKlass javax/management/remote/JMXConnector
+instanceKlass sun/rmi/server/UnicastServerRef$HashToMethod_Maps$1
+instanceKlass sun/rmi/server/WeakClassHashMap$ValueCell
+instanceKlass sun/rmi/transport/tcp/TCPTransport$AcceptLoop
+instanceKlass sun/rmi/runtime/NewThreadAction$2
+instanceKlass sun/rmi/runtime/NewThreadAction$1
+instanceKlass sun/rmi/runtime/NewThreadAction
+instanceKlass java/net/ServerSocket
+instanceKlass sun/rmi/transport/ObjectEndpoint
+instanceKlass sun/rmi/transport/DGCImpl$2$1
+instanceKlass sun/rmi/transport/DGCImpl_Skel
+instanceKlass java/rmi/server/Skeleton
+instanceKlass java/rmi/server/Operation
+instanceKlass sun/rmi/transport/DGCImpl$2
+instanceKlass java/util/concurrent/RunnableScheduledFuture
+instanceKlass java/util/concurrent/ScheduledFuture
+instanceKlass java/util/concurrent/Delayed
+instanceKlass java/util/concurrent/RunnableFuture
+instanceKlass java/util/concurrent/Future
+instanceKlass sun/rmi/runtime/RuntimeUtil$1
+instanceKlass java/util/concurrent/ScheduledExecutorService
+instanceKlass sun/rmi/runtime/RuntimeUtil
+instanceKlass sun/rmi/runtime/RuntimeUtil$GetInstanceAction
+instanceKlass sun/rmi/transport/DGCImpl
+instanceKlass java/rmi/dgc/DGC
+instanceKlass sun/rmi/transport/ObjectTable
+instanceKlass sun/rmi/transport/Target
+instanceKlass sun/rmi/server/Util$1
+instanceKlass java/rmi/server/RemoteObjectInvocationHandler$1
+instanceKlass java/rmi/server/RemoteObject
+instanceKlass javax/management/remote/rmi/RMIConnection
+instanceKlass java/rmi/server/RMISocketFactory
+instanceKlass java/rmi/server/RMIClientSocketFactory
+instanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject
+instanceKlass java/util/concurrent/locks/Condition
+instanceKlass sun/rmi/transport/tcp/TCPTransport$1
+instanceKlass java/util/concurrent/ThreadFactory
+instanceKlass java/util/concurrent/SynchronousQueue$TransferStack$SNode
+instanceKlass java/util/concurrent/SynchronousQueue$Transferer
+instanceKlass java/util/concurrent/BlockingQueue
+instanceKlass java/util/concurrent/ThreadPoolExecutor$AbortPolicy
+instanceKlass java/util/concurrent/RejectedExecutionHandler
+instanceKlass java/util/concurrent/AbstractExecutorService
+instanceKlass java/util/concurrent/ExecutorService
+instanceKlass sun/security/action/GetLongAction
+instanceKlass sun/security/action/GetIntegerAction
+instanceKlass sun/rmi/transport/Transport
+instanceKlass sun/rmi/transport/tcp/TCPEndpoint
+instanceKlass sun/rmi/transport/Endpoint
+instanceKlass sun/nio/fs/BasicFileAttributesHolder
+instanceKlass sun/nio/fs/WindowsDirectoryStream$WindowsDirectoryIterator
+instanceKlass sun/nio/fs/WindowsFileAttributes
+instanceKlass java/nio/file/attribute/DosFileAttributes
+instanceKlass java/nio/file/attribute/BasicFileAttributes
+instanceKlass sun/nio/fs/NativeBuffer$Deallocator
+instanceKlass sun/nio/fs/NativeBuffer
+instanceKlass sun/nio/fs/NativeBuffers
+instanceKlass sun/nio/fs/WindowsNativeDispatcher$BackupResult
+instanceKlass sun/nio/fs/WindowsNativeDispatcher$CompletionStatus
+instanceKlass sun/nio/fs/WindowsNativeDispatcher$AclInformation
+instanceKlass sun/nio/fs/WindowsNativeDispatcher$Account
+instanceKlass sun/nio/fs/WindowsNativeDispatcher$DiskFreeSpace
+instanceKlass sun/nio/fs/WindowsNativeDispatcher$VolumeInformation
+instanceKlass sun/nio/fs/WindowsNativeDispatcher$FirstStream
+instanceKlass sun/nio/fs/WindowsNativeDispatcher$FirstFile
+instanceKlass sun/nio/fs/WindowsNativeDispatcher$1
+instanceKlass sun/nio/fs/WindowsNativeDispatcher
+instanceKlass sun/nio/fs/WindowsDirectoryStream
+instanceKlass java/nio/file/DirectoryStream
+instanceKlass java/nio/file/Files$AcceptAllFilter
+instanceKlass java/nio/file/DirectoryStream$Filter
+instanceKlass java/nio/file/Files
+instanceKlass sun/nio/fs/AbstractPath
+instanceKlass sun/nio/fs/Util
+instanceKlass sun/nio/fs/WindowsPathParser$Result
+instanceKlass sun/nio/fs/WindowsPathParser
+instanceKlass java/nio/file/FileSystem
+instanceKlass java/nio/file/spi/FileSystemProvider
+instanceKlass sun/nio/fs/DefaultFileSystemProvider
+instanceKlass java/nio/file/FileSystems$DefaultFileSystemHolder$1
+instanceKlass java/nio/file/FileSystems$DefaultFileSystemHolder
+instanceKlass java/nio/file/FileSystems
+instanceKlass java/net/NetworkInterface$2
+instanceKlass java/net/DefaultInterface
+instanceKlass java/net/InterfaceAddress
+instanceKlass java/net/NetworkInterface$1
+instanceKlass java/net/NetworkInterface
+instanceKlass sun/security/provider/ByteArrayAccess
+instanceKlass sun/security/provider/SeedGenerator$1
+instanceKlass sun/security/provider/SeedGenerator
+instanceKlass sun/security/provider/SecureRandom$SeederHolder
+instanceKlass sun/security/jca/GetInstance$Instance
+instanceKlass java/security/MessageDigestSpi
+instanceKlass sun/security/jca/GetInstance
+instanceKlass java/security/SecureRandomSpi
+instanceKlass java/security/Provider$UString
+instanceKlass java/security/Provider$Service
+instanceKlass sun/security/provider/NativePRNG$NonBlocking
+instanceKlass sun/security/provider/NativePRNG$Blocking
+instanceKlass sun/security/provider/NativePRNG
+instanceKlass sun/security/provider/SunEntries$1
+instanceKlass sun/security/provider/SunEntries
+instanceKlass sun/security/jca/ProviderConfig$2
+instanceKlass sun/security/jca/ProviderList$2
+instanceKlass sun/misc/FDBigInteger
+instanceKlass java/security/Provider$EngineDescription
+instanceKlass java/security/Provider$ServiceKey
+instanceKlass sun/security/jca/ProviderConfig
+instanceKlass sun/security/jca/ProviderList
+instanceKlass sun/security/jca/Providers
+instanceKlass java/util/Random
+instanceKlass java/rmi/server/UID
+instanceKlass java/rmi/server/ObjID
+instanceKlass sun/rmi/transport/LiveRef
+instanceKlass sun/rmi/server/WeakClassHashMap
+instanceKlass java/util/Collections$SynchronizedMap
+instanceKlass java/util/logging/ErrorManager
+instanceKlass sun/util/logging/LoggingSupport$2
+instanceKlass java/util/logging/Formatter
+instanceKlass sun/rmi/runtime/Log$LoggerLog$1
+instanceKlass sun/rmi/runtime/Log$LoggerLogFactory
+instanceKlass sun/rmi/runtime/Log$LogFactory
+instanceKlass sun/rmi/runtime/Log
+instanceKlass sun/rmi/server/Util
+instanceKlass sun/rmi/server/UnicastRef
+instanceKlass sun/rmi/server/Dispatcher
+instanceKlass java/rmi/server/ServerRef
+instanceKlass java/rmi/server/RemoteRef
+instanceKlass java/io/Externalizable
+instanceKlass javax/management/remote/rmi/RMIJRMPServerImpl$ExportedWrapper
+instanceKlass sun/rmi/server/DeserializationChecker
+instanceKlass javax/management/remote/rmi/RMIServerImpl
+instanceKlass javax/management/remote/rmi/RMIServer
+instanceKlass java/rmi/Remote
+instanceKlass java/util/Collections$UnmodifiableCollection$1
+instanceKlass javax/management/remote/JMXAddressable
+instanceKlass javax/management/remote/JMXConnectorServerMBean
+instanceKlass com/sun/jmx/remote/protocol/rmi/ServerProvider
+instanceKlass java/net/URLClassLoader$3$1
+instanceKlass sun/misc/CompoundEnumeration
+instanceKlass java/net/URLClassLoader$3
+instanceKlass sun/misc/URLClassPath$1
+instanceKlass java/lang/ClassLoader$2
+instanceKlass sun/misc/URLClassPath$2
+instanceKlass sun/misc/Launcher$BootClassPathHolder$1
+instanceKlass sun/misc/Launcher$BootClassPathHolder
+instanceKlass java/util/ServiceLoader$1
+instanceKlass java/util/ServiceLoader$LazyIterator
+instanceKlass java/util/ServiceLoader
+instanceKlass javax/management/remote/JMXConnectorFactory$1
+instanceKlass javax/management/remote/JMXConnectorFactory
+instanceKlass javax/management/remote/JMXConnectorServerProvider
+instanceKlass com/sun/jmx/remote/util/EnvHelp
+instanceKlass javax/management/remote/JMXConnectorServerFactory
+instanceKlass sun/management/jmxremote/LocalRMIServerSocketFactory
+instanceKlass java/rmi/server/RMIServerSocketFactory
+instanceKlass javax/management/remote/JMXServiceURL
+instanceKlass sun/management/Flag$1
+instanceKlass sun/management/Flag
+instanceKlass sun/management/ExtendedPlatformComponent
+instanceKlass java/util/Collections$UnmodifiableMap
+instanceKlass java/util/AbstractList$Itr
+instanceKlass sun/management/DiagnosticCommandImpl$Wrapper
+instanceKlass sun/management/DiagnosticCommandArgumentInfo
+instanceKlass sun/management/DiagnosticCommandInfo
+instanceKlass sun/management/DiagnosticCommandImpl$OperationInfoComparator
+instanceKlass java/lang/management/ManagementFactory$3
+instanceKlass com/sun/management/DiagnosticCommandMBean
+instanceKlass com/sun/management/VMOption
+instanceKlass sun/management/HotSpotDiagnostic
+instanceKlass com/sun/management/HotSpotDiagnosticMXBean
+instanceKlass java/util/Collections$EmptyIterator
+instanceKlass com/sun/management/UnixOperatingSystemMXBean
+instanceKlass sun/nio/ch/FileChannelImpl$1
+instanceKlass sun/nio/ch/IOUtil$1
+instanceKlass sun/nio/ch/IOUtil
+instanceKlass java/nio/file/attribute/FileAttribute
+instanceKlass java/nio/channels/spi/AbstractInterruptibleChannel
+instanceKlass java/nio/channels/InterruptibleChannel
+instanceKlass java/nio/channels/ScatteringByteChannel
+instanceKlass java/nio/channels/GatheringByteChannel
+instanceKlass java/nio/channels/SeekableByteChannel
+instanceKlass java/nio/channels/ByteChannel
+instanceKlass java/nio/channels/WritableByteChannel
+instanceKlass java/nio/channels/ReadableByteChannel
+instanceKlass java/nio/channels/Channel
+instanceKlass sun/management/ManagementFactoryHelper$1
+instanceKlass java/nio/Bits$1$1
+instanceKlass sun/misc/JavaNioAccess$BufferPool
+instanceKlass java/lang/management/BufferPoolMXBean
+instanceKlass javax/management/MBeanInfo$ArrayGettersSafeAction
+instanceKlass javax/management/openmbean/OpenMBeanOperationInfo
+instanceKlass sun/management/ManagementFactoryHelper$PlatformLoggingImpl
+instanceKlass sun/management/ManagementFactoryHelper$LoggingMXBean
+instanceKlass java/util/logging/LoggingMXBean
+instanceKlass java/lang/management/PlatformLoggingMXBean
+instanceKlass java/lang/management/LockInfo
+instanceKlass java/lang/management/ThreadInfo
+instanceKlass sun/management/ThreadImpl
+instanceKlass com/sun/management/ThreadMXBean
+instanceKlass java/lang/management/ThreadMXBean
+instanceKlass sun/reflect/generics/tree/TypeVariableSignature
+instanceKlass sun/management/RuntimeImpl
+instanceKlass java/lang/management/RuntimeMXBean
+instanceKlass sun/management/BaseOperatingSystemImpl
+instanceKlass com/sun/management/OperatingSystemMXBean
+instanceKlass java/lang/management/OperatingSystemMXBean
+instanceKlass sun/management/Sensor
+instanceKlass sun/management/MemoryPoolImpl
+instanceKlass java/lang/management/MemoryPoolMXBean
+instanceKlass javax/management/DescriptorKey
+instanceKlass sun/reflect/generics/reflectiveObjects/LazyReflectiveObjectGenerator
+instanceKlass java/lang/reflect/TypeVariable
+instanceKlass sun/reflect/generics/tree/ClassSignature
+instanceKlass sun/reflect/generics/reflectiveObjects/ParameterizedTypeImpl
+instanceKlass java/lang/reflect/ParameterizedType
+instanceKlass sun/reflect/generics/tree/MethodTypeSignature
+instanceKlass sun/reflect/generics/tree/Signature
+instanceKlass sun/reflect/generics/tree/FormalTypeParameter
+instanceKlass com/sun/management/GcInfo
+instanceKlass javax/management/openmbean/CompositeDataView
+instanceKlass java/lang/annotation/Target
+instanceKlass java/lang/reflect/WeakCache$Value
+instanceKlass sun/misc/ProxyGenerator$ExceptionTableEntry
+instanceKlass sun/misc/ProxyGenerator$PrimitiveTypeInfo
+instanceKlass sun/misc/ProxyGenerator$FieldInfo
+instanceKlass java/io/DataOutput
+instanceKlass sun/misc/ProxyGenerator$ConstantPool$Entry
+instanceKlass sun/misc/ProxyGenerator$MethodInfo
+instanceKlass sun/misc/ProxyGenerator$ProxyMethod
+instanceKlass sun/misc/ProxyGenerator$ConstantPool
+instanceKlass sun/misc/ProxyGenerator
+instanceKlass java/lang/reflect/WeakCache$Factory
+instanceKlass java/util/function/Supplier
+instanceKlass sun/reflect/annotation/AnnotationInvocationHandler
+instanceKlass sun/reflect/annotation/AnnotationParser$1
+instanceKlass java/lang/Class$4
+instanceKlass java/lang/annotation/Documented
+instanceKlass java/lang/annotation/Inherited
+instanceKlass java/lang/annotation/Retention
+instanceKlass sun/reflect/annotation/ExceptionProxy
+instanceKlass sun/reflect/annotation/AnnotationType$1
+instanceKlass jdk/Exported
+instanceKlass sun/reflect/generics/visitor/Reifier
+instanceKlass sun/reflect/generics/visitor/TypeTreeVisitor
+instanceKlass sun/reflect/generics/factory/CoreReflectionFactory
+instanceKlass sun/reflect/generics/factory/GenericsFactory
+instanceKlass sun/reflect/generics/scope/AbstractScope
+instanceKlass sun/reflect/generics/scope/Scope
+instanceKlass sun/reflect/generics/tree/ClassTypeSignature
+instanceKlass sun/reflect/generics/tree/SimpleClassTypeSignature
+instanceKlass sun/reflect/generics/tree/FieldTypeSignature
+instanceKlass sun/reflect/generics/tree/BaseType
+instanceKlass sun/reflect/generics/tree/TypeSignature
+instanceKlass sun/reflect/generics/tree/ReturnType
+instanceKlass sun/reflect/generics/tree/TypeArgument
+instanceKlass sun/reflect/generics/tree/TypeTree
+instanceKlass sun/reflect/generics/tree/Tree
+instanceKlass sun/reflect/generics/parser/SignatureParser
+instanceKlass com/sun/management/GarbageCollectorMXBean
+instanceKlass sun/management/ManagementFactory
+instanceKlass java/lang/management/GarbageCollectorMXBean
+instanceKlass java/lang/management/MemoryManagerMXBean
+instanceKlass com/sun/jmx/mbeanserver/PerInterface$MethodAndSig
+instanceKlass java/lang/management/MemoryUsage
+instanceKlass sun/management/NotificationEmitterSupport
+instanceKlass java/lang/management/MemoryMXBean
+instanceKlass sun/management/CompilationImpl
+instanceKlass sun/management/VMManagementImpl$1
+instanceKlass java/lang/management/CompilationMXBean
+instanceKlass com/sun/jmx/mbeanserver/WeakIdentityHashMap
+instanceKlass com/sun/jmx/mbeanserver/MXBeanLookup
+instanceKlass com/sun/jmx/mbeanserver/PerInterface$InitMaps
+instanceKlass com/sun/jmx/mbeanserver/PerInterface
+instanceKlass javax/management/openmbean/OpenMBeanAttributeInfo
+instanceKlass javax/management/openmbean/OpenMBeanParameterInfo
+instanceKlass java/lang/reflect/GenericArrayType
+instanceKlass com/sun/jmx/mbeanserver/MBeanIntrospector$MBeanInfoMaker
+instanceKlass com/sun/jmx/mbeanserver/MBeanAnalyzer$MBeanVisitor
+instanceKlass com/sun/jmx/mbeanserver/MBeanAnalyzer$AttrMethods
+instanceKlass com/sun/jmx/mbeanserver/MXBeanMapping
+instanceKlass java/lang/Void
+instanceKlass javax/management/openmbean/TabularData
+instanceKlass javax/management/openmbean/CompositeData
+instanceKlass javax/management/openmbean/OpenType
+instanceKlass com/sun/jmx/mbeanserver/MXBeanMappingFactory
+instanceKlass com/sun/jmx/mbeanserver/ConvertingMethod
+instanceKlass java/util/TimSort
+instanceKlass com/sun/jmx/mbeanserver/MBeanAnalyzer$MethodOrder
+instanceKlass java/lang/Class$MethodArray
+instanceKlass com/sun/jmx/mbeanserver/MBeanAnalyzer
+instanceKlass com/sun/jmx/mbeanserver/MBeanIntrospector
+instanceKlass java/lang/reflect/Proxy$ProxyClassFactory
+instanceKlass java/lang/reflect/Proxy$KeyFactory
+instanceKlass java/util/function/BiFunction
+instanceKlass java/lang/reflect/WeakCache
+instanceKlass java/lang/reflect/InvocationHandler
+instanceKlass java/lang/reflect/Proxy
+instanceKlass sun/reflect/annotation/AnnotationParser
+instanceKlass javax/management/MXBean
+instanceKlass com/sun/jmx/mbeanserver/MBeanSupport
+instanceKlass com/sun/jmx/mbeanserver/DescriptorCache
+instanceKlass javax/management/JMX
+instanceKlass javax/management/StandardMBean
+instanceKlass java/lang/management/ManagementFactory$2
+instanceKlass sun/management/Util
+instanceKlass java/util/Collections$1
+instanceKlass sun/management/ClassLoadingImpl
+instanceKlass sun/management/VMManagementImpl
+instanceKlass sun/management/VMManagement
+instanceKlass sun/management/ManagementFactoryHelper$4
+instanceKlass sun/management/ManagementFactoryHelper
+instanceKlass java/lang/management/ClassLoadingMXBean
+instanceKlass java/lang/management/PlatformManagedObject
+instanceKlass java/lang/management/PlatformComponent$15
+instanceKlass java/lang/management/PlatformComponent$14
+instanceKlass java/lang/management/PlatformComponent$13
+instanceKlass java/lang/management/PlatformComponent$12
+instanceKlass java/lang/management/PlatformComponent$11
+instanceKlass java/lang/management/PlatformComponent$10
+instanceKlass java/lang/management/PlatformComponent$9
+instanceKlass java/lang/management/PlatformComponent$8
+instanceKlass java/lang/management/PlatformComponent$7
+instanceKlass java/lang/management/PlatformComponent$6
+instanceKlass java/lang/management/PlatformComponent$5
+instanceKlass java/lang/management/PlatformComponent$4
+instanceKlass java/lang/management/PlatformComponent$3
+instanceKlass java/lang/management/PlatformComponent$2
+instanceKlass java/lang/management/PlatformComponent$1
+instanceKlass java/lang/management/PlatformComponent$MXBeanFetcher
+instanceKlass com/sun/jmx/mbeanserver/JmxMBeanServer$3
+instanceKlass javax/management/ObjectInstance
+instanceKlass java/util/concurrent/CopyOnWriteArrayList$COWIterator
+instanceKlass sun/util/calendar/CalendarSystem
+instanceKlass java/util/Date
+instanceKlass java/util/EventObject
+instanceKlass com/sun/jmx/mbeanserver/NamedObject
+instanceKlass com/sun/jmx/interceptor/DefaultMBeanServerInterceptor$ResourceContext$1
+instanceKlass com/sun/jmx/interceptor/DefaultMBeanServerInterceptor$ResourceContext
+instanceKlass com/sun/jmx/mbeanserver/Repository$RegistrationContext
+instanceKlass com/sun/jmx/mbeanserver/DynamicMBean2
+instanceKlass com/sun/jmx/defaults/JmxProperties
+instanceKlass com/sun/jmx/mbeanserver/Introspector
+instanceKlass com/sun/jmx/mbeanserver/JmxMBeanServer$2
+instanceKlass com/sun/jmx/interceptor/DefaultMBeanServerInterceptor
+instanceKlass com/sun/jmx/interceptor/MBeanServerInterceptor
+instanceKlass java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock
+instanceKlass java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock
+instanceKlass sun/nio/ch/Interruptible
+instanceKlass java/util/concurrent/locks/ReentrantReadWriteLock
+instanceKlass java/util/concurrent/locks/ReadWriteLock
+instanceKlass com/sun/jmx/mbeanserver/Repository
+instanceKlass com/sun/jmx/mbeanserver/JmxMBeanServer$1
+instanceKlass com/sun/jmx/mbeanserver/SecureClassLoaderRepository
+instanceKlass com/sun/jmx/mbeanserver/MBeanInstantiator
+instanceKlass com/sun/jmx/mbeanserver/ClassLoaderRepositorySupport$LoaderEntry
+instanceKlass com/sun/jmx/mbeanserver/ClassLoaderRepositorySupport
+instanceKlass com/sun/jmx/mbeanserver/ModifiableClassLoaderRepository
+instanceKlass javax/management/loading/ClassLoaderRepository
+instanceKlass java/util/NavigableSet
+instanceKlass java/util/SortedSet
+instanceKlass java/util/TreeMap$PrivateEntryIterator
+instanceKlass javax/management/ImmutableDescriptor
+instanceKlass javax/management/Descriptor
+instanceKlass javax/management/NotificationBroadcasterSupport$1
+instanceKlass java/util/concurrent/Executor
+instanceKlass javax/management/NotificationBroadcasterSupport
+instanceKlass java/util/ComparableTimSort
+instanceKlass java/util/Arrays$LegacyMergeSort
+instanceKlass javax/management/ObjectName$Property
+instanceKlass javax/management/ObjectName
+instanceKlass javax/management/QueryExp
+instanceKlass com/sun/jmx/mbeanserver/Util
+instanceKlass javax/management/MBeanInfo
+instanceKlass javax/management/MBeanFeatureInfo
+instanceKlass javax/management/DescriptorRead
+instanceKlass javax/management/MBeanServerDelegate
+instanceKlass javax/management/NotificationEmitter
+instanceKlass javax/management/NotificationBroadcaster
+instanceKlass javax/management/MBeanServerDelegateMBean
+instanceKlass javax/management/MBeanRegistration
+instanceKlass javax/management/DynamicMBean
+instanceKlass com/sun/jmx/mbeanserver/JmxMBeanServer
+instanceKlass com/sun/jmx/mbeanserver/SunJmxMBeanServer
+instanceKlass javax/management/MBeanServer
+instanceKlass javax/management/MBeanServerConnection
+instanceKlass javax/management/MBeanServerBuilder
+instanceKlass com/sun/jmx/mbeanserver/GetPropertyAction
+instanceKlass javax/management/MBeanServerFactory
+instanceKlass java/lang/management/ManagementFactory
+instanceKlass java/net/InetAddress$CacheEntry
+instanceKlass java/util/LinkedList$ListItr
+instanceKlass java/util/ListIterator
+instanceKlass sun/net/InetAddressCachePolicy$2
+instanceKlass java/security/Security$1
+instanceKlass java/security/Security
+instanceKlass sun/net/InetAddressCachePolicy$1
+instanceKlass sun/net/InetAddressCachePolicy
+instanceKlass java/net/Inet4AddressImpl
+instanceKlass sun/management/jmxremote/ConnectorBootstrap$PermanentExporter
+instanceKlass com/sun/jmx/remote/internal/RMIExporter
+instanceKlass java/util/logging/LogManager$5
+instanceKlass java/util/HashMap$HashIterator
+instanceKlass sun/reflect/UnsafeFieldAccessorFactory
+instanceKlass java/util/logging/LoggingProxyImpl
+instanceKlass sun/util/logging/LoggingProxy
+instanceKlass sun/util/logging/LoggingSupport$1
+instanceKlass sun/util/logging/LoggingSupport
+instanceKlass sun/util/logging/PlatformLogger$LoggerProxy
+instanceKlass sun/util/logging/PlatformLogger$1
+instanceKlass sun/util/logging/PlatformLogger
+instanceKlass java/util/logging/LogManager$LoggerContext$1
+instanceKlass java/util/logging/LogManager$3
+instanceKlass java/net/Socket$2
+instanceKlass java/util/logging/LogManager$2
+instanceKlass java/lang/Shutdown$Lock
+instanceKlass java/lang/Shutdown
+instanceKlass java/lang/ApplicationShutdownHooks$1
+instanceKlass java/lang/ApplicationShutdownHooks
+instanceKlass java/util/logging/LogManager$LogNode
+instanceKlass java/net/Inet6Address$Inet6AddressHolder
+instanceKlass java/util/logging/LogManager$LoggerContext
+instanceKlass sun/net/NetHooks
+instanceKlass java/util/logging/LogManager$1
+instanceKlass java/util/ArrayList$Itr
+instanceKlass java/util/logging/LogManager
+instanceKlass java/net/Proxy
+instanceKlass sun/net/spi/DefaultProxySelector$3
+instanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer$Node
+instanceKlass sun/net/spi/DefaultProxySelector$NonProxyInfo
+instanceKlass java/util/concurrent/locks/AbstractOwnableSynchronizer
+instanceKlass java/net/URI$Parser
+instanceKlass java/util/concurrent/CopyOnWriteArrayList
+instanceKlass java/net/URI
+instanceKlass java/util/logging/Logger$LoggerBundle
+instanceKlass java/util/logging/Level$KnownLevel
+instanceKlass java/util/logging/Level
+instanceKlass java/util/logging/Handler
+instanceKlass sun/net/NetProperties$1
+instanceKlass sun/net/NetProperties
+instanceKlass sun/net/spi/DefaultProxySelector$1
+instanceKlass java/net/ProxySelector
+instanceKlass java/net/SocksSocketImpl$3
+instanceKlass java/util/zip/CRC32
+instanceKlass java/util/zip/Checksum
+instanceKlass sun/misc/FloatingDecimal$ASCIIToBinaryBuffer
+instanceKlass sun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer
+instanceKlass sun/misc/FloatingDecimal$ASCIIToBinaryConverter
+instanceKlass sun/misc/FloatingDecimal$BinaryToASCIIBuffer
+instanceKlass sun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer
+instanceKlass sun/misc/FloatingDecimal$BinaryToASCIIConverter
+instanceKlass sun/misc/FloatingDecimal
+instanceKlass java/net/PlainSocketImpl$1
+instanceKlass java/lang/Package$1
+instanceKlass java/net/AbstractPlainSocketImpl$1
+instanceKlass java/util/logging/Logger
+instanceKlass java/net/SocketImpl
+instanceKlass com/sun/jmx/remote/util/ClassLogger
+instanceKlass java/net/SocketOptions
+instanceKlass sun/management/jmxremote/ConnectorBootstrap
+instanceKlass java/net/SocksConsts
+instanceKlass sun/misc/VMSupport
+instanceKlass sun/net/util/IPAddressUtil
+instanceKlass java/net/InetAddress$2
+instanceKlass sun/net/spi/nameservice/NameService
+instanceKlass java/net/Inet6AddressImpl
+instanceKlass java/net/InetAddressImpl
+instanceKlass java/net/InetAddressImplFactory
+instanceKlass java/net/InetAddress$Cache
+instanceKlass java/net/InetAddress$InetAddressHolder
+instanceKlass java/util/Properties$LineReader
+instanceKlass sun/management/Agent
+instanceKlass java/lang/invoke/MethodHandleStatics$1
+instanceKlass java/lang/invoke/MethodHandleStatics
+instanceKlass java/lang/invoke/MemberName$Factory
+instanceKlass java/lang/ClassValue$Version
+instanceKlass java/lang/ClassValue$Identity
+instanceKlass java/lang/ClassValue
+instanceKlass java/lang/invoke/MethodHandleImpl$3
+instanceKlass java/lang/invoke/MethodHandleImpl$2
+instanceKlass java/util/function/Function
+instanceKlass java/net/InetAddress$1
+instanceKlass sun/security/action/GetBooleanAction
+instanceKlass java/lang/invoke/MethodHandleImpl$1
+instanceKlass java/net/InetSocketAddress$InetSocketAddressHolder
+instanceKlass java/lang/invoke/MethodHandleImpl
+instanceKlass java/net/InetAddress
+instanceKlass java/net/SocketAddress
+instanceKlass java/net/Socket
+instanceKlass com/intellij/rt/execution/application/AppMainV2
+instanceKlass sun/instrument/InstrumentationImpl$1
+instanceKlass com/intellij/rt/execution/application/AppMainV2$Agent
+instanceKlass java/io/FilePermission$1
+instanceKlass sun/net/www/MessageHeader
+instanceKlass java/net/URLConnection
+instanceKlass java/security/PermissionCollection
+instanceKlass sun/nio/ByteBuffered
+instanceKlass sun/security/util/ManifestEntryVerifier
+instanceKlass java/lang/Package
+instanceKlass sun/misc/Resource
+instanceKlass java/util/jar/JarVerifier$3
+instanceKlass java/security/CodeSigner
+instanceKlass java/util/jar/JarVerifier
+instanceKlass java/util/jar/Attributes$Name
+instanceKlass java/util/jar/Attributes
+instanceKlass java/nio/file/attribute/FileTime
+instanceKlass java/util/zip/ZipUtils
+instanceKlass java/util/LinkedList$Node
+instanceKlass java/util/zip/ZStreamRef
+instanceKlass java/util/zip/Inflater
+instanceKlass sun/misc/IOUtils
+instanceKlass java/util/zip/ZipEntry
+instanceKlass sun/misc/ExtensionDependency
+instanceKlass sun/misc/JarIndex
+instanceKlass sun/nio/ch/DirectBuffer
+instanceKlass sun/misc/PerfCounter$CoreCounters
+instanceKlass sun/misc/Perf
+instanceKlass sun/misc/Perf$GetPerfAction
+instanceKlass sun/misc/PerfCounter
+instanceKlass java/util/zip/ZipCoder
+instanceKlass java/util/Deque
+instanceKlass java/util/Queue
+instanceKlass java/nio/charset/StandardCharsets
+instanceKlass java/util/jar/JavaUtilJarAccessImpl
+instanceKlass sun/misc/JavaUtilJarAccess
+instanceKlass sun/misc/FileURLMapper
+instanceKlass sun/misc/URLClassPath$JarLoader$1
+instanceKlass sun/nio/cs/ThreadLocalCoders$Cache
+instanceKlass sun/nio/cs/ThreadLocalCoders
+instanceKlass java/util/zip/ZipFile$1
+instanceKlass sun/misc/JavaUtilZipFileAccess
+instanceKlass java/util/zip/ZipFile
+instanceKlass java/util/zip/ZipConstants
+instanceKlass sun/misc/URLClassPath$Loader
+instanceKlass sun/misc/URLClassPath$3
+instanceKlass sun/net/util/URLUtil
+instanceKlass java/net/URLClassLoader$1
+instanceKlass sun/instrument/TransformerManager$TransformerInfo
+instanceKlass sun/instrument/TransformerManager
+instanceKlass sun/instrument/InstrumentationImpl
+instanceKlass java/lang/instrument/Instrumentation
+instanceKlass java/lang/SystemClassLoaderAction
+instanceKlass java/util/LinkedHashMap$LinkedHashIterator
+instanceKlass sun/misc/Launcher$AppClassLoader$1
+instanceKlass sun/misc/URLClassPath
+instanceKlass java/security/Principal
+instanceKlass java/security/ProtectionDomain$Key
+instanceKlass java/security/ProtectionDomain$2
+instanceKlass sun/misc/JavaSecurityProtectionDomainAccess
+instanceKlass java/security/ProtectionDomain$JavaSecurityAccessImpl
+instanceKlass sun/misc/JavaSecurityAccess
+instanceKlass java/net/URLStreamHandler
+instanceKlass java/net/Parts
+instanceKlass java/util/BitSet
+instanceKlass sun/net/www/ParseUtil
+instanceKlass java/io/FileInputStream$1
+instanceKlass java/lang/CharacterData
+instanceKlass sun/util/locale/LocaleUtils
+instanceKlass java/util/Locale$LocaleKey
+instanceKlass sun/util/locale/BaseLocale$Key
+instanceKlass sun/util/locale/BaseLocale
+instanceKlass java/util/concurrent/ConcurrentHashMap$CollectionView
+instanceKlass java/util/concurrent/ConcurrentHashMap$CounterCell
+instanceKlass java/util/concurrent/ConcurrentHashMap$Node
+instanceKlass java/util/concurrent/locks/ReentrantLock
+instanceKlass java/util/concurrent/locks/Lock
+instanceKlass java/util/concurrent/ConcurrentMap
+instanceKlass sun/util/locale/LocaleObjectCache
+instanceKlass java/util/Locale
+instanceKlass java/lang/reflect/Array
+instanceKlass java/io/Reader
+instanceKlass sun/misc/MetaIndex
+instanceKlass sun/misc/Launcher$ExtClassLoader$1
+instanceKlass java/util/StringTokenizer
+instanceKlass java/net/URLClassLoader$7
+instanceKlass sun/misc/JavaNetAccess
+instanceKlass java/lang/ClassLoader$ParallelLoaders
+instanceKlass sun/security/util/Debug
+instanceKlass sun/misc/Launcher$Factory
+instanceKlass java/net/URLStreamHandlerFactory
+instanceKlass java/lang/Compiler$1
+instanceKlass java/lang/Compiler
+instanceKlass java/lang/System$2
+instanceKlass sun/misc/JavaLangAccess
+instanceKlass sun/io/Win32ErrorMode
+instanceKlass sun/misc/OSEnvironment
+instanceKlass java/lang/Integer$IntegerCache
+instanceKlass sun/misc/NativeSignalHandler
+instanceKlass sun/misc/Signal
+instanceKlass java/lang/Terminator$1
+instanceKlass sun/misc/SignalHandler
+instanceKlass java/lang/Terminator
+instanceKlass java/lang/ClassLoader$NativeLibrary
+instanceKlass java/io/ExpiringCache$Entry
+instanceKlass java/lang/ClassLoader$3
+instanceKlass java/nio/charset/CoderResult$Cache
+instanceKlass java/nio/charset/CoderResult
+instanceKlass java/lang/Readable
+instanceKlass java/lang/StringCoding$StringEncoder
+instanceKlass java/nio/file/Path
+instanceKlass java/nio/file/Watchable
+instanceKlass java/lang/Enum
+instanceKlass java/io/ExpiringCache
+instanceKlass java/io/FileSystem
+instanceKlass java/io/DefaultFileSystem
+instanceKlass java/nio/Bits$1
+instanceKlass sun/misc/JavaNioAccess
+instanceKlass java/nio/ByteOrder
+instanceKlass java/nio/Bits
+instanceKlass java/nio/charset/CharsetEncoder
+instanceKlass sun/nio/cs/ArrayEncoder
+instanceKlass sun/security/action/GetPropertyAction
+instanceKlass java/io/Writer
+instanceKlass sun/reflect/misc/ReflectUtil
+instanceKlass java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1
+instanceKlass java/security/PrivilegedExceptionAction
+instanceKlass java/util/concurrent/atomic/AtomicReferenceFieldUpdater
+instanceKlass java/io/OutputStream
+instanceKlass java/io/Flushable
+instanceKlass java/io/FileDescriptor$1
+instanceKlass sun/misc/JavaIOFileDescriptorAccess
+instanceKlass java/io/FileDescriptor
+instanceKlass sun/misc/Version
+instanceKlass java/lang/Runtime
+instanceKlass java/util/Hashtable$Enumerator
+instanceKlass java/util/Iterator
+instanceKlass java/util/Enumeration
+instanceKlass java/util/Objects
+instanceKlass java/util/Collections$SynchronizedCollection
+instanceKlass java/nio/charset/CodingErrorAction
+instanceKlass java/nio/charset/CharsetDecoder
+instanceKlass sun/nio/cs/ArrayDecoder
+instanceKlass sun/nio/cs/ext/DelegatableDecoder
+instanceKlass sun/nio/cs/ext/DoubleByte
+instanceKlass java/lang/StringCoding$StringDecoder
+instanceKlass java/lang/ThreadLocal$ThreadLocalMap
+instanceKlass java/lang/StringCoding
+instanceKlass sun/nio/cs/HistoricallyNamedCharset
+instanceKlass java/util/TreeMap$Entry
+instanceKlass sun/misc/ASCIICaseInsensitiveComparator
+instanceKlass java/util/NavigableMap
+instanceKlass java/util/SortedMap
+instanceKlass sun/reflect/ReflectionFactory$1
+instanceKlass java/lang/Class$1
+instanceKlass java/nio/charset/Charset$ExtendedProviderHolder$1
+instanceKlass java/nio/charset/Charset$ExtendedProviderHolder
+instanceKlass java/util/Arrays
+instanceKlass java/lang/reflect/ReflectAccess
+instanceKlass sun/reflect/LangReflectAccess
+instanceKlass java/lang/reflect/Modifier
+instanceKlass sun/reflect/annotation/AnnotationType
+instanceKlass java/lang/Class$AnnotationData
+instanceKlass sun/reflect/generics/repository/AbstractRepository
+instanceKlass java/lang/Class$Atomic
+instanceKlass java/lang/Class$ReflectionData
+instanceKlass java/lang/Class$3
+instanceKlass java/lang/ThreadLocal
+instanceKlass java/nio/charset/spi/CharsetProvider
+instanceKlass java/nio/charset/Charset
+instanceKlass java/lang/Math
+instanceKlass java/util/Hashtable$Entry
+instanceKlass sun/misc/VM
+instanceKlass java/util/HashMap$Node
+instanceKlass java/util/Map$Entry
+instanceKlass sun/reflect/Reflection
+instanceKlass sun/misc/SharedSecrets
+instanceKlass java/lang/ref/Reference$1
+instanceKlass sun/misc/JavaLangRefAccess
+instanceKlass java/lang/ref/ReferenceQueue$Lock
+instanceKlass java/lang/ref/ReferenceQueue
+instanceKlass java/util/Collections$UnmodifiableCollection
+instanceKlass java/util/AbstractMap
+instanceKlass java/util/Set
+instanceKlass java/util/Collections
+instanceKlass java/lang/ref/Reference$Lock
+instanceKlass sun/reflect/ReflectionFactory
+instanceKlass java/util/AbstractCollection
+instanceKlass java/util/RandomAccess
+instanceKlass java/util/List
+instanceKlass java/util/Collection
+instanceKlass java/lang/Iterable
+instanceKlass java/security/cert/Certificate
+instanceKlass sun/reflect/ReflectionFactory$GetReflectionFactoryAction
+instanceKlass java/security/PrivilegedAction
+instanceKlass java/security/AccessController
+instanceKlass java/security/Permission
+instanceKlass java/security/Guard
+instanceKlass java/lang/String$CaseInsensitiveComparator
+instanceKlass java/util/Comparator
+instanceKlass java/io/ObjectStreamField
+instanceKlass java/lang/Number
+instanceKlass java/lang/Character
+instanceKlass java/lang/Boolean
+instanceKlass java/nio/Buffer
+instanceKlass java/lang/StackTraceElement
+instanceKlass java/security/CodeSource
+instanceKlass sun/misc/Launcher
+instanceKlass java/util/jar/Manifest
+instanceKlass java/net/URL
+instanceKlass java/io/File
+instanceKlass java/io/InputStream
+instanceKlass java/io/Closeable
+instanceKlass java/lang/AutoCloseable
+instanceKlass sun/misc/Unsafe
+instanceKlass java/lang/AbstractStringBuilder
+instanceKlass java/lang/Appendable
+instanceKlass java/lang/invoke/CallSite
+instanceKlass java/lang/invoke/MethodType
+instanceKlass java/lang/invoke/LambdaForm
+instanceKlass java/lang/invoke/MethodHandleNatives
+instanceKlass java/lang/invoke/MemberName
+instanceKlass java/lang/invoke/MethodHandle
+instanceKlass sun/reflect/CallerSensitive
+instanceKlass java/lang/annotation/Annotation
+instanceKlass sun/reflect/FieldAccessor
+instanceKlass sun/reflect/ConstantPool
+instanceKlass sun/reflect/ConstructorAccessor
+instanceKlass sun/reflect/MethodAccessor
+instanceKlass sun/reflect/MagicAccessorImpl
+instanceKlass java/lang/reflect/Parameter
+instanceKlass java/lang/reflect/Member
+instanceKlass java/lang/reflect/AccessibleObject
+instanceKlass java/util/Dictionary
+instanceKlass java/util/Map
+instanceKlass java/lang/ThreadGroup
+instanceKlass java/lang/Thread$UncaughtExceptionHandler
+instanceKlass java/lang/Thread
+instanceKlass java/lang/Runnable
+instanceKlass java/lang/ref/Reference
+instanceKlass java/security/AccessControlContext
+instanceKlass java/security/ProtectionDomain
+instanceKlass java/lang/SecurityManager
+instanceKlass java/lang/Throwable
+instanceKlass java/lang/System
+instanceKlass java/lang/ClassLoader
+instanceKlass java/lang/Cloneable
+instanceKlass java/lang/Class
+instanceKlass java/lang/reflect/Type
+instanceKlass java/lang/reflect/GenericDeclaration
+instanceKlass java/lang/reflect/AnnotatedElement
+instanceKlass java/lang/String
+instanceKlass java/lang/CharSequence
+instanceKlass java/lang/Comparable
+instanceKlass java/io/Serializable
+ciInstanceKlass java/lang/Object 1 1 78 3 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 100 7 7 7 7 7 1 1 1 12 12 12 12 12 12 12 12 12 12 10 10 10 10 10 10 10 10 10 10 1
+ciInstanceKlass java/io/Serializable 1 0 7 1 1 1 100 100 1
+ciInstanceKlass java/lang/String 1 1 540 3 3 3 3 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 7 7 100 7 100 7 7 100 100 7 100 100 100 7 100 100 7 100 7 7 100 7 100 100 7 100 7 100 100 7 7 7 7 100 7 7 100 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 1 1
+staticfield java/lang/String serialPersistentFields [Ljava/io/ObjectStreamField; 0 [Ljava/io/ObjectStreamField;
+staticfield java/lang/String CASE_INSENSITIVE_ORDER Ljava/util/Comparator; java/lang/String$CaseInsensitiveComparator
+ciInstanceKlass java/lang/Class 1 1 1190 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 5 0 8 8 8 8 8 7 7 7 100 100 100 7 7 100 7 100 7 7 7 7 100 7 7 100 7 7 100 100 7 7 100 100 7 100 100 7 7 7 7 100 7 100 7 7 7 100 100 7 7 100 100 7 7 100 7 100 7 7 100 100 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 100 100 7 7 7 7 100 7 7 7 7 100 100 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1
+staticfield java/lang/Class serialPersistentFields [Ljava/io/ObjectStreamField; 0 [Ljava/io/ObjectStreamField;
+ciInstanceKlass java/lang/Cloneable 1 0 7 1 1 1 100 100 1
+instanceKlass javax/management/remote/rmi/RMIConnectionImpl$CombinedClassLoader$ClassLoaderWrapper
+instanceKlass javax/management/remote/rmi/RMIConnectionImpl$CombinedClassLoader
+instanceKlass com/sun/jmx/remote/util/ClassLoaderWithRepository
+instanceKlass java/util/ResourceBundle$RBClassLoader
+instanceKlass javax/management/remote/rmi/NoCallStackClassLoader
+instanceKlass sun/reflect/DelegatingClassLoader
+instanceKlass java/security/SecureClassLoader
+ciInstanceKlass java/lang/ClassLoader 1 1 842 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 7 7 7 100 100 100 7 7 100 7 7 7 7 7 7 100 7 100 100 7 7 100 100 7 7 7 7 100 7 100 100 7 100 100 7 7 100 7 7 100 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 1 1
+staticfield java/lang/ClassLoader nocerts [Ljava/security/cert/Certificate; 0 [Ljava/security/cert/Certificate;
+ciInstanceKlass java/lang/System 1 1 369 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7 7 100 100 100 100 100 100 7 7 100 100 7 100 100 7 7 7 7 100 100 100 7 100 100 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1
+staticfield java/lang/System in Ljava/io/InputStream; java/io/BufferedInputStream
+staticfield java/lang/System out Ljava/io/PrintStream; java/io/PrintStream
+staticfield java/lang/System err Ljava/io/PrintStream; java/io/PrintStream
+instanceKlass java/lang/Exception
+instanceKlass java/lang/Error
+ciInstanceKlass java/lang/Throwable 1 1 327 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 7 100 7 100 7 100 100 7 7 100 100 100 7 7 100 100 100 100 100 100 100 100 100 7 7 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 1 1 1 1 1
+staticfield java/lang/Throwable UNASSIGNED_STACK [Ljava/lang/StackTraceElement; 0 [Ljava/lang/StackTraceElement;
+staticfield java/lang/Throwable SUPPRESSED_SENTINEL Ljava/util/List; java/util/Collections$UnmodifiableRandomAccessList
+staticfield java/lang/Throwable EMPTY_THROWABLE_ARRAY [Ljava/lang/Throwable; 0 [Ljava/lang/Throwable;
+staticfield java/lang/Throwable $assertionsDisabled Z 1
+instanceKlass java/lang/VirtualMachineError
+instanceKlass java/lang/LinkageError
+instanceKlass java/lang/ThreadDeath
+ciInstanceKlass java/lang/Error 1 1 30 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 1 1 12 12 12 12 12 10 10 10 10 10 1
+ciInstanceKlass java/lang/ThreadDeath 0 0 18 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 10 1
+instanceKlass java/util/zip/DataFormatException
+instanceKlass java/sql/SQLException
+instanceKlass org/apache/catalina/LifecycleException
+instanceKlass java/util/concurrent/ExecutionException
+instanceKlass javax/servlet/ServletException
+instanceKlass java/beans/PropertyVetoException
+instanceKlass java/util/concurrent/TimeoutException
+instanceKlass javax/naming/NamingException
+instanceKlass java/rmi/activation/ActivationException
+instanceKlass java/security/GeneralSecurityException
+instanceKlass java/lang/CloneNotSupportedException
+instanceKlass javax/management/JMException
+instanceKlass java/security/PrivilegedActionException
+instanceKlass java/io/IOException
+instanceKlass java/lang/InterruptedException
+instanceKlass java/lang/ReflectiveOperationException
+instanceKlass java/lang/RuntimeException
+ciInstanceKlass java/lang/Exception 1 1 30 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 1 1 12 12 12 12 12 10 10 10 10 10 1
+instanceKlass org/springframework/security/core/AuthenticationException
+instanceKlass org/springframework/cache/interceptor/CacheOperationInvoker$ThrowableWrapper
+instanceKlass java/lang/NegativeArraySizeException
+instanceKlass org/springframework/cglib/core/ClassNameReader$EarlyExitException
+instanceKlass org/springframework/core/NestedRuntimeException
+instanceKlass javax/management/JMRuntimeException
+instanceKlass javax/validation/ValidationException
+instanceKlass java/lang/IllegalStateException
+instanceKlass java/lang/invoke/WrongMethodTypeException
+instanceKlass org/apache/commons/logging/LogConfigurationException
+instanceKlass java/lang/SecurityException
+instanceKlass java/lang/IndexOutOfBoundsException
+instanceKlass java/lang/IllegalArgumentException
+instanceKlass java/lang/ArithmeticException
+instanceKlass java/lang/NullPointerException
+instanceKlass java/lang/IllegalMonitorStateException
+instanceKlass java/lang/ArrayStoreException
+instanceKlass java/lang/ClassCastException
+ciInstanceKlass java/lang/RuntimeException 1 1 30 1 1 1 1 1 1 1 1 1 1 1 1 5 0 7 100 1 1 12 12 12 12 12 10 10 10 10 10 1
+ciInstanceKlass java/lang/SecurityManager 0 0 375 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1
+ciInstanceKlass java/security/ProtectionDomain 1 1 272 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 7 100 100 100 100 100 100 100 100 100 7 7 7 7 7 100 7 7 7 100 100 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 1 1
+staticfield java/security/ProtectionDomain debug Lsun/security/util/Debug; null
+ciInstanceKlass java/security/AccessControlContext 1 1 305 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 7 100 7 7 100 100 7 100 7 7 100 100 7 7 7 100 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 1
+instanceKlass java/net/URLClassLoader
+ciInstanceKlass java/security/SecureClassLoader 1 1 130 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 100 100 7 100 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1
+staticfield java/security/SecureClassLoader debug Lsun/security/util/Debug; null
+instanceKlass java/lang/reflect/InvocationTargetException
+instanceKlass java/lang/IllegalAccessException
+instanceKlass java/lang/InstantiationException
+instanceKlass java/lang/NoSuchMethodException
+instanceKlass java/lang/NoSuchFieldException
+instanceKlass java/lang/ClassNotFoundException
+ciInstanceKlass java/lang/ReflectiveOperationException 1 1 27 1 1 1 1 1 1 1 1 1 1 1 1 5 0 7 100 1 12 12 12 12 10 10 10 10 1
+ciInstanceKlass java/lang/ClassNotFoundException 1 1 32 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 100 1 1 1 12 12 12 9 10 10 1
+instanceKlass java/lang/VerifyError
+instanceKlass java/lang/UnsatisfiedLinkError
+instanceKlass java/lang/ExceptionInInitializerError
+instanceKlass java/lang/ClassCircularityError
+instanceKlass java/lang/ClassFormatError
+instanceKlass java/lang/IncompatibleClassChangeError
+instanceKlass java/lang/BootstrapMethodError
+instanceKlass java/lang/NoClassDefFoundError
+ciInstanceKlass java/lang/LinkageError 1 1 24 1 1 1 1 1 1 1 1 1 1 1 5 0 7 100 1 12 12 12 10 10 10 1
+ciInstanceKlass java/lang/NoClassDefFoundError 0 0 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1
+ciInstanceKlass java/lang/ClassCastException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1
+ciInstanceKlass java/lang/ArrayStoreException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1
+instanceKlass java/lang/InternalError
+instanceKlass java/lang/StackOverflowError
+instanceKlass java/lang/OutOfMemoryError
+ciInstanceKlass java/lang/VirtualMachineError 1 1 27 1 1 1 1 1 1 1 1 1 1 1 1 5 0 7 100 1 12 12 12 12 10 10 10 10 1
+ciInstanceKlass java/lang/OutOfMemoryError 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 12 12 10 10 1
+ciInstanceKlass java/lang/StackOverflowError 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1
+ciInstanceKlass java/lang/IllegalMonitorStateException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1
+instanceKlass java/lang/ref/PhantomReference
+instanceKlass java/lang/ref/FinalReference
+instanceKlass java/lang/ref/WeakReference
+instanceKlass java/lang/ref/SoftReference
+ciInstanceKlass java/lang/ref/Reference 1 1 134 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 7 7 100 7 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1
+instanceKlass org/aspectj/apache/bcel/util/ClassLoaderRepository$SoftHashMap$SpecialValue
+instanceKlass sun/security/util/MemoryCache$SoftCacheEntry
+instanceKlass org/springframework/util/ConcurrentReferenceHashMap$SoftEntryReference
+instanceKlass java/lang/invoke/LambdaFormEditor$Transform
+instanceKlass sun/util/locale/provider/LocaleResources$ResourceReference
+instanceKlass java/util/ResourceBundle$BundleReference
+instanceKlass sun/util/locale/LocaleObjectCache$CacheEntry
+ciInstanceKlass java/lang/ref/SoftReference 1 1 35 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 7 1 1 1 1 12 12 12 12 12 9 9 10 10 10 1
+instanceKlass org/springframework/cglib/core/WeakCacheKey
+instanceKlass java/lang/reflect/Proxy$Key2
+instanceKlass java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry
+instanceKlass org/apache/commons/logging/impl/WeakHashtable$WeakKey
+instanceKlass java/util/ResourceBundle$LoaderReference
+instanceKlass java/io/ObjectStreamClass$FieldReflectorKey
+instanceKlass java/io/ObjectStreamClass$WeakClassKey
+instanceKlass sun/rmi/transport/WeakRef
+instanceKlass java/lang/reflect/WeakCache$CacheValue
+instanceKlass java/lang/reflect/Proxy$Key1
+instanceKlass java/lang/reflect/WeakCache$CacheKey
+instanceKlass com/sun/jmx/mbeanserver/WeakIdentityHashMap$IdentityWeakReference
+instanceKlass java/util/logging/LogManager$LoggerWeakRef
+instanceKlass java/lang/ClassValue$Entry
+instanceKlass java/util/WeakHashMap$Entry
+instanceKlass java/lang/ThreadLocal$ThreadLocalMap$Entry
+ciInstanceKlass java/lang/ref/WeakReference 1 1 20 1 1 1 1 1 1 1 1 7 100 1 1 1 1 12 12 10 10 1
+instanceKlass java/lang/ref/Finalizer
+ciInstanceKlass java/lang/ref/FinalReference 1 1 16 1 1 1 1 1 1 1 100 7 1 1 1 12 10 1
+instanceKlass sun/misc/Cleaner
+ciInstanceKlass java/lang/ref/PhantomReference 1 1 19 1 1 1 1 1 1 1 1 1 1 100 7 1 1 1 12 10 1
+ciInstanceKlass sun/misc/Cleaner 1 1 74 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 7 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 11 1
+staticfield sun/misc/Cleaner dummyQueue Ljava/lang/ref/ReferenceQueue; java/lang/ref/ReferenceQueue
+ciInstanceKlass java/lang/ref/Finalizer 1 1 148 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 7 100 7 7 100 100 100 7 7 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1
+staticfield java/lang/ref/Finalizer lock Ljava/lang/Object; java/lang/Object
+instanceKlass com/alibaba/druid/pool/DruidDataSource$LogStatsThread
+instanceKlass com/alibaba/druid/pool/DruidDataSource$DestroyConnectionThread
+instanceKlass com/alibaba/druid/pool/DruidDataSource$CreateConnectionThread
+instanceKlass java/util/logging/LogManager$Cleaner
+instanceKlass com/intellij/rt/execution/application/AppMainV2$1
+instanceKlass java/lang/ref/Finalizer$FinalizerThread
+instanceKlass java/lang/ref/Reference$ReferenceHandler
+ciInstanceKlass java/lang/Thread 1 1 546 3 3 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 100 100 100 100 100 100 7 100 100 100 100 100 7 7 7 100 7 7 7 7 100 100 100 100 100 100 7 7 100 100 100 100 100 100 7 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 1 1 1 1 1
+staticfield java/lang/Thread EMPTY_STACK_TRACE [Ljava/lang/StackTraceElement; 0 [Ljava/lang/StackTraceElement;
+staticfield java/lang/Thread SUBCLASS_IMPLEMENTATION_PERMISSION Ljava/lang/RuntimePermission; java/lang/RuntimePermission
+ciInstanceKlass java/lang/ThreadGroup 1 1 268 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 100 100 100 7 100 100 7 7 100 100 7 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1
+instanceKlass java/util/Hashtable
+ciInstanceKlass java/util/Dictionary 1 1 31 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 1 1 1 1 1 1 12 10 1
+instanceKlass org/apache/commons/logging/impl/WeakHashtable
+instanceKlass java/util/Properties
+ciInstanceKlass java/util/Hashtable 1 1 397 3 3 4 4 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 5 0 100 100 100 100 100 100 100 100 100 100 7 100 100 7 100 7 100 100 100 7 100 7 7 100 7 7 7 7 100 7 7 7 7 7 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1
+instanceKlass org/springframework/beans/factory/support/ManagedProperties
+instanceKlass org/springframework/core/CollectionFactory$1
+instanceKlass java/security/Provider
+ciInstanceKlass java/util/Properties 1 1 263 3 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 100 100 100 7 100 100 100 100 100 7 7 7 100 7 7 7 100 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 1 1
+staticfield java/util/Properties hexDigit [C 16
+instanceKlass java/lang/reflect/Executable
+instanceKlass java/lang/reflect/Field
+ciInstanceKlass java/lang/reflect/AccessibleObject 1 1 144 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 7 100 7 7 7 7 100 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1
+staticfield java/lang/reflect/AccessibleObject ACCESS_PERMISSION Ljava/security/Permission; java/lang/reflect/ReflectPermission
+staticfield java/lang/reflect/AccessibleObject reflectionFactory Lsun/reflect/ReflectionFactory; sun/reflect/ReflectionFactory
+ciInstanceKlass java/lang/reflect/Field 1 1 362 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 7 100 100 7 7 100 100 100 7 7 7 7 7 7 7 7 100 100 100 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1
+ciInstanceKlass java/lang/reflect/Parameter 1 1 210 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 7 7 100 100 100 7 100 7 100 7 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 1
+instanceKlass java/lang/reflect/Constructor
+instanceKlass java/lang/reflect/Method
+ciInstanceKlass java/lang/reflect/Executable 1 1 378 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 7 100 7 100 100 100 7 7 7 7 7 100 100 100 7 7 7 100 7 7 7 7 7 7 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 1 1
+ciInstanceKlass java/lang/reflect/Method 1 1 346 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 100 100 7 7 7 100 7 100 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 1
+ciInstanceKlass java/lang/reflect/Constructor 1 1 330 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 100 100 100 7 100 100 7 7 100 100 100 100 100 7 7 7 100 100 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 1
+instanceKlass sun/reflect/FieldAccessorImpl
+instanceKlass sun/reflect/ConstructorAccessorImpl
+instanceKlass sun/reflect/MethodAccessorImpl
+ciInstanceKlass sun/reflect/MagicAccessorImpl 1 1 13 1 1 1 1 1 1 1 7 100 12 10 1
+instanceKlass sun/reflect/GeneratedMethodAccessor65
+instanceKlass sun/reflect/GeneratedMethodAccessor64
+instanceKlass sun/reflect/GeneratedMethodAccessor63
+instanceKlass sun/reflect/GeneratedMethodAccessor62
+instanceKlass sun/reflect/GeneratedMethodAccessor61
+instanceKlass sun/reflect/GeneratedMethodAccessor60
+instanceKlass sun/reflect/GeneratedMethodAccessor59
+instanceKlass sun/reflect/GeneratedMethodAccessor58
+instanceKlass sun/reflect/GeneratedMethodAccessor57
+instanceKlass sun/reflect/GeneratedMethodAccessor56
+instanceKlass sun/reflect/GeneratedMethodAccessor55
+instanceKlass sun/reflect/GeneratedMethodAccessor54
+instanceKlass sun/reflect/GeneratedMethodAccessor53
+instanceKlass sun/reflect/GeneratedMethodAccessor52
+instanceKlass sun/reflect/GeneratedMethodAccessor51
+instanceKlass sun/reflect/GeneratedMethodAccessor50
+instanceKlass sun/reflect/GeneratedMethodAccessor49
+instanceKlass sun/reflect/GeneratedMethodAccessor48
+instanceKlass sun/reflect/GeneratedMethodAccessor47
+instanceKlass sun/reflect/GeneratedMethodAccessor46
+instanceKlass sun/reflect/GeneratedMethodAccessor45
+instanceKlass sun/reflect/GeneratedMethodAccessor44
+instanceKlass sun/reflect/GeneratedMethodAccessor43
+instanceKlass sun/reflect/GeneratedMethodAccessor42
+instanceKlass sun/reflect/GeneratedMethodAccessor41
+instanceKlass sun/reflect/GeneratedMethodAccessor40
+instanceKlass sun/reflect/GeneratedMethodAccessor39
+instanceKlass sun/reflect/GeneratedMethodAccessor38
+instanceKlass sun/reflect/GeneratedMethodAccessor37
+instanceKlass sun/reflect/GeneratedMethodAccessor36
+instanceKlass sun/reflect/GeneratedMethodAccessor35
+instanceKlass sun/reflect/GeneratedMethodAccessor34
+instanceKlass sun/reflect/GeneratedMethodAccessor33
+instanceKlass sun/reflect/GeneratedMethodAccessor32
+instanceKlass sun/reflect/GeneratedMethodAccessor31
+instanceKlass sun/reflect/GeneratedMethodAccessor30
+instanceKlass sun/reflect/GeneratedMethodAccessor29
+instanceKlass sun/reflect/GeneratedMethodAccessor28
+instanceKlass sun/reflect/GeneratedMethodAccessor27
+instanceKlass sun/reflect/GeneratedMethodAccessor26
+instanceKlass sun/reflect/GeneratedMethodAccessor25
+instanceKlass sun/reflect/GeneratedMethodAccessor24
+instanceKlass sun/reflect/GeneratedMethodAccessor23
+instanceKlass sun/reflect/GeneratedMethodAccessor22
+instanceKlass sun/reflect/GeneratedMethodAccessor21
+instanceKlass sun/reflect/GeneratedMethodAccessor20
+instanceKlass sun/reflect/GeneratedMethodAccessor19
+instanceKlass sun/reflect/GeneratedMethodAccessor18
+instanceKlass sun/reflect/GeneratedMethodAccessor17
+instanceKlass sun/reflect/GeneratedMethodAccessor16
+instanceKlass sun/reflect/GeneratedMethodAccessor15
+instanceKlass sun/reflect/GeneratedMethodAccessor14
+instanceKlass sun/reflect/GeneratedMethodAccessor13
+instanceKlass sun/reflect/GeneratedMethodAccessor12
+instanceKlass sun/reflect/GeneratedMethodAccessor11
+instanceKlass sun/reflect/GeneratedMethodAccessor10
+instanceKlass sun/reflect/GeneratedMethodAccessor9
+instanceKlass sun/reflect/GeneratedMethodAccessor8
+instanceKlass sun/reflect/GeneratedMethodAccessor7
+instanceKlass sun/reflect/GeneratedMethodAccessor6
+instanceKlass sun/reflect/GeneratedMethodAccessor5
+instanceKlass sun/reflect/GeneratedMethodAccessor4
+instanceKlass sun/reflect/GeneratedMethodAccessor3
+instanceKlass sun/reflect/GeneratedMethodAccessor2
+instanceKlass sun/reflect/GeneratedMethodAccessor1
+instanceKlass sun/reflect/DelegatingMethodAccessorImpl
+instanceKlass sun/reflect/NativeMethodAccessorImpl
+ciInstanceKlass sun/reflect/MethodAccessorImpl 1 1 22 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 100 100 12 10 1
+instanceKlass sun/reflect/GeneratedConstructorAccessor56
+instanceKlass sun/reflect/GeneratedConstructorAccessor55
+instanceKlass sun/reflect/GeneratedConstructorAccessor54
+instanceKlass sun/reflect/GeneratedConstructorAccessor53
+instanceKlass sun/reflect/GeneratedConstructorAccessor52
+instanceKlass sun/reflect/GeneratedConstructorAccessor51
+instanceKlass sun/reflect/GeneratedConstructorAccessor50
+instanceKlass sun/reflect/GeneratedConstructorAccessor49
+instanceKlass sun/reflect/GeneratedConstructorAccessor48
+instanceKlass sun/reflect/GeneratedConstructorAccessor47
+instanceKlass sun/reflect/GeneratedConstructorAccessor46
+instanceKlass sun/reflect/GeneratedConstructorAccessor45
+instanceKlass sun/reflect/GeneratedConstructorAccessor44
+instanceKlass sun/reflect/GeneratedConstructorAccessor43
+instanceKlass sun/reflect/GeneratedConstructorAccessor42
+instanceKlass sun/reflect/GeneratedConstructorAccessor41
+instanceKlass sun/reflect/GeneratedConstructorAccessor40
+instanceKlass sun/reflect/GeneratedConstructorAccessor39
+instanceKlass sun/reflect/GeneratedConstructorAccessor38
+instanceKlass sun/reflect/GeneratedConstructorAccessor37
+instanceKlass sun/reflect/GeneratedConstructorAccessor36
+instanceKlass sun/reflect/GeneratedConstructorAccessor35
+instanceKlass sun/reflect/GeneratedConstructorAccessor34
+instanceKlass sun/reflect/GeneratedConstructorAccessor33
+instanceKlass sun/reflect/GeneratedConstructorAccessor32
+instanceKlass sun/reflect/GeneratedConstructorAccessor31
+instanceKlass sun/reflect/GeneratedConstructorAccessor30
+instanceKlass sun/reflect/GeneratedConstructorAccessor29
+instanceKlass sun/reflect/GeneratedConstructorAccessor28
+instanceKlass sun/reflect/GeneratedConstructorAccessor27
+instanceKlass sun/reflect/GeneratedConstructorAccessor26
+instanceKlass sun/reflect/GeneratedConstructorAccessor25
+instanceKlass sun/reflect/GeneratedConstructorAccessor24
+instanceKlass sun/reflect/GeneratedConstructorAccessor23
+instanceKlass sun/reflect/GeneratedConstructorAccessor22
+instanceKlass sun/reflect/GeneratedConstructorAccessor21
+instanceKlass sun/reflect/GeneratedConstructorAccessor20
+instanceKlass sun/reflect/GeneratedConstructorAccessor19
+instanceKlass sun/reflect/GeneratedConstructorAccessor18
+instanceKlass sun/reflect/GeneratedConstructorAccessor17
+instanceKlass sun/reflect/GeneratedConstructorAccessor16
+instanceKlass sun/reflect/GeneratedConstructorAccessor15
+instanceKlass sun/reflect/GeneratedConstructorAccessor14
+instanceKlass sun/reflect/GeneratedConstructorAccessor13
+instanceKlass sun/reflect/GeneratedConstructorAccessor12
+instanceKlass sun/reflect/GeneratedConstructorAccessor11
+instanceKlass sun/reflect/GeneratedConstructorAccessor10
+instanceKlass sun/reflect/GeneratedConstructorAccessor9
+instanceKlass sun/reflect/GeneratedConstructorAccessor8
+instanceKlass sun/reflect/GeneratedConstructorAccessor7
+instanceKlass sun/reflect/GeneratedConstructorAccessor6
+instanceKlass sun/reflect/GeneratedConstructorAccessor5
+instanceKlass sun/reflect/GeneratedConstructorAccessor4
+instanceKlass sun/reflect/GeneratedConstructorAccessor3
+instanceKlass sun/reflect/GeneratedConstructorAccessor2
+instanceKlass sun/reflect/GeneratedConstructorAccessor1
+instanceKlass sun/reflect/BootstrapConstructorAccessorImpl
+instanceKlass sun/reflect/SerializationConstructorAccessorImpl
+instanceKlass sun/reflect/DelegatingConstructorAccessorImpl
+instanceKlass sun/reflect/NativeConstructorAccessorImpl
+ciInstanceKlass sun/reflect/ConstructorAccessorImpl 1 1 24 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 7 12 10 1
+ciInstanceKlass sun/reflect/DelegatingClassLoader 1 1 13 1 1 1 1 1 1 1 7 100 1 12 10
+ciInstanceKlass sun/reflect/ConstantPool 1 1 106 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1
+instanceKlass sun/reflect/UnsafeFieldAccessorImpl
+ciInstanceKlass sun/reflect/FieldAccessorImpl 1 1 56 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 12 10 1
+instanceKlass sun/reflect/UnsafeBooleanFieldAccessorImpl
+instanceKlass sun/reflect/UnsafeQualifiedFieldAccessorImpl
+instanceKlass sun/reflect/UnsafeObjectFieldAccessorImpl
+instanceKlass sun/reflect/UnsafeStaticFieldAccessorImpl
+ciInstanceKlass sun/reflect/UnsafeFieldAccessorImpl 1 1 229 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 100 100 100 100 100 100 7 100 100 100 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1
+staticfield sun/reflect/UnsafeFieldAccessorImpl unsafe Lsun/misc/Unsafe; sun/misc/Unsafe
+instanceKlass sun/reflect/UnsafeStaticObjectFieldAccessorImpl
+instanceKlass sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl
+ciInstanceKlass sun/reflect/UnsafeStaticFieldAccessorImpl 1 1 38 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 7 1 1 1 1 12 12 12 12 12 9 9 10 10 10 1
+ciInstanceKlass sun/reflect/CallerSensitive 0 0 17 1 1 1 1 1 1 1 1 100 100 100 1 1 1 1 1
+instanceKlass java/lang/invoke/DelegatingMethodHandle
+instanceKlass java/lang/invoke/BoundMethodHandle
+instanceKlass java/lang/invoke/DirectMethodHandle
+ciInstanceKlass java/lang/invoke/MethodHandle 1 1 438 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 100 100 7 100 100 100 7 100 100 7 7 7 100 7 7 7 7 100 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1 1
+staticfield java/lang/invoke/MethodHandle FORM_OFFSET J 20
+staticfield java/lang/invoke/MethodHandle $assertionsDisabled Z 1
+instanceKlass java/lang/invoke/DirectMethodHandle$Special
+instanceKlass java/lang/invoke/DirectMethodHandle$Constructor
+instanceKlass java/lang/invoke/DirectMethodHandle$Accessor
+ciInstanceKlass java/lang/invoke/DirectMethodHandle 1 1 692 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7 7 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 7 7 100 7 100 7 7 100 7 7 100 7 7 100 7 7 100 7 7 100 7 7 100 7 7 7 100 100 100 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1 1 1 1 1 1 1
+staticfield java/lang/invoke/DirectMethodHandle IMPL_NAMES Ljava/lang/invoke/MemberName$Factory; java/lang/invoke/MemberName$Factory
+staticfield java/lang/invoke/DirectMethodHandle ACCESSOR_FORMS [Ljava/lang/invoke/LambdaForm; 132 [Ljava/lang/invoke/LambdaForm;
+staticfield java/lang/invoke/DirectMethodHandle $assertionsDisabled Z 1
+ciInstanceKlass java/lang/invoke/MemberName 1 1 642 3 3 3 3 3 3 3 3 3 3 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 7 7 100 100 100 7 7 100 100 100 100 100 100 100 100 100 7 100 7 7 7 7 7 100 7 7 100 100 100 100 7 100 100 100 7 7 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1 1
+staticfield java/lang/invoke/MemberName $assertionsDisabled Z 1
+ciInstanceKlass java/lang/invoke/MethodHandleNatives 1 1 427 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 100 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 7 100 100 100 100 100 100 100 100 100 100 100 100 100 7 100 7 100 100 100 7 7 7 7 7 7 100 7 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1
+staticfield java/lang/invoke/MethodHandleNatives COUNT_GWT Z 1
+staticfield java/lang/invoke/MethodHandleNatives $assertionsDisabled Z 1
+ciInstanceKlass java/lang/invoke/LambdaForm 1 1 967 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 8 100 100 100 100 7 7 100 100 100 7 100 100 100 100 100 100 100 100 7 7 7 100 7 7 100 100 100 7 100 7 100 100 7 7 7 7 7 100 100 7 7 7 7 100 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 1 1 1 1 1 1
+staticfield java/lang/invoke/LambdaForm COMPILE_THRESHOLD I 0
+staticfield java/lang/invoke/LambdaForm INTERNED_ARGUMENTS [[Ljava/lang/invoke/LambdaForm$Name; 5 [[Ljava/lang/invoke/LambdaForm$Name;
+staticfield java/lang/invoke/LambdaForm IMPL_NAMES Ljava/lang/invoke/MemberName$Factory; java/lang/invoke/MemberName$Factory
+staticfield java/lang/invoke/LambdaForm LF_identityForm [Ljava/lang/invoke/LambdaForm; 6 [Ljava/lang/invoke/LambdaForm;
+staticfield java/lang/invoke/LambdaForm LF_zeroForm [Ljava/lang/invoke/LambdaForm; 6 [Ljava/lang/invoke/LambdaForm;
+staticfield java/lang/invoke/LambdaForm NF_identity [Ljava/lang/invoke/LambdaForm$NamedFunction; 6 [Ljava/lang/invoke/LambdaForm$NamedFunction;
+staticfield java/lang/invoke/LambdaForm NF_zero [Ljava/lang/invoke/LambdaForm$NamedFunction; 6 [Ljava/lang/invoke/LambdaForm$NamedFunction;
+staticfield java/lang/invoke/LambdaForm DEBUG_NAME_COUNTERS Ljava/util/HashMap; null
+staticfield java/lang/invoke/LambdaForm TRACE_INTERPRETER Z 0
+staticfield java/lang/invoke/LambdaForm $assertionsDisabled Z 1
+ciInstanceKlass java/lang/invoke/MethodType 1 1 591 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 5 0 7 100 100 100 7 100 100 7 100 7 100 100 100 100 100 7 7 7 7 100 7 7 7 7 7 7 7 7 7 7 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 1 1
+staticfield java/lang/invoke/MethodType internTable Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet; java/lang/invoke/MethodType$ConcurrentWeakInternSet
+staticfield java/lang/invoke/MethodType NO_PTYPES [Ljava/lang/Class; 0 [Ljava/lang/Class;
+staticfield java/lang/invoke/MethodType objectOnlyTypes [Ljava/lang/invoke/MethodType; 20 [Ljava/lang/invoke/MethodType;
+staticfield java/lang/invoke/MethodType serialPersistentFields [Ljava/io/ObjectStreamField; 0 [Ljava/io/ObjectStreamField;
+staticfield java/lang/invoke/MethodType rtypeOffset J 12
+staticfield java/lang/invoke/MethodType ptypesOffset J 16
+staticfield java/lang/invoke/MethodType $assertionsDisabled Z 1
+ciInstanceKlass java/lang/BootstrapMethodError 0 0 38 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 1 1 12 12 12 12 12 10 10 10 10 10 1
+instanceKlass java/lang/invoke/VolatileCallSite
+instanceKlass java/lang/invoke/MutableCallSite
+instanceKlass java/lang/invoke/ConstantCallSite
+ciInstanceKlass java/lang/invoke/CallSite 1 1 311 8 8 8 8 8 8 8 8 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 100 100 7 100 100 100 100 100 100 7 100 7 100 7 7 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1
+staticfield java/lang/invoke/CallSite GET_TARGET Ljava/lang/invoke/MethodHandle; java/lang/invoke/DirectMethodHandle
+staticfield java/lang/invoke/CallSite THROW_UCS Ljava/lang/invoke/MethodHandle; java/lang/invoke/MethodHandleImpl$AsVarargsCollector
+staticfield java/lang/invoke/CallSite TARGET_OFFSET J 12
+ciInstanceKlass java/lang/invoke/ConstantCallSite 1 1 42 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 7 1 1 12 12 12 12 12 12 9 9 10 10 10 10 10 1
+ciInstanceKlass java/lang/invoke/MutableCallSite 0 0 57 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 1
+ciInstanceKlass java/lang/invoke/VolatileCallSite 0 0 33 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 12 12 12 12 12 12 10 10 10 10 10 10 1
+instanceKlass java/lang/StringBuilder
+instanceKlass java/lang/StringBuffer
+ciInstanceKlass java/lang/AbstractStringBuilder 1 1 312 3 3 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 100 7 7 100 100 7 7 7 100 7 100 100 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1
+ciInstanceKlass java/lang/StringBuffer 1 1 372 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 7 100 7 7 100 100 7 7 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1 1
+staticfield java/lang/StringBuffer serialPersistentFields [Ljava/io/ObjectStreamField; 3 [Ljava/io/ObjectStreamField;
+ciInstanceKlass java/lang/StringBuilder 1 1 326 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 7 100 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1
+ciInstanceKlass sun/misc/Unsafe 1 1 389 8 8 7 7 7 7 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 100 7 100 100 7 100 7 100 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1
+staticfield sun/misc/Unsafe theUnsafe Lsun/misc/Unsafe; sun/misc/Unsafe
+staticfield sun/misc/Unsafe ARRAY_BOOLEAN_BASE_OFFSET I 16
+staticfield sun/misc/Unsafe ARRAY_BYTE_BASE_OFFSET I 16
+staticfield sun/misc/Unsafe ARRAY_SHORT_BASE_OFFSET I 16
+staticfield sun/misc/Unsafe ARRAY_CHAR_BASE_OFFSET I 16
+staticfield sun/misc/Unsafe ARRAY_INT_BASE_OFFSET I 16
+staticfield sun/misc/Unsafe ARRAY_LONG_BASE_OFFSET I 16
+staticfield sun/misc/Unsafe ARRAY_FLOAT_BASE_OFFSET I 16
+staticfield sun/misc/Unsafe ARRAY_DOUBLE_BASE_OFFSET I 16
+staticfield sun/misc/Unsafe ARRAY_OBJECT_BASE_OFFSET I 16
+staticfield sun/misc/Unsafe ARRAY_BOOLEAN_INDEX_SCALE I 1
+staticfield sun/misc/Unsafe ARRAY_BYTE_INDEX_SCALE I 1
+staticfield sun/misc/Unsafe ARRAY_SHORT_INDEX_SCALE I 2
+staticfield sun/misc/Unsafe ARRAY_CHAR_INDEX_SCALE I 2
+staticfield sun/misc/Unsafe ARRAY_INT_INDEX_SCALE I 4
+staticfield sun/misc/Unsafe ARRAY_LONG_INDEX_SCALE I 8
+staticfield sun/misc/Unsafe ARRAY_FLOAT_INDEX_SCALE I 4
+staticfield sun/misc/Unsafe ARRAY_DOUBLE_INDEX_SCALE I 8
+staticfield sun/misc/Unsafe ARRAY_OBJECT_INDEX_SCALE I 4
+staticfield sun/misc/Unsafe ADDRESS_SIZE I 8
+instanceKlass sun/nio/ch/ChannelInputStream
+instanceKlass com/sun/org/apache/xerces/internal/impl/XMLEntityManager$RewindableInputStream
+instanceKlass java/io/ObjectInputStream$PeekInputStream
+instanceKlass java/io/ObjectInputStream$BlockDataInputStream
+instanceKlass java/util/jar/JarVerifier$VerifierStream
+instanceKlass java/io/ObjectInputStream
+instanceKlass java/util/zip/ZipFile$ZipFileInputStream
+instanceKlass java/io/FilterInputStream
+instanceKlass java/io/FileInputStream
+instanceKlass java/io/ByteArrayInputStream
+ciInstanceKlass java/io/InputStream 1 1 61 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 5 0 100 100 100 7 100 100 100 7 12 12 12 12 12 10 10 10 10 10 10 10 1
+instanceKlass sun/security/util/DerInputBuffer
+ciInstanceKlass java/io/ByteArrayInputStream 1 1 62 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 7 100 7 100 7 1 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 1
+ciInstanceKlass java/io/File 1 1 578 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 7 7 7 7 100 7 100 100 100 100 100 100 100 7 100 100 100 100 100 7 100 100 100 100 7 7 7 100 100 7 100 100 7 7 100 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 1 1 1 1
+staticfield java/io/File fs Ljava/io/FileSystem; java/io/WinNTFileSystem
+staticfield java/io/File separatorChar C 92
+staticfield java/io/File separator Ljava/lang/String; "\"
+staticfield java/io/File pathSeparatorChar C 59
+staticfield java/io/File pathSeparator Ljava/lang/String; ";"
+staticfield java/io/File PATH_OFFSET J 16
+staticfield java/io/File PREFIX_LENGTH_OFFSET J 12
+staticfield java/io/File UNSAFE Lsun/misc/Unsafe; sun/misc/Unsafe
+staticfield java/io/File $assertionsDisabled Z 1
+instanceKlass org/apache/catalina/loader/WebappClassLoaderBase
+instanceKlass sun/misc/Launcher$ExtClassLoader
+instanceKlass sun/misc/Launcher$AppClassLoader
+ciInstanceKlass java/net/URLClassLoader 1 1 522 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 7 7 100 100 7 7 7 100 100 7 100 100 100 7 7 7 100 7 100 7 7 7 7 7 100 100 100 7 7 100 100 100 7 7 7 7 7 7 100 100 100 7 7 7 100 7 7 7 7 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11
+ciInstanceKlass java/net/URL 1 1 550 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 100 7 100 7 7 100 100 100 100 100 7 7 100 7 7 100 100 100 7 7 100 100 7 100 7 7 7 7 100 7 7 7 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1
+staticfield java/net/URL serialPersistentFields [Ljava/io/ObjectStreamField; 7 [Ljava/io/ObjectStreamField;
+ciInstanceKlass java/util/jar/Manifest 1 1 230 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 7 7 7 100 7 7 100 7 100 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 1 1
+ciInstanceKlass sun/misc/Launcher 1 1 218 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 100 100 100 100 100 100 100 100 7 100 7 100 7 7 100 7 7 100 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1 1
+ciInstanceKlass sun/misc/Launcher$AppClassLoader 1 1 201 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 100 7 7 7 7 100 7 7 100 7 7 100 7 100 7 100 7 7 7 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1
+staticfield sun/misc/Launcher$AppClassLoader $assertionsDisabled Z 1
+ciInstanceKlass sun/misc/Launcher$ExtClassLoader 1 1 209 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 7 7 7 7 7 7 7 100 7 100 100 100 7 7 7 7 7 7 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1
+ciInstanceKlass java/security/CodeSource 1 1 322 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 7 100 100 100 100 100 100 7 100 7 100 100 7 7 7 7 100 100 100 100 100 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 1
+ciInstanceKlass java/lang/StackTraceElement 1 1 98 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 7 100 7 100 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 1
+instanceKlass java/nio/LongBuffer
+instanceKlass java/nio/CharBuffer
+instanceKlass java/nio/ByteBuffer
+ciInstanceKlass java/nio/Buffer 1 1 103 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 100 100 7 100 7 100 100 100 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 1
+ciInstanceKlass java/lang/Boolean 1 1 110 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 7 100 100 100 7 100 7 7 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 1
+staticfield java/lang/Boolean TRUE Ljava/lang/Boolean; java/lang/Boolean
+staticfield java/lang/Boolean FALSE Ljava/lang/Boolean; java/lang/Boolean
+staticfield java/lang/Boolean TYPE Ljava/lang/Class; java/lang/Class
+ciInstanceKlass java/lang/Character 1 1 459 3 3 3 3 3 3 3 3 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 5 0 5 0 100 100 7 7 100 100 100 7 100 7 100 100 100 100 7 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 1 1 1 1
+staticfield java/lang/Character TYPE Ljava/lang/Class; java/lang/Class
+staticfield java/lang/Character $assertionsDisabled Z 1
+instanceKlass java/math/BigInteger
+instanceKlass java/math/BigDecimal
+instanceKlass java/util/concurrent/atomic/AtomicLong
+instanceKlass java/util/concurrent/atomic/AtomicInteger
+instanceKlass java/lang/Long
+instanceKlass java/lang/Integer
+instanceKlass java/lang/Short
+instanceKlass java/lang/Byte
+instanceKlass java/lang/Double
+instanceKlass java/lang/Float
+ciInstanceKlass java/lang/Number 1 1 34 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 7 12 12 10 10 1
+ciInstanceKlass java/lang/Float 1 1 169 3 3 3 4 4 4 4 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 4 4 5 0 7 100 100 7 100 7 100 100 7 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1
+staticfield java/lang/Float TYPE Ljava/lang/Class; java/lang/Class
+ciInstanceKlass java/lang/Double 1 1 223 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 5 0 5 0 5 0 5 0 5 0 6 0 6 0 6 0 6 0 6 0 6 0 6 0 7 100 7 100 100 7 100 100 100 7 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1
+staticfield java/lang/Double TYPE Ljava/lang/Class; java/lang/Class
+ciInstanceKlass java/lang/Byte 1 1 153 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 5 0 5 0 7 7 7 100 100 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1
+staticfield java/lang/Byte TYPE Ljava/lang/Class; java/lang/Class
+ciInstanceKlass java/lang/Short 1 1 159 3 3 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 5 0 5 0 7 100 100 7 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1
+staticfield java/lang/Short TYPE Ljava/lang/Class; java/lang/Class
+ciInstanceKlass java/lang/Integer 1 1 309 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 5 0 5 0 5 0 100 7 7 100 100 7 7 100 7 100 7 100 100 100 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1
+staticfield java/lang/Integer TYPE Ljava/lang/Class; java/lang/Class
+staticfield java/lang/Integer digits [C 36
+staticfield java/lang/Integer DigitTens [C 100
+staticfield java/lang/Integer DigitOnes [C 100
+staticfield java/lang/Integer sizeTable [I 10
+ciInstanceKlass java/lang/Long 1 1 356 3 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 100 100 7 100 100 7 7 7 7 100 7 100 100 100 7 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1
+staticfield java/lang/Long TYPE Ljava/lang/Class; java/lang/Class
+ciInstanceKlass java/lang/NullPointerException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1
+ciInstanceKlass java/lang/ArithmeticException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1
+ciInstanceKlass java/util/Locale 1 1 891 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 5 0 8 8 8 8 100 100 100 100 100 100 100 100 7 100 100 100 7 100 100 100 100 7 100 100 7 100 7 100 100 7 100 100 100 100 100 7 7 7 100 7 7 100 100 7 100 100 100 100 7 7 100 7 100 100 100 7 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 1 1 1 1 1 1 1 1 1 1 1
+staticfield java/util/Locale LOCALECACHE Ljava/util/Locale$Cache; java/util/Locale$Cache
+staticfield java/util/Locale ENGLISH Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale FRENCH Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale GERMAN Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale ITALIAN Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale JAPANESE Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale KOREAN Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale CHINESE Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale SIMPLIFIED_CHINESE Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale TRADITIONAL_CHINESE Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale FRANCE Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale GERMANY Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale ITALY Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale JAPAN Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale KOREA Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale CHINA Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale PRC Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale TAIWAN Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale UK Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale US Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale CANADA Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale CANADA_FRENCH Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale ROOT Ljava/util/Locale; java/util/Locale
+staticfield java/util/Locale serialPersistentFields [Ljava/io/ObjectStreamField; 6 [Ljava/io/ObjectStreamField;
+staticfield java/util/Locale $assertionsDisabled Z 1
+ciInstanceKlass sun/util/locale/BaseLocale 1 1 143 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 8 7 7 100 7 100 7 7 7 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1
+staticfield sun/util/locale/BaseLocale CACHE Lsun/util/locale/BaseLocale$Cache; sun/util/locale/BaseLocale$Cache
+instanceKlass sun/util/locale/provider/AuxLocaleProviderAdapter
+instanceKlass sun/util/locale/provider/JRELocaleProviderAdapter
+ciInstanceKlass sun/util/locale/provider/LocaleProviderAdapter 1 1 340 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 100 100 7 100 7 100 7 7 7 7 7 7 100 100 7 7 7 7 7 100 100 100 100 7 7 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 1
+staticfield sun/util/locale/provider/LocaleProviderAdapter adapterPreference Ljava/util/List; java/util/Collections$UnmodifiableRandomAccessList
+staticfield sun/util/locale/provider/LocaleProviderAdapter $assertionsDisabled Z 1
+ciInstanceKlass sun/util/locale/provider/ResourceBundleBasedAdapter 1 0 9 1 1 1 1 100 100 1 1
+instanceKlass sun/util/locale/provider/DecimalFormatSymbolsProviderImpl
+ciInstanceKlass java/text/spi/DecimalFormatSymbolsProvider 1 1 15 1 1 1 1 1 1 1 1 100 7 1 12 10 1
+ciInstanceKlass sun/util/locale/provider/LocaleResources 1 1 395 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 8 7 7 100 100 7 100 7 7 7 7 7 100 100 100 100 7 100 7 7 100 7 7 100 100 7 100 7 7 7 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 1 1
+staticfield sun/util/locale/provider/LocaleResources NULLOBJECT Ljava/lang/Object; java/lang/Object
+staticfield sun/util/locale/provider/LocaleResources $assertionsDisabled Z 1
+ciInstanceKlass java/text/DecimalFormatSymbols 1 1 272 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 5 0 100 7 100 100 100 100 100 100 100 100 100 100 7 7 7 7 7 100 7 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1
+ciInstanceKlass java/util/Currency 1 1 450 3 3 8 8 8 8 8 8 8 8 8 8 8 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 3 3 3 3 5 0 5 0 100 100 100 100 7 100 100 100 7 100 7 7 7 100 100 7 100 100 7 7 100 100 7 100 100 100 100 7 7 100 100 7 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 1 1 1 1
+compile java/text/DecimalFormatSymbols initialize (Ljava/util/Locale;)V -1 1

--
Gitblit v1.8.0